|
6082
|
246
|
2
|
2026-05-07T17:30:29.873466+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778175029873_m2.jpg...
|
PhpStorm
|
faVsco.js – ConferenceCrmMatcherJob.php
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","depth":4,"bounds":{"left":0.4401596,"top":0.06624102,"width":0.31615692,"height":0.91300875},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","depth":4,"bounds":{"left":0.122340426,"top":0.22106944,"width":0.31881648,"height":0.77893054},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6936887013967671323
|
-3995744045677024801
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
6083
|
246
|
3
|
2026-05-07T17:31:03.131507+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778175063131_m2.jpg...
|
PhpStorm
|
faVsco.js – ConferenceCrmMatcherJob.php
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","depth":4,"bounds":{"left":0.4401596,"top":0.06624102,"width":0.31615692,"height":0.91300875},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","depth":4,"bounds":{"left":0.122340426,"top":0.0,"width":0.31881648,"height":1.0},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6936887013967671323
|
-3995744045677024801
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
6082
|
NULL
|
NULL
|
NULL
|
|
6084
|
245
|
3
|
2026-05-07T17:31:03.687695+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778175063687_m1.jpg...
|
PhpStorm
|
faVsco.js – ConferenceCrmMatcherJob.php
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6936887013967671323
|
-3995744045677024801
|
idle
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
6081
|
NULL
|
NULL
|
NULL
|
|
6299
|
261
|
4
|
2026-05-07T18:11:32.679804+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778177492679_m1.jpg...
|
PhpStorm
|
faVsco.js – ConferenceCrmMatcherJob.php
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6936887013967671323
|
-3995744045677024801
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
6301
|
262
|
4
|
2026-05-07T18:11:36.379949+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778177496379_m2.jpg...
|
PhpStorm
|
faVsco.js – ConferenceCrmMatcherJob.php
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","depth":4,"bounds":{"left":0.4401596,"top":0.06624102,"width":0.31615692,"height":0.91300875},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6936887013967671323
|
-3995744045677024801
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
6304
|
261
|
7
|
2026-05-07T18:12:28.166564+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778177548166_m1.jpg...
|
PhpStorm
|
faVsco.js – ConferenceCrmMatcherJob.php
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6936887013967671323
|
-3995744045677024801
|
idle
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
6303
|
NULL
|
NULL
|
NULL
|
|
6305
|
262
|
5
|
2026-05-07T18:12:28.622031+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778177548622_m2.jpg...
|
PhpStorm
|
faVsco.js – ConferenceCrmMatcherJob.php
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","depth":4,"bounds":{"left":0.4401596,"top":0.06624102,"width":0.31615692,"height":0.91300875},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6936887013967671323
|
-3995744045677024801
|
idle
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
6301
|
NULL
|
NULL
|
NULL
|
|
6306
|
261
|
8
|
2026-05-07T18:12:58.692019+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778177578692_m1.jpg...
|
PhpStorm
|
faVsco.js – ConferenceCrmMatcherJob.php
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6936887013967671323
|
-3995744045677024801
|
idle
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
6307
|
262
|
6
|
2026-05-07T18:12:59.269475+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778177579269_m2.jpg...
|
PhpStorm
|
faVsco.js – ConferenceCrmMatcherJob.php
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","depth":4,"bounds":{"left":0.4401596,"top":0.06624102,"width":0.31615692,"height":0.91300875},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6936887013967671323
|
-3995744045677024801
|
idle
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
6301
|
NULL
|
NULL
|
NULL
|
|
6308
|
261
|
9
|
2026-05-07T18:13:29.204762+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778177609204_m1.jpg...
|
PhpStorm
|
faVsco.js – ConferenceCrmMatcherJob.php
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6936887013967671323
|
-3995744045677024801
|
idle
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
6306
|
NULL
|
NULL
|
NULL
|
|
6309
|
262
|
7
|
2026-05-07T18:13:29.788841+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778177609788_m2.jpg...
|
PhpStorm
|
faVsco.js – ConferenceCrmMatcherJob.php
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","depth":4,"bounds":{"left":0.4401596,"top":0.06624102,"width":0.31615692,"height":0.91300875},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6936887013967671323
|
-3995744045677024801
|
idle
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
6301
|
NULL
|
NULL
|
NULL
|
|
6312
|
261
|
11
|
2026-05-07T18:14:15.012443+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778177655012_m1.jpg...
|
PhpStorm
|
faVsco.js – ConferenceCrmMatcherJob.php
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6936887013967671323
|
-3995744045677024801
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
6313
|
262
|
9
|
2026-05-07T18:14:15.013013+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778177655013_m2.jpg...
|
PhpStorm
|
faVsco.js – ConferenceCrmMatcherJob.php
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","depth":4,"bounds":{"left":0.4401596,"top":0.06624102,"width":0.31615692,"height":0.91300875},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6936887013967671323
|
-3995744045677024801
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
6316
|
NULL
|
0
|
2026-05-07T18:14:51.461505+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778177691461_m1.jpg...
|
PhpStorm
|
faVsco.js – ConferenceCrmMatcherJob.php
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6936887013967671323
|
-3995744045677024801
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
6317
|
NULL
|
0
|
2026-05-07T18:14:52.544208+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778177692544_m2.jpg...
|
PhpStorm
|
faVsco.js – ConferenceCrmMatcherJob.php
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","depth":4,"bounds":{"left":0.4401596,"top":0.06624102,"width":0.31615692,"height":0.91300875},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\Utility\\Service;\n\nuse Illuminate\\Cache\\RateLimiter;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Contracts\\Http\\RateLimitInterface;\n\nclass ProviderRateLimiter\n{\n protected RateLimiter $rateLimiter;\n\n public function __construct(RateLimiter $rateLimiter)\n {\n $this->rateLimiter = $rateLimiter;\n }\n\n public function canMakeRequest(RateLimited $provider): bool\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $key = $rateLimit->getKey();\n\n if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {\n return false;\n }\n }\n\n return true;\n }\n\n public function requestAvailableIn(RateLimited $provider): int\n {\n return $provider->getRateLimits()->isNotEmpty()\n ? $provider->getRateLimits()\n ->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))\n ->max()\n : 0\n ;\n }\n\n public function incrementRequestCount(RateLimited $provider): void\n {\n /** @var RateLimitInterface $rateLimit */\n foreach ($provider->getRateLimits() as $rateLimit) {\n $this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Activity;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Calendar\\Adapter\\PersistedEventAttendee;\nuse Jiminny\\Services\\Calendar\\Command\\ImportParticipants;\nuse Jiminny\\Services\\ResolveTeamCrmConnection;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * This job is dispatched after a meeting is finished.\n * Its purpose is to validate all final participants, and run crm matching for them,\n * in case an opportunity was created during the actual meeting.\n */\nclass ConferenceCrmMatcherJob implements ShouldQueue\n{\n use InteractsWithQueue;\n use Queueable;\n\n public int $tries = 3;\n public int $timeout = 120;\n\n public function middleware(): array\n {\n return [new HandleHubspotRateLimit()];\n }\n\n public function __construct(private readonly int $activityId)\n {\n }\n\n public function handle(\n ActivityRepository $activityRepository,\n ResolveTeamCrmConnection $crmResolver,\n LoggerInterface $logger,\n ): void {\n $logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n ]);\n\n $activity = $activityRepository->findById($this->activityId);\n\n if (! $activity) {\n $logger->warning('[ConferenceCrmMatcherJob] Activity not found', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n try {\n $user = $activity->getUser();\n\n $persistedAttendees = $this->collectParticipants($activity);\n if (empty($persistedAttendees)) {\n $logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [\n 'activity_id' => $this->activityId,\n ]);\n\n return;\n }\n\n $crmService = $crmResolver->resolveForUser($user);\n\n $importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);\n $importParticipants->setCrmService($crmService);\n $importParticipants->refreshCrmData();\n\n $logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [\n 'activity_id' => $this->activityId,\n 'participants_count' => count($persistedAttendees),\n ]);\n } catch (SocialAccountTokenInvalidException $e) {\n $logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n ]);\n\n // Prevent retries when no social account is available.\n $this->fail($e);\n } catch (\\Exception $e) {\n $logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [\n 'activity_id' => $this->activityId,\n 'error' => $e->getMessage(),\n 'trace' => $e->getTraceAsString(),\n ]);\n\n throw $e;\n }\n }\n\n private function collectParticipants(Activity $activity): array\n {\n $persistedAttendees = [];\n $participants = $activity->getParticipants();\n $activityOwnerId = $activity->getUserId();\n\n foreach ($participants as $participant) {\n $persistedAttendee = new PersistedEventAttendee($participant);\n $persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);\n\n if (! $persistedAttendee->email()) {\n continue;\n }\n\n $persistedAttendees[] = $persistedAttendee;\n }\n\n return $persistedAttendees;\n }\n\n private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants\n {\n return app(ImportParticipants::class, [\n 'user' => $user,\n 'activity' => $activity,\n 'attendees' => $attendees,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6936887013967671323
|
-3995744045677024801
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Component\Utility\Service;
use Illuminate\Cache\RateLimiter;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Contracts\Http\RateLimitInterface;
class ProviderRateLimiter
{
protected RateLimiter $rateLimiter;
public function __construct(RateLimiter $rateLimiter)
{
$this->rateLimiter = $rateLimiter;
}
public function canMakeRequest(RateLimited $provider): bool
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$key = $rateLimit->getKey();
if ($this->rateLimiter->tooManyAttempts($key, $rateLimit->getQuota())) {
return false;
}
}
return true;
}
public function requestAvailableIn(RateLimited $provider): int
{
return $provider->getRateLimits()->isNotEmpty()
? $provider->getRateLimits()
->map(fn (RateLimitInterface $rateLimit): int => $this->rateLimiter->availableIn($rateLimit->getKey()))
->max()
: 0
;
}
public function incrementRequestCount(RateLimited $provider): void
{
/** @var RateLimitInterface $rateLimit */
foreach ($provider->getRateLimits() as $rateLimit) {
$this->rateLimiter->hit($rateLimit->getKey(), $rateLimit->getWindow());
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Activity;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
use Jiminny\Models\Activity;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Calendar\Adapter\PersistedEventAttendee;
use Jiminny\Services\Calendar\Command\ImportParticipants;
use Jiminny\Services\ResolveTeamCrmConnection;
use Psr\Log\LoggerInterface;
/**
* This job is dispatched after a meeting is finished.
* Its purpose is to validate all final participants, and run crm matching for them,
* in case an opportunity was created during the actual meeting.
*/
class ConferenceCrmMatcherJob implements ShouldQueue
{
use InteractsWithQueue;
use Queueable;
public int $tries = 3;
public int $timeout = 120;
public function middleware(): array
{
return [new HandleHubspotRateLimit()];
}
public function __construct(private readonly int $activityId)
{
}
public function handle(
ActivityRepository $activityRepository,
ResolveTeamCrmConnection $crmResolver,
LoggerInterface $logger,
): void {
$logger->info('[ConferenceCrmMatcherJob] Trying to refresh activity crm data', [
'activity_id' => $this->activityId,
]);
$activity = $activityRepository->findById($this->activityId);
if (! $activity) {
$logger->warning('[ConferenceCrmMatcherJob] Activity not found', [
'activity_id' => $this->activityId,
]);
return;
}
try {
$user = $activity->getUser();
$persistedAttendees = $this->collectParticipants($activity);
if (empty($persistedAttendees)) {
$logger->info('[ConferenceCrmMatcherJob] No valid participants to process', [
'activity_id' => $this->activityId,
]);
return;
}
$crmService = $crmResolver->resolveForUser($user);
$importParticipants = $this->createImportParticipants($activity, $user, $persistedAttendees);
$importParticipants->setCrmService($crmService);
$importParticipants->refreshCrmData();
$logger->info('[ConferenceCrmMatcherJob] Refresh activity crm data finished', [
'activity_id' => $this->activityId,
'participants_count' => count($persistedAttendees),
]);
} catch (SocialAccountTokenInvalidException $e) {
$logger->error('[ConferenceCrmMatcherJob] CRM token invalid', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
]);
// Prevent retries when no social account is available.
$this->fail($e);
} catch (\Exception $e) {
$logger->error('[ConferenceCrmMatcherJob] Failed to refresh activity crm data', [
'activity_id' => $this->activityId,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
throw $e;
}
}
private function collectParticipants(Activity $activity): array
{
$persistedAttendees = [];
$participants = $activity->getParticipants();
$activityOwnerId = $activity->getUserId();
foreach ($participants as $participant) {
$persistedAttendee = new PersistedEventAttendee($participant);
$persistedAttendee->setIsOrganizer($participant->getUserId() === $activityOwnerId);
if (! $persistedAttendee->email()) {
continue;
}
$persistedAttendees[] = $persistedAttendee;
}
return $persistedAttendees;
}
private function createImportParticipants(Activity $activity, User $user, array $attendees): ImportParticipants
{
return app(ImportParticipants::class, [
'user' => $user,
'activity' => $activity,
'attendees' => $attendees,
]);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
14710
|
654
|
20
|
2026-05-10T18:15:08.022709+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-10/1778 /Users/lukas/.screenpipe/data/data/2026-05-10/1778436908022_m2.jpg...
|
Claude
|
Claude
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Skip to content
Skip to content
Click to collapse
Skip to content
Skip to content
Click to collapse
⌘B
Drag to resize
Collapse sidebar
Search
Chat
Cowork
Code
New chat ⌘N
New chat
⌘N
Projects
Artifacts
Customize
Pinned
Bulgarian citizenship application process for EU residents
More options for Bulgarian citizenship application process for EU residents
Dawarich location tracking project
More options for Dawarich location tracking project
Recents
View all
Monthly expense tracking
More options for Monthly expense tracking
Exporting transaction data from Notion to finance hub
More options for Exporting transaction data from Notion to finance hub
Screenpipe sync script failing after recent migrations
More options for Screenpipe sync script failing after recent migrations
💬 How much have I spent for groc…
More options for 💬 How much have I spent for groc…
April 2026 spending by category
More options for April 2026 spending by category
Code diff review
More options for Code diff review
HubSpot rate limit implementation strategy
More options for HubSpot rate limit implementation strategy
Screenpipe retention policy code location
More options for Screenpipe retention policy code location
Viewing retention policy in screenpipe
More options for Viewing retention policy in screenpipe
Clean shot x video recording termination issue
More options for Clean shot x video recording termination issue
HubSpot rate limit handling with executeRequest
More options for HubSpot rate limit handling with executeRequest
Untitled
More options
💬 Screen pipe. Is there ability…
More options for 💬 Screen pipe. Is there ability…
SMB mount access inconsistency between Finder and iTerm
More options for SMB mount access inconsistency between Finder and iTerm
💬 What is the best switch I can…
More options for 💬 What is the best switch I can…
Permission denied on screenpipe volume
More options for Permission denied on screenpipe volume
Screenpipe sync database attachment error
More options for Screenpipe sync database attachment error
Last swimming outing with Dani
More options for Last swimming outing with Dani
Definition of incarcerated
More options for Definition of incarcerated
Chromecast remote volume buttons not working
More options for Chromecast remote volume buttons not working
Relaunch to update v1.6608.0
Relaunch to update
v1.6608.0
Lukas Pro
Get apps and extensions
Screenpipe sync script failing after recent migrations, rename chat
Screenpipe sync script failing after recent migrations
More options for Screenpipe sync script failing after recent migrations
Close
Share chat
Claude finished the response
You said: after recent updated in screenpipe (find out what are these) I am unable to run script.
You said: after recent updated in screenpipe (find out what are these) I am unable to run script.
Pasted Text, pasted, 353 lines
#!/bin/bash # screenpipe_sync.sh # Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions). # Also copies the day's video/frame data folder to the NAS. # # Usage: # ./screenpipe_sync.sh # syncs yesterday (default) # ./screenpipe_sync.sh 2026-04-15 # sync
PASTED
after recent updated in screenpipe (find out what are these) I am unable to run script. (pasted) "lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-07
[2026-05-10 11:50:45] ========================================
[2026-05-10 11:50:45] Screenpipe sync starting for: 2026-05-07
[2026-05-10 11:50:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (2.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists ( 10G)
Data dir: OK (266 files, 292M)
[+00m05s] ▶ Counting source rows for 2026-05-07
frames: 6262
elements: 623002
ui_events: 7412
ocr_text: 1670
meetings: 2
[+00m05s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m06s] ▶ Syncing data for 2026-05-07
video_chunks ✓ 0m01s
frames (6262 rows) ⠋ Parse error near line 3: table nas.frames has 24 columns but 30 values were supplied" There were some recent changes in migrations. Here are migrations form the begining of march (approx after I installed irt first time) 20260301000000 create elements table 2026-05-06 17:27:34 True 736637f38c6e0b5547f23c870ebbc3e87ef2d8d33b22ce73f7 ... 1302167
20260301100000 fts external content 2026-05-06 17:27:34 True 44ca0e5fc3b23c19aa09d7ac3fea48de604032d5feced2615c ... 2102875
20260301200000 drop ui monitoring 2026-05-06 17:27:34 True 9ab8a4d8c0d602b491ef1a6ff36076fd7b7c12c05848201682 ... 620375
20260306000000 delete empty transcriptions 2026-05-06 17:27:34 True 5f991a21d663157a2bce5cb9f0729f02181eef817aaef5a0b8 ... 166792
20260309000000 add cloud blob id 2026-05-06 17:27:34 True e1588e32884ec5660d11bbaa995d767fb2172bb9732ad22319 ... 1450542
20260310000000 create memories 2026-05-06 17:27:34 True 4fd07e878de1dd5b8d184e7bca9ee4e6b2480bbf39e5a68ff7 ... 1135416
20260311000000 drop unused tables 2026-05-06 17:27:34 True 3d9eb9d327a61c4055b31e22082cd045e00bd7a875cbdee86b ... 547625
20260312000000 consolidate search to frames full text 2026-05-06 17:27:34 True 5a7a31a359e9e93978d46ab4759fc8cd43898c0fd325d001b7 ... 3038250
20260312000001 drop dead fts tables 2026-05-06 17:27:34 True dd8264b96b4427f40b06ac60b813b77b6d055b24dd727212c5 ... 297250
20260312000002 drop accessibility tags 2026-05-06 17:27:34 True 672b2661f7e0fc8026f2eb6cc5d24935a15db4ed4982aeb973 ... 260167
20260315000000 add frame id to memories 2026-05-06 17:27:34 True f324ec7981134e647b6497126a2b6a7467e94d271d140d0d25 ... 642250
20260316000000 add elements activity summary index 2026-05-06 17:27:34 True 5b3f99a0d58fc73d62f240319d0718963364fdee1e3a7c4866 ... 265834
20260317000000 add elements automation props 2026-05-06 17:27:34 True 4bd132d263de143c7bb0dcf2e3b8074606c58c0f79e6091d13 ... 537750
20260318000000 add elements ref frame id 2026-05-06 17:27:34 True 33282b2c342e4743f096d1e3093146e243d97f392fe4df2cb5 ... 525250
20260319000000 add sync id indexes 2026-05-06 17:27:34 True 22c7a18c918cfcc458f05fdbfe2a0b2bb65a67ae9daeec6028 ... 407083
20260320000000 add note to meetings 2026-05-06 17:27:34 True cfa45b4c98e300c40cd36942839aa20528f47ae3e7b9c86751 ... 519625
20260324000000 drop ocr text delete trigger 2026-05-06 17:27:34 True 99f445308168fc88f993c43f8e884cc4dc7e41411c86b4d3e7 ... 182209
20260326000000 add session path to pipe executions 2026-05-06 17:27:34 True 5aa266dfcd7b741a18dd3ffb6b0ca3caf2e569959074cbc3ff ... 549583
20260411000000 add elements ref frame id index 2026-05-06 17:27:34 True 378589322920e74980ea48c6b44c916cd488e47a8f6172161e ... 232083
20260415000000 frames fts external content 2026-05-06 17:27:34 True 3fdac70da2fd44bca3c3717768b57c4cbee743451b73f13de9 ... 1259250
20260423000000 add speaker id indexes 2026-05-06 17:27:34 True 80e8e0cf144ee620c81b3796196ca22b8e34f9c152ca2ffe8f ... 398709
20260429000000 add evicted at to chunks 2026-05-06 17:27:34 True 180b1d44305df17620929a69ecce60fa3ce0148905adf19ff7 ... 963833
20260502000000 add elements on screen 2026-05-06 17:27:34 True 2cf51a077a75ef32e4e1d722092053ce919bdeee151d3d91fb ... 644500
20260504120000 add document path column 2026-05-06 17:27:34 True d84f7127e1647984eeb1f89e8dffd0918525f128e4608d323f ... 593042
20260506120000 add memories sync columns 2026-05-07 06:45:22 True 800beaaa228c7fbd88fe367dc5b357adb72a3a0635da5a30f4 ... 1777417
20260501000000 add redacted columns 2026-05-08 06:25:45 True 2a4cd6714a2322ccf8f2af6084af5a05e40f460c44c1aaf874 ... 795120667
20260503000000 add frames image redacted 2026-05-08 06:25:45 True . It worked up to the point where I attemtped to remove it and install again since the retention policy doesn't clear old data and it was to big. I am basically moving data to nas and query it form there. mac is for capture only or lets say one week query using claude code. THe main consumer and interface is on nas. How to make it work so new changes won't messup my setup. Seems like I removed the whole folder it was working find runnign with @letest even I may be wrong.
Show more
11:58
Retry
Edit
Copy
Claude responded: Looking at this carefully, the error tells the whole story:
Claude responded: Looking at this carefully, the error tells the whole story:
Pinpointing schema mismatches from recent PII redaction migrations
Pinpointing schema mismatches from recent PII redaction migrations
Looking at this carefully, the error tells the whole story:
Copy to clipboard
table nas.frames has 24 columns but 30 values were supplied
Your source DB got 6 new columns from recent migrations, but the NAS archive was created earlier with the old schema.
CREATE TABLE IF NOT EXISTS
is a no-op when the table exists, so the NAS schema is frozen at whatever it was when first created. Then
INSERT ... SELECT *
does positional mapping, which blows up the moment column counts diverge.
Let me verify the recent screenpipe changes and then fix this properly.
Diagnosed schema drift, architected resilient migration strategy
Diagnosed schema drift, architected resilient migration strategy
What's happening
What's happening
The error is schema drift, not a screenpipe bug. Your source DB grew 6 columns from these migrations (most landed late April / early May with the PII work):
20260429000000 add evicted at to chunks
→
video_chunks.evicted_at
20260502000000 add elements on screen
→
elements.on_screen
20260504120000 add document path column
→
frames.document_path
20260501000000 add redacted columns
→ redacted columns on frames/ocr_text/elements (this is the big one — accompanies the new
screenpipe/pii-redactor
model)
20260503000000 add frames image redacted
→
frames.image_redacted_path
20260506120000 add memories sync columns
→ memories table
Your NAS
archive.db
was created before these landed.
CREATE TABLE IF NOT EXISTS
is a no-op on existing tables, so the NAS schema froze. Then
INSERT INTO nas.frames SELECT * FROM main.frames
does
positional
mapping → 30 source values into a 24-column NAS table → parse error.
You weren't wrong about
npx screenpipe@latest
working: removing the folder gave you a fresh local DB with the new schema, and querying still works because everything is on one schema. The mismatch only surfaces when you try to merge old + new schemas via the sync.
The fix
The fix
Two changes make this future-proof:
ensure_columns
— before each insert, diff source vs NAS columns and run
ALTER TABLE ADD COLUMN
for any new ones. SQLite handles this as a metadata-only op, so it's instant even on your 10G archive.
Explicit column lists in INSERT
— never
SELECT *
again. Build the column list dynamically from
PRAGMA table_info(<table>)
and use
INSERT INTO t (cols) SELECT cols FROM ...
. Now positional drift is structurally impossible.
Bonus: dropped columns in future migrations will also be handled gracefully — the archive keeps the column with NULLs for new rows, no errors.
Let me write the updated script.
Created a file, ran a command, read a file
Created a file, ran a command, read a file
What changed in the script
What changed in the script
Three additions, everything else preserved:
Schema helpers
(
table_columns_with_types
,
table_columns
,
table_exists
,
ensure_columns
,
build_col_list
) — pure bash + sqlite3 PRAGMA, no extra deps.
New "Reconciling NAS schema with source" step
— runs after
CREATE TABLE IF NOT EXISTS
, before indexes/FTS/inserts. For each table in
SYNC_TABLES
, it diffs source columns against NAS and
ALTER TABLE ADD COLUMN
s the missing ones. Output looks like:
Copy to clipboard
schema: frames ✓ added 4: cloud_blob_id document_path image_redacted_path text_redacted
schema: elements ✓ added 2: on_screen text_redacted
schema: video_chunks ✓ added 1: evicted_at
Explicit column lists in every INSERT
—
FRAMES_COLS=$(build_col_list frames)
builds
"id","timestamp","app_name",...
from source
PRAGMA table_info
, and the inserts use
INSERT INTO nas.t (cols) SELECT cols FROM main.t
. No more positional mapping. Column names are double-quoted so any future hyphens or reserved-word columns won't break parsing.
What to expect on the next run
What to expect on the next run
First run after dropping it in: the "Reconciling NAS schema with source" step will print the missing columns it adds to your existing 10G archive (4 on
frames
, plus a few on
elements
/
video_chunks
/
ocr_text
). Each
ALTER TABLE ADD COLUMN
is a metadata-only op in SQLite — no table rewrite, no VACUUM needed, total cost should be sub-second even on the 10G file. Then 2026-05-07 will sync normally.
After that, when Screenpipe ships the next migration, your sync just picks up the new columns automatically. No more breakage.
One thing worth knowing
One thing worth knowing
If Screenpipe ever
drops
a column in source (rare but possible — they did
drop ui monitoring
and
drop dead fts tables
earlier), the NAS will still have it, and
build_col_list
(sourced from
main
) won't reference it. New rows will have NULL for the orphaned column, old rows keep their data. That's the right archival behavior — but if you ever want to actually drop those orphan columns from NAS, that's a manual
ALTER TABLE ... DROP COLUMN
which SQLite has supported since 3.35 (your macOS Tahoe ships 3.43+, and your NAS Docker SQLite is fine).
View Screenpipe sync
Screenpipe sync
SH
Open Screenpipe sync
Open in iTerm
Copy
Give positive feedback
Give negative feedback
Retry
You said: ok but given the changes introduced is there something I may actually use
You said: ok but given the changes introduced is there something I may actually use
ok but given the changes introduced is there something I may actually use
12:06
Retry
Edit
Copy
Claude responded: Good question.
Claude responded: Good question.
Cataloging PII redactor capabilities and security categories
Cataloging PII redactor capabilities and security categories
Good question. Let me look at what these new columns actually do and which ones map to your setup, since not all of them are equal value for you.
Evaluated four practical database columns for his specific workflow needs
Evaluated four practical database columns for his specific workflow needs
Yeah, three of them are genuinely useful for your setup. The rest are cloud-sync plumbing you can ignore.
frames.document_path — most useful for you
frames.document_path
— most useful for you
Captures the path of the document/file open at frame time. This is a meaningful upgrade over relying on...
|
[{"role":"AXLink","text":& [{"role":"AXLink","text":"Skip to content","depth":14,"bounds":{"left":0.0023271276,"top":0.025538707,"width":0.0003324468,"height":0.0007980846},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Skip to content","depth":15,"bounds":{"left":0.0023271276,"top":0.026336791,"width":0.030917553,"height":0.013567438},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.0023271276,"top":0.027134877,"width":0.0026595744,"height":0.012769354}},{"char_start":1,"char_count":14,"bounds":{"left":0.004986702,"top":0.027134877,"width":0.02825798,"height":0.012769354}}],"role_description":"text"},{"role":"AXStaticText","text":"Click to collapse","depth":16,"bounds":{"left":0.10239362,"top":0.63846767,"width":0.030585106,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.10239362,"top":0.63846767,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":16,"bounds":{"left":0.10538564,"top":0.63846767,"width":0.027925532,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"⌘B","depth":16,"bounds":{"left":0.1349734,"top":0.63846767,"width":0.0063164895,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Drag to resize","depth":16,"bounds":{"left":0.10239362,"top":0.65043896,"width":0.025930852,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.10239362,"top":0.65043896,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.10538564,"top":0.65043896,"width":0.022938829,"height":0.011971269}}],"role_description":"text"},{"role":"AXButton","text":"Collapse sidebar","depth":15,"bounds":{"left":0.030585106,"top":0.02952913,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search","depth":15,"bounds":{"left":0.03856383,"top":0.02952913,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Chat","depth":16,"bounds":{"left":0.005984043,"top":0.06304868,"width":0.026263298,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Cowork","depth":16,"bounds":{"left":0.032579787,"top":0.06304868,"width":0.031914894,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code","depth":16,"bounds":{"left":0.065159574,"top":0.06304868,"width":0.027260639,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New chat ⌘N","depth":15,"bounds":{"left":0.005319149,"top":0.0933759,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"New chat","depth":16,"bounds":{"left":0.015292553,"top":0.096568234,"width":0.019281914,"height":0.013567438},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.015292553,"top":0.09736632,"width":0.0033244682,"height":0.013567438}},{"char_start":1,"char_count":7,"bounds":{"left":0.01861702,"top":0.09736632,"width":0.015957447,"height":0.013567438}}],"role_description":"text"},{"role":"AXStaticText","text":"⌘N","depth":17,"bounds":{"left":0.084109046,"top":0.09736632,"width":0.006981383,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Projects","depth":15,"bounds":{"left":0.005319149,"top":0.11412609,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Artifacts","depth":15,"bounds":{"left":0.005319149,"top":0.1348763,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Customize","depth":15,"bounds":{"left":0.005319149,"top":0.15562649,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Pinned","depth":16,"bounds":{"left":0.00731383,"top":0.19553073,"width":0.08510638,"height":0.012769354},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"Bulgarian citizenship application process for EU residents","depth":18,"bounds":{"left":0.005319149,"top":0.2122905,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Bulgarian citizenship application process for EU residents","depth":19,"bounds":{"left":0.08577128,"top":0.21548285,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Dawarich location tracking project","depth":18,"bounds":{"left":0.005319149,"top":0.23383878,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Dawarich location tracking project","depth":19,"bounds":{"left":0.08577128,"top":0.23703113,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Recents","depth":16,"bounds":{"left":0.00731383,"top":0.264166,"width":0.064494684,"height":0.012769354},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXButton","text":"View all","depth":16,"bounds":{"left":0.0731383,"top":0.264166,"width":0.019281914,"height":0.012769354},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Monthly expense tracking","depth":18,"bounds":{"left":0.005319149,"top":0.28092578,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Monthly expense tracking","depth":19,"bounds":{"left":0.08577128,"top":0.28411812,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Exporting transaction data from Notion to finance hub","depth":18,"bounds":{"left":0.005319149,"top":0.30247405,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Exporting transaction data from Notion to finance hub","depth":19,"bounds":{"left":0.08577128,"top":0.3056664,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe sync script failing after recent migrations","depth":18,"bounds":{"left":0.005319149,"top":0.32402235,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Screenpipe sync script failing after recent migrations","depth":19,"bounds":{"left":0.08577128,"top":0.3272147,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"💬 How much have I spent for groc…","depth":18,"bounds":{"left":0.005319149,"top":0.34557062,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for 💬 How much have I spent for groc…","depth":19,"bounds":{"left":0.08577128,"top":0.34876296,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"April 2026 spending by category","depth":18,"bounds":{"left":0.005319149,"top":0.36711892,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for April 2026 spending by category","depth":19,"bounds":{"left":0.08577128,"top":0.37031126,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code diff review","depth":18,"bounds":{"left":0.005319149,"top":0.3886672,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Code diff review","depth":19,"bounds":{"left":0.08577128,"top":0.39185953,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"HubSpot rate limit implementation strategy","depth":18,"bounds":{"left":0.005319149,"top":0.4102155,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for HubSpot rate limit implementation strategy","depth":19,"bounds":{"left":0.08577128,"top":0.41340783,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe retention policy code location","depth":18,"bounds":{"left":0.005319149,"top":0.43176377,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Screenpipe retention policy code location","depth":19,"bounds":{"left":0.08577128,"top":0.4349561,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Viewing retention policy in screenpipe","depth":18,"bounds":{"left":0.005319149,"top":0.45331204,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Viewing retention policy in screenpipe","depth":19,"bounds":{"left":0.08577128,"top":0.45650437,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Clean shot x video recording termination issue","depth":18,"bounds":{"left":0.005319149,"top":0.47486034,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Clean shot x video recording termination issue","depth":19,"bounds":{"left":0.08577128,"top":0.47805268,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"HubSpot rate limit handling with executeRequest","depth":18,"bounds":{"left":0.005319149,"top":0.4964086,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for HubSpot rate limit handling with executeRequest","depth":19,"bounds":{"left":0.08577128,"top":0.49960095,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Untitled","depth":18,"bounds":{"left":0.005319149,"top":0.5179569,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options","depth":19,"bounds":{"left":0.08577128,"top":0.5211492,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"💬 Screen pipe. Is there ability…","depth":18,"bounds":{"left":0.005319149,"top":0.5395052,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for 💬 Screen pipe. Is there ability…","depth":19,"bounds":{"left":0.08577128,"top":0.54269755,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"SMB mount access inconsistency between Finder and iTerm","depth":18,"bounds":{"left":0.005319149,"top":0.56105345,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for SMB mount access inconsistency between Finder and iTerm","depth":19,"bounds":{"left":0.08577128,"top":0.5642458,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"💬 What is the best switch I can…","depth":18,"bounds":{"left":0.005319149,"top":0.5826017,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for 💬 What is the best switch I can…","depth":19,"bounds":{"left":0.08577128,"top":0.5857941,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Permission denied on screenpipe volume","depth":18,"bounds":{"left":0.005319149,"top":0.60415006,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Permission denied on screenpipe volume","depth":19,"bounds":{"left":0.08577128,"top":0.60734236,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe sync database attachment error","depth":18,"bounds":{"left":0.005319149,"top":0.6256983,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Screenpipe sync database attachment error","depth":19,"bounds":{"left":0.08577128,"top":0.62889063,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Last swimming outing with Dani","depth":18,"bounds":{"left":0.005319149,"top":0.6472466,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Last swimming outing with Dani","depth":19,"bounds":{"left":0.08577128,"top":0.65043896,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Definition of incarcerated","depth":18,"bounds":{"left":0.005319149,"top":0.6687949,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Definition of incarcerated","depth":19,"bounds":{"left":0.08577128,"top":0.67198724,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Chromecast remote volume buttons not working","depth":18,"bounds":{"left":0.005319149,"top":0.6903432,"width":0.087765954,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More options for Chromecast remote volume buttons not working","depth":19,"bounds":{"left":0.08577128,"top":0.6935355,"width":0.005984043,"height":0.014365523},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Relaunch to update v1.6608.0","depth":15,"bounds":{"left":0.005319149,"top":0.9169992,"width":0.087765954,"height":0.04309657},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Relaunch to update","depth":16,"bounds":{"left":0.023271276,"top":0.92498004,"width":0.043218084,"height":0.013567438},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.023603724,"top":0.92498004,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":17,"bounds":{"left":0.026595745,"top":0.92498004,"width":0.039893616,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"v1.6608.0","depth":16,"bounds":{"left":0.023271276,"top":0.94094175,"width":0.015957447,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.023603724,"top":0.94094175,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":8,"bounds":{"left":0.025598405,"top":0.94094175,"width":0.013630319,"height":0.011173184}}],"role_description":"text"},{"role":"AXPopUpButton","text":"Lukas Pro","depth":15,"bounds":{"left":0.005319149,"top":0.9696728,"width":0.038231384,"height":0.01915403},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Get apps and extensions","depth":15,"bounds":{"left":0.08510638,"top":0.9696728,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Screenpipe sync script failing after recent migrations, rename chat","depth":19,"bounds":{"left":0.10239362,"top":0.02793296,"width":0.119015954,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Screenpipe sync script failing after recent migrations","depth":21,"bounds":{"left":0.10372341,"top":0.031923383,"width":0.11635638,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.10372341,"top":0.031923383,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":53,"bounds":{"left":0.106715426,"top":0.031923383,"width":0.113696806,"height":0.014365523}}],"role_description":"text"},{"role":"AXPopUpButton","text":"More options for Screenpipe sync script failing after recent migrations","depth":19,"bounds":{"left":0.22174202,"top":0.02793296,"width":0.006981383,"height":0.022346368},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close","depth":21,"bounds":{"left":0.27027926,"top":0.026336791,"width":0.010638298,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Share chat","depth":21,"bounds":{"left":0.28224733,"top":0.026336791,"width":0.010638298,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Claude finished the response","depth":21,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"You said: after recent updated in screenpipe (find out what are these) I am unable to run script.","depth":20,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"You said: after recent updated in screenpipe (find out what are these) I am unable to run script.","depth":21,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Pasted Text, pasted, 353 lines","depth":21,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"#!/bin/bash # screenpipe_sync.sh # Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions). # Also copies the day's video/frame data folder to the NAS. # # Usage: # ./screenpipe_sync.sh # syncs yesterday (default) # ./screenpipe_sync.sh 2026-04-15 # sync","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PASTED","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"after recent updated in screenpipe (find out what are these) I am unable to run script. (pasted) \"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-07\n[2026-05-10 11:50:45] ========================================\n[2026-05-10 11:50:45] Screenpipe sync starting for: 2026-05-07\n[2026-05-10 11:50:45] ========================================\n[+00m00s] ▶ Preflight checks\n Source DB: OK (2.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: exists ( 10G)\n Data dir: OK (266 files, 292M)\n[+00m05s] ▶ Counting source rows for 2026-05-07\n frames: 6262\n elements: 623002\n ui_events: 7412\n ocr_text: 1670\n meetings: 2\n[+00m05s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n[+00m06s] ▶ Syncing data for 2026-05-07\n video_chunks ✓ 0m01s\n frames (6262 rows) ⠋ Parse error near line 3: table nas.frames has 24 columns but 30 values were supplied\" There were some recent changes in migrations. Here are migrations form the begining of march (approx after I installed irt first time) 20260301000000 create elements table 2026-05-06 17:27:34 True 736637f38c6e0b5547f23c870ebbc3e87ef2d8d33b22ce73f7 ... 1302167\n20260301100000 fts external content 2026-05-06 17:27:34 True 44ca0e5fc3b23c19aa09d7ac3fea48de604032d5feced2615c ... 2102875\n20260301200000 drop ui monitoring 2026-05-06 17:27:34 True 9ab8a4d8c0d602b491ef1a6ff36076fd7b7c12c05848201682 ... 620375\n20260306000000 delete empty transcriptions 2026-05-06 17:27:34 True 5f991a21d663157a2bce5cb9f0729f02181eef817aaef5a0b8 ... 166792\n20260309000000 add cloud blob id 2026-05-06 17:27:34 True e1588e32884ec5660d11bbaa995d767fb2172bb9732ad22319 ... 1450542\n20260310000000 create memories 2026-05-06 17:27:34 True 4fd07e878de1dd5b8d184e7bca9ee4e6b2480bbf39e5a68ff7 ... 1135416\n20260311000000 drop unused tables 2026-05-06 17:27:34 True 3d9eb9d327a61c4055b31e22082cd045e00bd7a875cbdee86b ... 547625\n20260312000000 consolidate search to frames full text 2026-05-06 17:27:34 True 5a7a31a359e9e93978d46ab4759fc8cd43898c0fd325d001b7 ... 3038250\n20260312000001 drop dead fts tables 2026-05-06 17:27:34 True dd8264b96b4427f40b06ac60b813b77b6d055b24dd727212c5 ... 297250\n20260312000002 drop accessibility tags 2026-05-06 17:27:34 True 672b2661f7e0fc8026f2eb6cc5d24935a15db4ed4982aeb973 ... 260167\n20260315000000 add frame id to memories 2026-05-06 17:27:34 True f324ec7981134e647b6497126a2b6a7467e94d271d140d0d25 ... 642250\n20260316000000 add elements activity summary index 2026-05-06 17:27:34 True 5b3f99a0d58fc73d62f240319d0718963364fdee1e3a7c4866 ... 265834\n20260317000000 add elements automation props 2026-05-06 17:27:34 True 4bd132d263de143c7bb0dcf2e3b8074606c58c0f79e6091d13 ... 537750\n20260318000000 add elements ref frame id 2026-05-06 17:27:34 True 33282b2c342e4743f096d1e3093146e243d97f392fe4df2cb5 ... 525250\n20260319000000 add sync id indexes 2026-05-06 17:27:34 True 22c7a18c918cfcc458f05fdbfe2a0b2bb65a67ae9daeec6028 ... 407083\n20260320000000 add note to meetings 2026-05-06 17:27:34 True cfa45b4c98e300c40cd36942839aa20528f47ae3e7b9c86751 ... 519625\n20260324000000 drop ocr text delete trigger 2026-05-06 17:27:34 True 99f445308168fc88f993c43f8e884cc4dc7e41411c86b4d3e7 ... 182209\n20260326000000 add session path to pipe executions 2026-05-06 17:27:34 True 5aa266dfcd7b741a18dd3ffb6b0ca3caf2e569959074cbc3ff ... 549583\n20260411000000 add elements ref frame id index 2026-05-06 17:27:34 True 378589322920e74980ea48c6b44c916cd488e47a8f6172161e ... 232083\n20260415000000 frames fts external content 2026-05-06 17:27:34 True 3fdac70da2fd44bca3c3717768b57c4cbee743451b73f13de9 ... 1259250\n20260423000000 add speaker id indexes 2026-05-06 17:27:34 True 80e8e0cf144ee620c81b3796196ca22b8e34f9c152ca2ffe8f ... 398709\n20260429000000 add evicted at to chunks 2026-05-06 17:27:34 True 180b1d44305df17620929a69ecce60fa3ce0148905adf19ff7 ... 963833\n20260502000000 add elements on screen 2026-05-06 17:27:34 True 2cf51a077a75ef32e4e1d722092053ce919bdeee151d3d91fb ... 644500\n20260504120000 add document path column 2026-05-06 17:27:34 True d84f7127e1647984eeb1f89e8dffd0918525f128e4608d323f ... 593042\n20260506120000 add memories sync columns 2026-05-07 06:45:22 True 800beaaa228c7fbd88fe367dc5b357adb72a3a0635da5a30f4 ... 1777417\n20260501000000 add redacted columns 2026-05-08 06:25:45 True 2a4cd6714a2322ccf8f2af6084af5a05e40f460c44c1aaf874 ... 795120667\n20260503000000 add frames image redacted 2026-05-08 06:25:45 True . It worked up to the point where I attemtped to remove it and install again since the retention policy doesn't clear old data and it was to big. I am basically moving data to nas and query it form there. mac is for capture only or lets say one week query using claude code. THe main consumer and interface is on nas. How to make it work so new changes won't messup my setup. Seems like I removed the whole folder it was working find runnign with @letest even I may be wrong.","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Show more","depth":22,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"11:58","depth":22,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Retry","depth":22,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Edit","depth":22,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Copy","depth":22,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Claude responded: Looking at this carefully, the error tells the whole story:","depth":21,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Claude responded: Looking at this carefully, the error tells the whole story:","depth":22,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Pinpointing schema mismatches from recent PII redaction migrations","depth":22,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Pinpointing schema mismatches from recent PII redaction migrations","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Looking at this carefully, the error tells the whole story:","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":27,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"table nas.frames has 24 columns but 30 values were supplied","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Your source DB got 6 new columns from recent migrations, but the NAS archive was created earlier with the old schema.","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"CREATE TABLE IF NOT EXISTS","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is a no-op when the table exists, so the NAS schema is frozen at whatever it was when first created. Then","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"INSERT ... SELECT *","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"does positional mapping, which blows up the moment column counts diverge.","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Let me verify the recent screenpipe changes and then fix this properly.","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Diagnosed schema drift, architected resilient migration strategy","depth":22,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Diagnosed schema drift, architected resilient migration strategy","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"What's happening","depth":24,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"What's happening","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The error is schema drift, not a screenpipe bug. Your source DB grew 6 columns from these migrations (most landed late April / early May with the PII work):","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"20260429000000 add evicted at to chunks","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"→","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"video_chunks.evicted_at","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"20260502000000 add elements on screen","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"→","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"elements.on_screen","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"20260504120000 add document path column","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"→","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"frames.document_path","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"20260501000000 add redacted columns","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"→ redacted columns on frames/ocr_text/elements (this is the big one — accompanies the new","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"screenpipe/pii-redactor","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"model)","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"20260503000000 add frames image redacted","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"→","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"frames.image_redacted_path","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"20260506120000 add memories sync columns","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"→ memories table","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Your NAS","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"archive.db","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"was created before these landed.","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"CREATE TABLE IF NOT EXISTS","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is a no-op on existing tables, so the NAS schema froze. Then","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"INSERT INTO nas.frames SELECT * FROM main.frames","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"does","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"positional","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"mapping → 30 source values into a 24-column NAS table → parse error.","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"You weren't wrong about","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"npx screenpipe@latest","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"working: removing the folder gave you a fresh local DB with the new schema, and querying still works because everything is on one schema. The mismatch only surfaces when you try to merge old + new schemas via the sync.","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"The fix","depth":24,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"The fix","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Two changes make this future-proof:","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ensure_columns","depth":28,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— before each insert, diff source vs NAS columns and run","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ALTER TABLE ADD COLUMN","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"for any new ones. SQLite handles this as a metadata-only op, so it's instant even on your 10G archive.","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Explicit column lists in INSERT","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— never","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"SELECT *","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"again. Build the column list dynamically from","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PRAGMA table_info(<table>)","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and use","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"INSERT INTO t (cols) SELECT cols FROM ...","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":". Now positional drift is structurally impossible.","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bonus: dropped columns in future migrations will also be handled gracefully — the archive keeps the column with NULLs for new rows, no errors.","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Let me write the updated script.","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Created a file, ran a command, read a file","depth":22,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Created a file, ran a command, read a file","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"What changed in the script","depth":24,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"What changed in the script","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Three additions, everything else preserved:","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Schema helpers","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"(","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"table_columns_with_types","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"table_columns","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"table_exists","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ensure_columns","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"build_col_list","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") — pure bash + sqlite3 PRAGMA, no extra deps.","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"New \"Reconciling NAS schema with source\" step","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— runs after","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"CREATE TABLE IF NOT EXISTS","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":", before indexes/FTS/inserts. For each table in","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"SYNC_TABLES","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":", it diffs source columns against NAS and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ALTER TABLE ADD COLUMN","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"s the missing ones. Output looks like:","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy to clipboard","depth":27,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"schema: frames ✓ added 4: cloud_blob_id document_path image_redacted_path text_redacted","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"schema: elements ✓ added 2: on_screen text_redacted","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"schema: video_chunks ✓ added 1: evicted_at","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Explicit column lists in every INSERT","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"—","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"FRAMES_COLS=$(build_col_list frames)","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"builds","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"\"id\",\"timestamp\",\"app_name\",...","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"from source","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PRAGMA table_info","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":", and the inserts use","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"INSERT INTO nas.t (cols) SELECT cols FROM main.t","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":". No more positional mapping. Column names are double-quoted so any future hyphens or reserved-word columns won't break parsing.","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"What to expect on the next run","depth":24,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"What to expect on the next run","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"First run after dropping it in: the \"Reconciling NAS schema with source\" step will print the missing columns it adds to your existing 10G archive (4 on","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"frames","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":", plus a few on","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"elements","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"video_chunks","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ocr_text","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"). Each","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ALTER TABLE ADD COLUMN","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is a metadata-only op in SQLite — no table rewrite, no VACUUM needed, total cost should be sub-second even on the 10G file. Then 2026-05-07 will sync normally.","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"After that, when Screenpipe ships the next migration, your sync just picks up the new columns automatically. No more breakage.","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"One thing worth knowing","depth":24,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"One thing worth knowing","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"If Screenpipe ever","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"drops","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"a column in source (rare but possible — they did","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"drop ui monitoring","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"drop dead fts tables","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"earlier), the NAS will still have it, and","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"build_col_list","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"(sourced from","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"main","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") won't reference it. New rows will have NULL for the orphaned column, old rows keep their data. That's the right archival behavior — but if you ever want to actually drop those orphan columns from NAS, that's a manual","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ALTER TABLE ... DROP COLUMN","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"which SQLite has supported since 3.35 (your macOS Tahoe ships 3.43+, and your NAS Docker SQLite is fine).","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"View Screenpipe sync","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Screenpipe sync","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"SH","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Open Screenpipe sync","depth":26,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Open in iTerm","depth":27,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy","depth":22,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give positive feedback","depth":22,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give negative feedback","depth":22,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Retry","depth":22,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"You said: ok but given the changes introduced is there something I may actually use","depth":20,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"You said: ok but given the changes introduced is there something I may actually use","depth":21,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ok but given the changes introduced is there something I may actually use","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"12:06","depth":22,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Retry","depth":22,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Edit","depth":22,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Copy","depth":22,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Claude responded: Good question.","depth":21,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Claude responded: Good question.","depth":22,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Cataloging PII redactor capabilities and security categories","depth":22,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Cataloging PII redactor capabilities and security categories","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Good question. Let me look at what these new columns actually do and which ones map to your setup, since not all of them are equal value for you.","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Evaluated four practical database columns for his specific workflow needs","depth":22,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Evaluated four practical database columns for his specific workflow needs","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Yeah, three of them are genuinely useful for your setup. The rest are cloud-sync plumbing you can ignore.","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"frames.document_path — most useful for you","depth":24,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"frames.document_path","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— most useful for you","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Captures the path of the document/file open at frame time. This is a meaningful upgrade over relying on","depth":25,"on_screen":false,"role_description":"text"}]...
|
-6936628817784115991
|
7363349354666116114
|
click
|
accessibility
|
NULL
|
Skip to content
Skip to content
Click to collapse
Skip to content
Skip to content
Click to collapse
⌘B
Drag to resize
Collapse sidebar
Search
Chat
Cowork
Code
New chat ⌘N
New chat
⌘N
Projects
Artifacts
Customize
Pinned
Bulgarian citizenship application process for EU residents
More options for Bulgarian citizenship application process for EU residents
Dawarich location tracking project
More options for Dawarich location tracking project
Recents
View all
Monthly expense tracking
More options for Monthly expense tracking
Exporting transaction data from Notion to finance hub
More options for Exporting transaction data from Notion to finance hub
Screenpipe sync script failing after recent migrations
More options for Screenpipe sync script failing after recent migrations
💬 How much have I spent for groc…
More options for 💬 How much have I spent for groc…
April 2026 spending by category
More options for April 2026 spending by category
Code diff review
More options for Code diff review
HubSpot rate limit implementation strategy
More options for HubSpot rate limit implementation strategy
Screenpipe retention policy code location
More options for Screenpipe retention policy code location
Viewing retention policy in screenpipe
More options for Viewing retention policy in screenpipe
Clean shot x video recording termination issue
More options for Clean shot x video recording termination issue
HubSpot rate limit handling with executeRequest
More options for HubSpot rate limit handling with executeRequest
Untitled
More options
💬 Screen pipe. Is there ability…
More options for 💬 Screen pipe. Is there ability…
SMB mount access inconsistency between Finder and iTerm
More options for SMB mount access inconsistency between Finder and iTerm
💬 What is the best switch I can…
More options for 💬 What is the best switch I can…
Permission denied on screenpipe volume
More options for Permission denied on screenpipe volume
Screenpipe sync database attachment error
More options for Screenpipe sync database attachment error
Last swimming outing with Dani
More options for Last swimming outing with Dani
Definition of incarcerated
More options for Definition of incarcerated
Chromecast remote volume buttons not working
More options for Chromecast remote volume buttons not working
Relaunch to update v1.6608.0
Relaunch to update
v1.6608.0
Lukas Pro
Get apps and extensions
Screenpipe sync script failing after recent migrations, rename chat
Screenpipe sync script failing after recent migrations
More options for Screenpipe sync script failing after recent migrations
Close
Share chat
Claude finished the response
You said: after recent updated in screenpipe (find out what are these) I am unable to run script.
You said: after recent updated in screenpipe (find out what are these) I am unable to run script.
Pasted Text, pasted, 353 lines
#!/bin/bash # screenpipe_sync.sh # Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions). # Also copies the day's video/frame data folder to the NAS. # # Usage: # ./screenpipe_sync.sh # syncs yesterday (default) # ./screenpipe_sync.sh 2026-04-15 # sync
PASTED
after recent updated in screenpipe (find out what are these) I am unable to run script. (pasted) "lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-07
[2026-05-10 11:50:45] ========================================
[2026-05-10 11:50:45] Screenpipe sync starting for: 2026-05-07
[2026-05-10 11:50:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (2.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists ( 10G)
Data dir: OK (266 files, 292M)
[+00m05s] ▶ Counting source rows for 2026-05-07
frames: 6262
elements: 623002
ui_events: 7412
ocr_text: 1670
meetings: 2
[+00m05s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m06s] ▶ Syncing data for 2026-05-07
video_chunks ✓ 0m01s
frames (6262 rows) ⠋ Parse error near line 3: table nas.frames has 24 columns but 30 values were supplied" There were some recent changes in migrations. Here are migrations form the begining of march (approx after I installed irt first time) 20260301000000 create elements table 2026-05-06 17:27:34 True 736637f38c6e0b5547f23c870ebbc3e87ef2d8d33b22ce73f7 ... 1302167
20260301100000 fts external content 2026-05-06 17:27:34 True 44ca0e5fc3b23c19aa09d7ac3fea48de604032d5feced2615c ... 2102875
20260301200000 drop ui monitoring 2026-05-06 17:27:34 True 9ab8a4d8c0d602b491ef1a6ff36076fd7b7c12c05848201682 ... 620375
20260306000000 delete empty transcriptions 2026-05-06 17:27:34 True 5f991a21d663157a2bce5cb9f0729f02181eef817aaef5a0b8 ... 166792
20260309000000 add cloud blob id 2026-05-06 17:27:34 True e1588e32884ec5660d11bbaa995d767fb2172bb9732ad22319 ... 1450542
20260310000000 create memories 2026-05-06 17:27:34 True 4fd07e878de1dd5b8d184e7bca9ee4e6b2480bbf39e5a68ff7 ... 1135416
20260311000000 drop unused tables 2026-05-06 17:27:34 True 3d9eb9d327a61c4055b31e22082cd045e00bd7a875cbdee86b ... 547625
20260312000000 consolidate search to frames full text 2026-05-06 17:27:34 True 5a7a31a359e9e93978d46ab4759fc8cd43898c0fd325d001b7 ... 3038250
20260312000001 drop dead fts tables 2026-05-06 17:27:34 True dd8264b96b4427f40b06ac60b813b77b6d055b24dd727212c5 ... 297250
20260312000002 drop accessibility tags 2026-05-06 17:27:34 True 672b2661f7e0fc8026f2eb6cc5d24935a15db4ed4982aeb973 ... 260167
20260315000000 add frame id to memories 2026-05-06 17:27:34 True f324ec7981134e647b6497126a2b6a7467e94d271d140d0d25 ... 642250
20260316000000 add elements activity summary index 2026-05-06 17:27:34 True 5b3f99a0d58fc73d62f240319d0718963364fdee1e3a7c4866 ... 265834
20260317000000 add elements automation props 2026-05-06 17:27:34 True 4bd132d263de143c7bb0dcf2e3b8074606c58c0f79e6091d13 ... 537750
20260318000000 add elements ref frame id 2026-05-06 17:27:34 True 33282b2c342e4743f096d1e3093146e243d97f392fe4df2cb5 ... 525250
20260319000000 add sync id indexes 2026-05-06 17:27:34 True 22c7a18c918cfcc458f05fdbfe2a0b2bb65a67ae9daeec6028 ... 407083
20260320000000 add note to meetings 2026-05-06 17:27:34 True cfa45b4c98e300c40cd36942839aa20528f47ae3e7b9c86751 ... 519625
20260324000000 drop ocr text delete trigger 2026-05-06 17:27:34 True 99f445308168fc88f993c43f8e884cc4dc7e41411c86b4d3e7 ... 182209
20260326000000 add session path to pipe executions 2026-05-06 17:27:34 True 5aa266dfcd7b741a18dd3ffb6b0ca3caf2e569959074cbc3ff ... 549583
20260411000000 add elements ref frame id index 2026-05-06 17:27:34 True 378589322920e74980ea48c6b44c916cd488e47a8f6172161e ... 232083
20260415000000 frames fts external content 2026-05-06 17:27:34 True 3fdac70da2fd44bca3c3717768b57c4cbee743451b73f13de9 ... 1259250
20260423000000 add speaker id indexes 2026-05-06 17:27:34 True 80e8e0cf144ee620c81b3796196ca22b8e34f9c152ca2ffe8f ... 398709
20260429000000 add evicted at to chunks 2026-05-06 17:27:34 True 180b1d44305df17620929a69ecce60fa3ce0148905adf19ff7 ... 963833
20260502000000 add elements on screen 2026-05-06 17:27:34 True 2cf51a077a75ef32e4e1d722092053ce919bdeee151d3d91fb ... 644500
20260504120000 add document path column 2026-05-06 17:27:34 True d84f7127e1647984eeb1f89e8dffd0918525f128e4608d323f ... 593042
20260506120000 add memories sync columns 2026-05-07 06:45:22 True 800beaaa228c7fbd88fe367dc5b357adb72a3a0635da5a30f4 ... 1777417
20260501000000 add redacted columns 2026-05-08 06:25:45 True 2a4cd6714a2322ccf8f2af6084af5a05e40f460c44c1aaf874 ... 795120667
20260503000000 add frames image redacted 2026-05-08 06:25:45 True . It worked up to the point where I attemtped to remove it and install again since the retention policy doesn't clear old data and it was to big. I am basically moving data to nas and query it form there. mac is for capture only or lets say one week query using claude code. THe main consumer and interface is on nas. How to make it work so new changes won't messup my setup. Seems like I removed the whole folder it was working find runnign with @letest even I may be wrong.
Show more
11:58
Retry
Edit
Copy
Claude responded: Looking at this carefully, the error tells the whole story:
Claude responded: Looking at this carefully, the error tells the whole story:
Pinpointing schema mismatches from recent PII redaction migrations
Pinpointing schema mismatches from recent PII redaction migrations
Looking at this carefully, the error tells the whole story:
Copy to clipboard
table nas.frames has 24 columns but 30 values were supplied
Your source DB got 6 new columns from recent migrations, but the NAS archive was created earlier with the old schema.
CREATE TABLE IF NOT EXISTS
is a no-op when the table exists, so the NAS schema is frozen at whatever it was when first created. Then
INSERT ... SELECT *
does positional mapping, which blows up the moment column counts diverge.
Let me verify the recent screenpipe changes and then fix this properly.
Diagnosed schema drift, architected resilient migration strategy
Diagnosed schema drift, architected resilient migration strategy
What's happening
What's happening
The error is schema drift, not a screenpipe bug. Your source DB grew 6 columns from these migrations (most landed late April / early May with the PII work):
20260429000000 add evicted at to chunks
→
video_chunks.evicted_at
20260502000000 add elements on screen
→
elements.on_screen
20260504120000 add document path column
→
frames.document_path
20260501000000 add redacted columns
→ redacted columns on frames/ocr_text/elements (this is the big one — accompanies the new
screenpipe/pii-redactor
model)
20260503000000 add frames image redacted
→
frames.image_redacted_path
20260506120000 add memories sync columns
→ memories table
Your NAS
archive.db
was created before these landed.
CREATE TABLE IF NOT EXISTS
is a no-op on existing tables, so the NAS schema froze. Then
INSERT INTO nas.frames SELECT * FROM main.frames
does
positional
mapping → 30 source values into a 24-column NAS table → parse error.
You weren't wrong about
npx screenpipe@latest
working: removing the folder gave you a fresh local DB with the new schema, and querying still works because everything is on one schema. The mismatch only surfaces when you try to merge old + new schemas via the sync.
The fix
The fix
Two changes make this future-proof:
ensure_columns
— before each insert, diff source vs NAS columns and run
ALTER TABLE ADD COLUMN
for any new ones. SQLite handles this as a metadata-only op, so it's instant even on your 10G archive.
Explicit column lists in INSERT
— never
SELECT *
again. Build the column list dynamically from
PRAGMA table_info(<table>)
and use
INSERT INTO t (cols) SELECT cols FROM ...
. Now positional drift is structurally impossible.
Bonus: dropped columns in future migrations will also be handled gracefully — the archive keeps the column with NULLs for new rows, no errors.
Let me write the updated script.
Created a file, ran a command, read a file
Created a file, ran a command, read a file
What changed in the script
What changed in the script
Three additions, everything else preserved:
Schema helpers
(
table_columns_with_types
,
table_columns
,
table_exists
,
ensure_columns
,
build_col_list
) — pure bash + sqlite3 PRAGMA, no extra deps.
New "Reconciling NAS schema with source" step
— runs after
CREATE TABLE IF NOT EXISTS
, before indexes/FTS/inserts. For each table in
SYNC_TABLES
, it diffs source columns against NAS and
ALTER TABLE ADD COLUMN
s the missing ones. Output looks like:
Copy to clipboard
schema: frames ✓ added 4: cloud_blob_id document_path image_redacted_path text_redacted
schema: elements ✓ added 2: on_screen text_redacted
schema: video_chunks ✓ added 1: evicted_at
Explicit column lists in every INSERT
—
FRAMES_COLS=$(build_col_list frames)
builds
"id","timestamp","app_name",...
from source
PRAGMA table_info
, and the inserts use
INSERT INTO nas.t (cols) SELECT cols FROM main.t
. No more positional mapping. Column names are double-quoted so any future hyphens or reserved-word columns won't break parsing.
What to expect on the next run
What to expect on the next run
First run after dropping it in: the "Reconciling NAS schema with source" step will print the missing columns it adds to your existing 10G archive (4 on
frames
, plus a few on
elements
/
video_chunks
/
ocr_text
). Each
ALTER TABLE ADD COLUMN
is a metadata-only op in SQLite — no table rewrite, no VACUUM needed, total cost should be sub-second even on the 10G file. Then 2026-05-07 will sync normally.
After that, when Screenpipe ships the next migration, your sync just picks up the new columns automatically. No more breakage.
One thing worth knowing
One thing worth knowing
If Screenpipe ever
drops
a column in source (rare but possible — they did
drop ui monitoring
and
drop dead fts tables
earlier), the NAS will still have it, and
build_col_list
(sourced from
main
) won't reference it. New rows will have NULL for the orphaned column, old rows keep their data. That's the right archival behavior — but if you ever want to actually drop those orphan columns from NAS, that's a manual
ALTER TABLE ... DROP COLUMN
which SQLite has supported since 3.35 (your macOS Tahoe ships 3.43+, and your NAS Docker SQLite is fine).
View Screenpipe sync
Screenpipe sync
SH
Open Screenpipe sync
Open in iTerm
Copy
Give positive feedback
Give negative feedback
Retry
You said: ok but given the changes introduced is there something I may actually use
You said: ok but given the changes introduced is there something I may actually use
ok but given the changes introduced is there something I may actually use
12:06
Retry
Edit
Copy
Claude responded: Good question.
Claude responded: Good question.
Cataloging PII redactor capabilities and security categories
Cataloging PII redactor capabilities and security categories
Good question. Let me look at what these new columns actually do and which ones map to your setup, since not all of them are equal value for you.
Evaluated four practical database columns for his specific workflow needs
Evaluated four practical database columns for his specific workflow needs
Yeah, three of them are genuinely useful for your setup. The rest are cloud-sync plumbing you can ignore.
frames.document_path — most useful for you
frames.document_path
— most useful for you
Captures the path of the document/file open at frame time. This is a meaningful upgrade over relying on...
|
14708
|
NULL
|
NULL
|
NULL
|
|
17295
|
769
|
50
|
2026-05-11T10:15:56.453222+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778494556453_m2.jpg...
|
Notion Calendar
|
NULL
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
rostmanFavouritesjiminny(®) AirDrop• RecentsA Appl rostmanFavouritesjiminny(®) AirDrop• RecentsA Applications9 Documents• Downloadsii lukasIcloud• iCloud Drive992 Svnc toldeLocations0 DXP4800PLUS-B5F A49 Network• CRM• Orange|• Red• Yellow• Greer• Blue• Purple• All lags..caltVIewWindowmelpscreenpipearchive.db• #recycledb.sqlite-shmdb.sqlitevi loassync.log• screenpipe.2026-05-07.0.1ogv data•2026-05-072026-05-062026-04.292026-04-27> 2026-04-25•2026-04-24> 2026-04-22• 2026-04-232026-04-20• 2026.04.212026-04-172026-04-16• 2026-04-15• 2026-04-14screenpipe_sync_updated.sharchive.db-oak>?app• db.sqlite-walscreenpipe_sync.shann cettinas ison• screenpipe.db›_pipes*x Hubspot v• SearchYour team is now on the Free plan with 1 admin. You retain editing access and other members are read-only. View team permissions to see who can edit, or upgrade to restore collaborationCOLLECTIONSy dEt Readse An error occurredee; successtul operation> DEL Archive>PATCH UpdateGET List>POST Createpost Filter. Sort and Search CRM Obiectseg. successful operationge. An error occurred.> CRM Owners• CRM Pinelinec› Deals• Engagements>D OLD ENGAGEMENTSGET list meetingsPOST search modified companiesPOSt soarch tacksGat read calli> poST sparch callGat list callsPOST meptinas scheduledGat aet meetinoPost aet link to tackPost create contact with AssociationHubsnotv Iteration run HSv GET Read Copyce. An error occurred.se successful operationv Iteration run Search HSPOST search contact by email Copy> Journal & webhoooks v4> ©Authl› PropertiesSEARCHpoSt search contact bv nhoneSustem Resource WarningGET next offsetGET Read CopyCRM Obiects > crm/v3/obiects/{obiect Tvoel > (obiect Id) > ReadKoaseurl)) /crm/vs/odjects/ :objectlype /:objectldE Docs Params • Authorization • Headers 9 Body Scripts Settingswuery ParamspropertiespropertiesassociationspaginateAssociationsarchivedidPropertyPath VariablesobiectlvpePesnonceVa HictoryySustem resources are constrained. Thesystem may not be able to generate the loadeded for this test and the cest is likely toe Connect Git = Concole 5.l TerminaValue<stning:name<string>companiesfalsefalse205825333040Valuedeal56611829248#) Send + Get a succecsful resnonsela Send + Visualize response*R Send + Write tests• Iteration run HShobl# Support Daily - in 1h 45 m100% C4• Mon 11 May 13:15:56No environnPOST search cont Xsearch contact by emall copy4* AIVariables in requesobjectidC baseUrlG token56611829248httos:/laoi.hubaoi.comCKel8LThMxIZOINOMI8kOEwr.DescriotionBulk Edit .A comma separated list of the properties to be returned in the response. If anyA comma separated list of the properties to be returned in the response. If anyA comma separated list of object types to retrieve associated IDs for. If any of tA comma separated list of obiect types to retrieve associated IDs for. It any of tWhether to return oniv results that have been archived!The name of a property whose values are unique for this obiect tvoeDescriptioDescrintionBulk Editi(Required)(Required)Globals Vault Tools?000...
|
NULL
|
-6936060008217053319
|
NULL
|
click
|
ocr
|
NULL
|
rostmanFavouritesjiminny(®) AirDrop• RecentsA Appl rostmanFavouritesjiminny(®) AirDrop• RecentsA Applications9 Documents• Downloadsii lukasIcloud• iCloud Drive992 Svnc toldeLocations0 DXP4800PLUS-B5F A49 Network• CRM• Orange|• Red• Yellow• Greer• Blue• Purple• All lags..caltVIewWindowmelpscreenpipearchive.db• #recycledb.sqlite-shmdb.sqlitevi loassync.log• screenpipe.2026-05-07.0.1ogv data•2026-05-072026-05-062026-04.292026-04-27> 2026-04-25•2026-04-24> 2026-04-22• 2026-04-232026-04-20• 2026.04.212026-04-172026-04-16• 2026-04-15• 2026-04-14screenpipe_sync_updated.sharchive.db-oak>?app• db.sqlite-walscreenpipe_sync.shann cettinas ison• screenpipe.db›_pipes*x Hubspot v• SearchYour team is now on the Free plan with 1 admin. You retain editing access and other members are read-only. View team permissions to see who can edit, or upgrade to restore collaborationCOLLECTIONSy dEt Readse An error occurredee; successtul operation> DEL Archive>PATCH UpdateGET List>POST Createpost Filter. Sort and Search CRM Obiectseg. successful operationge. An error occurred.> CRM Owners• CRM Pinelinec› Deals• Engagements>D OLD ENGAGEMENTSGET list meetingsPOST search modified companiesPOSt soarch tacksGat read calli> poST sparch callGat list callsPOST meptinas scheduledGat aet meetinoPost aet link to tackPost create contact with AssociationHubsnotv Iteration run HSv GET Read Copyce. An error occurred.se successful operationv Iteration run Search HSPOST search contact by email Copy> Journal & webhoooks v4> ©Authl› PropertiesSEARCHpoSt search contact bv nhoneSustem Resource WarningGET next offsetGET Read CopyCRM Obiects > crm/v3/obiects/{obiect Tvoel > (obiect Id) > ReadKoaseurl)) /crm/vs/odjects/ :objectlype /:objectldE Docs Params • Authorization • Headers 9 Body Scripts Settingswuery ParamspropertiespropertiesassociationspaginateAssociationsarchivedidPropertyPath VariablesobiectlvpePesnonceVa HictoryySustem resources are constrained. Thesystem may not be able to generate the loadeded for this test and the cest is likely toe Connect Git = Concole 5.l TerminaValue<stning:name<string>companiesfalsefalse205825333040Valuedeal56611829248#) Send + Get a succecsful resnonsela Send + Visualize response*R Send + Write tests• Iteration run HShobl# Support Daily - in 1h 45 m100% C4• Mon 11 May 13:15:56No environnPOST search cont Xsearch contact by emall copy4* AIVariables in requesobjectidC baseUrlG token56611829248httos:/laoi.hubaoi.comCKel8LThMxIZOINOMI8kOEwr.DescriotionBulk Edit .A comma separated list of the properties to be returned in the response. If anyA comma separated list of the properties to be returned in the response. If anyA comma separated list of object types to retrieve associated IDs for. If any of tA comma separated list of obiect types to retrieve associated IDs for. It any of tWhether to return oniv results that have been archived!The name of a property whose values are unique for this obiect tvoeDescriptioDescrintionBulk Editi(Required)(Required)Globals Vault Tools?000...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
8311
|
367
|
0
|
2026-05-08T10:20:03.431404+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-08/1778 /Users/lukas/.screenpipe/data/data/2026-05-08/1778235603431_m1.jpg...
|
Firefox
|
Dialer Imports | Datadog — Work
|
True
|
app.datadoghq.com/dashboard/lists?p=1
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 3 Q2 - Platform Team - Scrum Board Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
Service-Desk - Queues - Platform team - Service space - Jira
Service-Desk - Queues - Platform team - Service space - Jira
Jy 20807 check various issues with stages by nikolaybiaivanov · Pull Request #12041 · jiminny/app
Jy 20807 check various issues with stages by nikolaybiaivanov · Pull Request #12041 · jiminny/app
Illuminate\Queue\MaxAttemptsExceededException: Jiminny\Jobs\Activity\DeleteTeamChurnData has been attempted too many times. — jiminny — app
Illuminate\Queue\MaxAttemptsExceededException: Jiminny\Jobs\Activity\DeleteTeamChurnData has been attempted too many times. — jiminny — app
JY-20818 move ask jiminny reports to its own datadog metric by LakyLak · Pull Request #12056 · jiminny/app
JY-20818 move ask jiminny reports to its own datadog metric by LakyLak · Pull Request #12056 · jiminny/app
Userpilot | Ask Jiminny Report Generated
Userpilot | Ask Jiminny Report Generated
JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app
JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app
Problem loading page
Problem loading page
Search the CRM - HubSpot docs
Search the CRM - HubSpot docs
Jiminny
Jiminny
New Tab
New Tab
New Tab
New Tab
Dashboards | Datadog
Dashboards | Datadog
AI Features | Datadog
AI Features | Datadog
Jy 20493 smart instant nudge pre filtering by nikolaybiaivanov · Pull Request #12053 · jiminny/app
Jy 20493 smart instant nudge pre filtering by nikolaybiaivanov · Pull Request #12053 · jiminny/app
Dialer Imports | Datadog
Dialer Imports | Datadog
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Close bookmarks (⌘B)
Bookmarks
Bookmarks
Close sidebar
Search bookmarks
Skip to main content
Skip to main content
Home
Hide menu
Minimize menu
Go to…
Go to…...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Service-Desk - Queues - Platform team - Service space - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Service-Desk - Queues - Platform team - Service space - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jy 20807 check various issues with stages by nikolaybiaivanov · Pull Request #12041 · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jy 20807 check various issues with stages by nikolaybiaivanov · Pull Request #12041 · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Illuminate\\Queue\\MaxAttemptsExceededException: Jiminny\\Jobs\\Activity\\DeleteTeamChurnData has been attempted too many times. — jiminny — app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Illuminate\\Queue\\MaxAttemptsExceededException: Jiminny\\Jobs\\Activity\\DeleteTeamChurnData has been attempted too many times. — jiminny — app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20818 move ask jiminny reports to its own datadog metric by LakyLak · Pull Request #12056 · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20818 move ask jiminny reports to its own datadog metric by LakyLak · Pull Request #12056 · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Userpilot | Ask Jiminny Report Generated","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Userpilot | Ask Jiminny Report Generated","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Problem loading page","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Problem loading page","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Search the CRM - HubSpot docs","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Search the CRM - HubSpot docs","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"New Tab","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"New Tab","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"New Tab","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"New Tab","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Dashboards | Datadog","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Dashboards | Datadog","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"AI Features | Datadog","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"AI Features | Datadog","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jy 20493 smart instant nudge pre filtering by nikolaybiaivanov · Pull Request #12053 · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jy 20493 smart instant nudge pre filtering by nikolaybiaivanov · Pull Request #12053 · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Dialer Imports | Datadog","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Dialer Imports | Datadog","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"New Tab","depth":4,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.0,"top":0.0,"width":0.022222223,"height":0.035555556},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.0,"top":0.0,"width":0.022222223,"height":0.035555556},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.0,"top":0.0,"width":0.022222223,"height":0.035555556},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.0,"top":0.0,"width":0.022222223,"height":0.035555556},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Close bookmarks (⌘B)","depth":6,"bounds":{"left":0.0013888889,"top":0.0,"width":0.022222223,"height":0.035555556},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Bookmarks","depth":5,"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Bookmarks","depth":6,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close sidebar","depth":6,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXTextField","text":"Search bookmarks","depth":7,"on_screen":true,"help_text":"","role_description":"search text field","subrole":"AXSearchField","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to main content","depth":7,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to main content","depth":8,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Home","depth":10,"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Hide menu","depth":10,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Minimize menu","depth":10,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Go to…","depth":9,"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Go to…","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-6933669756884188524
|
-3004379195629210496
|
click
|
accessibility
|
NULL
|
Platform Sprint 3 Q2 - Platform Team - Scrum Board Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
Service-Desk - Queues - Platform team - Service space - Jira
Service-Desk - Queues - Platform team - Service space - Jira
Jy 20807 check various issues with stages by nikolaybiaivanov · Pull Request #12041 · jiminny/app
Jy 20807 check various issues with stages by nikolaybiaivanov · Pull Request #12041 · jiminny/app
Illuminate\Queue\MaxAttemptsExceededException: Jiminny\Jobs\Activity\DeleteTeamChurnData has been attempted too many times. — jiminny — app
Illuminate\Queue\MaxAttemptsExceededException: Jiminny\Jobs\Activity\DeleteTeamChurnData has been attempted too many times. — jiminny — app
JY-20818 move ask jiminny reports to its own datadog metric by LakyLak · Pull Request #12056 · jiminny/app
JY-20818 move ask jiminny reports to its own datadog metric by LakyLak · Pull Request #12056 · jiminny/app
Userpilot | Ask Jiminny Report Generated
Userpilot | Ask Jiminny Report Generated
JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app
JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app
Problem loading page
Problem loading page
Search the CRM - HubSpot docs
Search the CRM - HubSpot docs
Jiminny
Jiminny
New Tab
New Tab
New Tab
New Tab
Dashboards | Datadog
Dashboards | Datadog
AI Features | Datadog
AI Features | Datadog
Jy 20493 smart instant nudge pre filtering by nikolaybiaivanov · Pull Request #12053 · jiminny/app
Jy 20493 smart instant nudge pre filtering by nikolaybiaivanov · Pull Request #12053 · jiminny/app
Dialer Imports | Datadog
Dialer Imports | Datadog
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Close bookmarks (⌘B)
Bookmarks
Bookmarks
Close sidebar
Search bookmarks
Skip to main content
Skip to main content
Home
Hide menu
Minimize menu
Go to…
Go to…...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18727
|
804
|
23
|
2026-05-11T11:42:10.234481+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778499730234_m1.jpg...
|
Code
|
Client.php — app — Modified
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelpIiol§ Preparation for Refi... in 18 mDEV (docker)-zshDOCKERcompiledeventsroutesviewsO ₴1DEV (docker)$2APP (-zsh)H3Jiminny-worker-processing-2:j1minny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00:stoppedworker-analytics:worker-analytics_00: stoppedworker-audio:worker-audio_00: stoppedworker-crm-update:worker-crm-update_00:stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker:worker_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-emails:worker-emails_00: stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny: debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5100% <78• Mon 11 May 14:42:09T81-zsh+screenpipe"O ₴61.79ms DONE2.06ms DONE0.85ms DONE4.12ms DONEDEV...
|
NULL
|
-6932310047078284063
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelpIiol§ Preparation for Refi... in 18 mDEV (docker)-zshDOCKERcompiledeventsroutesviewsO ₴1DEV (docker)$2APP (-zsh)H3Jiminny-worker-processing-2:j1minny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00:stoppedworker-analytics:worker-analytics_00: stoppedworker-audio:worker-audio_00: stoppedworker-crm-update:worker-crm-update_00:stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker:worker_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-emails:worker-emails_00: stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny: debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5100% <78• Mon 11 May 14:42:09T81-zsh+screenpipe"O ₴61.79ms DONE2.06ms DONE0.85ms DONE4.12ms DONEDEV...
|
18724
|
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/ /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php...
|
NULL
|
NULL
|
|
22560
|
972
|
47
|
2026-05-12T07:13:51.616881+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-12/1778 /Users/lukas/.screenpipe/data/data/2026-05-12/1778570031616_m1.jpg...
|
Firefox
|
Meet - Daily - Platform — Work
|
True
|
meet.google.com/mie-gawc-dsi?authuser=lukas.kovali meet.google.com/mie-gawc-dsi?authuser=lukas.kovalik%40jiminny.com...
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Meet - Daily - Platform
Close tab
New Tab
Open Goo Meet - Daily - Platform
Close tab
New Tab
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Customize sidebar
You left the meeting
You left the meeting
Rejoin
Rejoin
Return to home screen
Return to home screen
How was the audio and video?
How was the audio and video?
Rate the meeting 1 star out of 5.
Rate the meeting 2 stars out of 5.
Rate the meeting 3 stars out of 5.
Rate the meeting 4 stars out of 5....
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Meet - Daily - Platform","depth":4,"bounds":{"left":0.0,"top":0.072222225,"width":0.033680554,"height":0.045555554},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.0013888889,"top":0.072222225,"width":0.010416667,"height":0.016666668},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.005902778,"top":0.12,"width":0.022222223,"height":0.035555556},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.0,"top":0.7977778,"width":0.033680554,"height":0.043333333},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.0,"top":0.8411111,"width":0.033680554,"height":0.038333334},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.0,"top":0.8794444,"width":0.033680554,"height":0.03888889},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.0,"top":0.91833335,"width":0.033680554,"height":0.038333334},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.0,"top":0.95666665,"width":0.033680554,"height":0.043333333},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"You left the meeting","depth":10,"bounds":{"left":0.4045139,"top":0.18333334,"width":0.22465278,"height":0.04888889},"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"You left the meeting","depth":11,"bounds":{"left":0.4045139,"top":0.18277778,"width":0.22465278,"height":0.050555557},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Rejoin","depth":11,"bounds":{"left":0.41493055,"top":0.27222222,"width":0.062152777,"height":0.044444446},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":true,"is_selected":false},{"role":"AXStaticText","text":"Rejoin","depth":13,"bounds":{"left":0.43229166,"top":0.28444445,"width":0.027430555,"height":0.020555556},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Return to home screen","depth":11,"bounds":{"left":0.4826389,"top":0.27222222,"width":0.13611111,"height":0.044444446},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Return to home screen","depth":13,"bounds":{"left":0.49930555,"top":0.28444445,"width":0.10277778,"height":0.020555556},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"How was the audio and video?","depth":10,"bounds":{"left":0.41284722,"top":0.39222223,"width":0.20833333,"height":0.046666667},"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"How was the audio and video?","depth":11,"bounds":{"left":0.41284722,"top":0.39444444,"width":0.15729167,"height":0.022777777},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Rate the meeting 1 star out of 5.","depth":10,"bounds":{"left":0.41631943,"top":0.43888888,"width":0.033333335,"height":0.053333335},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Rate the meeting 2 stars out of 5.","depth":10,"bounds":{"left":0.45833334,"top":0.43888888,"width":0.033333335,"height":0.053333335},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Rate the meeting 3 stars out of 5.","depth":10,"bounds":{"left":0.5003472,"top":0.43888888,"width":0.033333335,"height":0.053333335},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Rate the meeting 4 stars out of 5.","depth":10,"bounds":{"left":0.54236114,"top":0.43888888,"width":0.033333335,"height":0.053333335},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
-6932076777605361764
|
5285003286854938246
|
visual_change
|
hybrid
|
NULL
|
Meet - Daily - Platform
Close tab
New Tab
Open Goo Meet - Daily - Platform
Close tab
New Tab
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Customize sidebar
You left the meeting
You left the meeting
Rejoin
Rejoin
Return to home screen
Return to home screen
How was the audio and video?
How was the audio and video?
Rate the meeting 1 star out of 5.
Rate the meeting 2 stars out of 5.
Rate the meeting 3 stars out of 5.
Rate the meeting 4 stars out of 5.
Firefox File Edit View•••@<→ CHistoryBookmarksProfilesToolsWindowHelp• =@ meet.google.com/mie-gawc-dsi?authuser=lukas.kovalik%40jiminny.com{ Support Daily - in 4h 47 m A *100% C4 8• Tue 12 May 10:13:51(58)Returning to home screenYou left the meetingRejoinReturn to home screenHow was the audio and video?Very badVery goodСopy51 27m 56s1,02 GBFeedback...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
5885
|
230
|
12
|
2026-05-07T16:52:31.618801+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778172751618_m2.jpg...
|
PhpStorm
|
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Find in Files
29 matches in 10 files
File mask:
*. Find in Files
29 matches in 10 files
File mask:
*.php
*.php
Auto
*.php
Filter Search Results
Pin Window
Search History
RateLimitException
New Line
Match case
Words
Regex
Replace History
Replace
New Line
Preserve case
In Project
Module
Directory
Scope
Module
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot
/Users/lukas/jiminny/app/app/Jobs/Crm/Delete
/Users/lukas/jiminny/app/app/Listeners/Crm
/Users/lukas/jiminny/app/app/Jobs/Crm
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/ServiceTraits
/Users/lukas/jiminny/app/app/Exceptions
/Users/lukas/jiminny/app/app/Component/Queue/Job
/Users/lukas/jiminny/app/app/Listeners/AutomatedReports/UserPilot
/Users/lukas/jiminny/app/app/Events/Crm
/Users/lukas/jiminny/app/app/Jobs/AutomatedReports
/Users/lukas/jiminny/app/app/Listeners/Activities/Coaching/UserPilot
/Users/lukas/jiminny/app/app/Listeners/Activities/ActivityProvider/UserPilot
/Users/lukas/jiminny/app/app/Jobs/Activity/PushSummaryToCrm
/Users/lukas/jiminny/app/app/Repositories/Crm
/Users/lukas/jiminny/app/app/Services/Kiosk/AutomatedReports
/Users/lukas/jiminny/app/app/Http/Controllers/API/UserAutomatedReports
/Users/lukas/jiminny/app/app/Services/Crm/Salesforce
/Users/lukas/jiminny/app/app/Providers
/Users/lukas/jiminny/app/app/Services/Crm/IntegrationApp
/Users/lukas/jiminny/app/app/Events/Activities/Crm
/Users/lukas/jiminny/app/app/Listeners/Playbooks
/Users/lukas/jiminny/app/app/Console/Commands/Crm
/Users/lukas/jiminny/app/app/Services/Crm
/Users/lukas/jiminny/app/app/Http/Controllers
/Users/lukas/jiminny/app/app/Console/Commands/Reports
/Users/lukas/jiminny/app/app/VO/Repository/OnDemandActivitySearch
/Users/lukas/jiminny/app/app/Listeners/Activities/Conferences/UserPilot
/Users/lukas/jiminny/app/app/Http/Controllers/Webhook
/Users/lukas/jiminny/app/resources/views/emails/reports
/Users/lukas/jiminny/app/app/Mail/Reports
/Users/lukas/jiminny/app/app/Repositories
/Users/lukas/jiminny/app/app/Component/ActivitySearch/Service
/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Salesforce
/Users/lukas/jiminny/app/routes
/Users/lukas/jiminny/app/app/Console/Commands
/Users/lukas/jiminny/app/database/migrations
/Users/lukas/Library/Application Support/JetBrains/PhpStorm2026.1/consoles/db/325d461a-c90f-430a-99d4-6ddfce0c61d7
/Users/lukas/jiminny/app/app/Http/Controllers/API/V2
/Users/lukas/jiminny/app/app/Jobs/Crm/Hubspot
/Users/lukas/jiminny/app/app/Component/DealInsights
/Users/lukas/jiminny/app/app/Policies
/Users/lukas/jiminny/app/app/Services/Crm/Helpers
/Users/lukas/jiminny/app/app/Models
/Users/lukas/jiminny/app/app/Listeners/Teams
/Users/lukas/jiminny/app/app/Jobs/Crm/Salesforce
/Users/lukas/jiminny/app/app
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Journal
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/OpportunitySyncStrategy
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Webhook
/Users/lukas/jiminny/app/storage/logs
/Users/lukas/jiminny/app
/Users/lukas/jiminny/app/app/Services/Internal
/Users/lukas/jiminny/app/app/Listeners/Transcription
/Users/lukas/jiminny/app/tests/Unit/Listeners/Teams
/Users/lukas/jiminny/app/app/Models/Crm
/Users/lukas/Library/Application Support/JetBrains/PhpStorm2026.1/consoles/db/91133dfa-8d71-4e12-bfb8-fec7f1afba8f
/Users/lukas/jiminny/app/app/Observers
/Users/lukas/jiminny/app/app/Services/Mail
/Users/lukas/jiminny/app/app/Console/Commands/Activities
/Users/lukas/jiminny/app/app/Console/Commands/Activities/Migrator
/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Hubspot/ServiceTraits
/Users/lukas/jiminny/app/app/Jobs/User
/Users/lukas/jiminny/app/app/Models/Activity
/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Hubspot/Webhook
/Users/lukas/jiminny/app/app/Component/AiAutomation/Listeners/PendingAnalysis
/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Hubspot
/Users/lukas/jiminny/app/app/Component/ActivitySearch/FilterDefinition/DealInsights
/Users/lukas/jiminny/app/app/Services/Crm/DecorateActivity
/Users/lukas/jiminny/app/app/Component/Activity/Event
/Users/lukas/jiminny/app/app/Component/Sidekick
/Users/lukas/jiminny/app/app/Listeners/Activities/Conferences
/Users/lukas/jiminny/app/app/Listeners/Activities/Bots
/Users/lukas/jiminny/app/app/Services/RecallAI/Webhooks/Handlers
/Users/lukas/jiminny/app/app/Events/Activities/Bots
/Users/lukas/jiminny/app/app/Component/MeetingBot
/Users/lukas/jiminny/app/app/Services/Activity/RingCentral
/Users/lukas/jiminny/app/app/Http/Controllers/Webhook/Hubspot
/Users/lukas/jiminny/app/app/Services/Activity/Gmail
/Users/lukas/jiminny/app/app/Services/Crm/CrmObjects/ServiceTraits
/Users/lukas/jiminny/app/app/Jobs/Mailbox
/Users/lukas/jiminny/app/app/Console
/Users/lukas/jiminny/app/front-end/src/composables
/Users/lukas/jiminny/app/app/Console/Commands/Calendars
/Users/lukas/jiminny/app/app/Http/Controllers/API
/Users/lukas/jiminny/app/app/Http/Controllers/Internal/WebhookReceiver
/Users/lukas/jiminny/app/app/Services/Crm/IntegrationApp/ServiceTraits
/Users/lukas/jiminny/app/app/Component/Queue
/Users/lukas/jiminny/app/app/Console/Commands/Crm/Hubspot
/Users/lukas/jiminny/app/app/Component/Transcription/Job
/Users/lukas/jiminny/app/tests/Unit/Services/Listeners
/Users/lukas/jiminny/app/app/Services/Crm/Listeners
/Users/lukas/jiminny/app/app/Traits
/Users/lukas/jiminny/app/tests/Unit/Jobs/Crm/Hubspot
/Users/lukas/jiminny/app/tests/Unit/Services/Crm
/Users/lukas/jiminny/app/app/Services/Activity
/Users/lukas/jiminny/app/app/Services/Calendar/Command
/Users/lukas/jiminny/app/.idea/queries
/Users/lukas/jiminny/app/vendor/hubspot/api-client/codegen/Crm
/Users/lukas/jiminny/app/vendor/hubspot
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Fields
/Users/lukas/jiminny/app/app/Services/Crm/Copper
/Users/lukas/jiminny/app/app/Services/Crm/Bullhorn
/Users/lukas/jiminny/app/app/Notifications/Channels
/Users/lukas/jiminny/app/tests/Unit
/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Hubspot/Journal
/Users/lukas/jiminny/app/app/Interactions/Settings/Teams
/Users/lukas/jiminny/app/app/Exceptions/Crm
/Users/lukas/jiminny/app/vendor/hubspot/hubspot-php/src/Endpoints
/Users/lukas/jiminny/app/config
/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Hubspot/OpportunitySyncStrategy
/Users/lukas/jiminny/app/vendor/laravel/framework/src/Illuminate/Redis/Connections
/Users/lukas/jiminny/app/app/Http/Controllers/Settings/Teams
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Webhook/Traits
/Users/lukas/jiminny/app/vendor/laravel/framework/src/Illuminate/Broadcasting
/Users/lukas/jiminny/app/app/Component/FeatureFlags
/Users/lukas/jiminny/app/app/Component/Activity
/Users/lukas/jiminny/app/app/Component/ActivitySearch
/Users/lukas/jiminny/app/tests/Unit/Events/Activities/Crm
/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Hubspot/Pagination
/Users/lukas/jiminny/app/app/Console/Commands/Dev
/Users/lukas/jiminny/app/front-end
/Users/lukas/jiminny/app/app/Component/Prophet
/Users/lukas/jiminny/app/tests/Unit/Services/Crm/IntegrationApp
/Users/lukas/jiminny/app/app/Component/AskAnything
/Users/lukas/jiminny/app/app/Component/AskJiminnyAi/OnDemandLevel/Events
/Users/lukas/jiminny/app/app/Component/AskAnything/Events
/Users/lukas/jiminny/app/app/Component/AskJiminnyAi/DealLevel/Traits
/Users/lukas/jiminny/app/app/Component/ProphetAi
/Users/lukas/Library/Application Support/JetBrains/PhpStorm2026.1/consoles/db/d1e2c340-64e9-49c6-aa9a-196201874532
/Users/lukas/jiminny/app/app/Http/Controllers/API/Page
/Users/lukas/jiminny/app/front-end/src/components/ondemand/ActivityList
/Users/lukas/Library/Application Support/JetBrains/PhpStorm2026.1/consoles/db/5b1549d5-9876-4d9e-9ce3-025f12a83283
/Users/lukas/jiminny/app/app/Contracts/Repositories
/Users/lukas/jiminny/app/app/Http/Controllers/Kiosk
/Users/lukas/jiminny/app/app/Component/AiAutomation/Actions
/Users/lukas/jiminny/app/app/Services/Activity/HubSpot
/Users/lukas/jiminny/app/app/Services/Crm/Pipedrive
/Users/lukas/jiminny/app/app/Jobs/Activity/Import
/Users/lukas/jiminny/app/app/Events/Import
/Users/lukas/jiminny/app/app/Events/Activities/Dialers
/Users/lukas/jiminny/app/tests
/Users/lukas/jiminny/app/app/Events/Activities
/Users/lukas/jiminny/app/tests/Unit/Jobs/Activity/PushSummaryToCrm
/Users/lukas/jiminny/app/app/Console/Commands/Analytics
/Users/lukas/jiminny/app/tests/Unit/Services/Kiosk/AutomatedReports
/Users/lukas/jiminny/app/app/Http/Middleware
/Users/lukas/jiminny/app/app/Http/Controllers/Auth
/Users/lukas/jiminny/app/tests/Unit/Jobs/Crm
/Users/lukas/jiminny/app/app/Services/Crm/IntegrationApp/Api
/Users/lukas/jiminny/app/app/Services/Crm/IntegrationApp/Accessors
/Users/lukas/jiminny/app/app/Services/Crm/Close
/Users/lukas/jiminny/app/app/Services
/Users/lukas/jiminny/app/app/Http/Transformers
/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Pipedrive
/Users/lukas/jiminny/app/app/Listeners/Activities/Crm/Summary
/Users/lukas/jiminny/app/app/Services/Activity/AmazonConnect
/Users/lukas/jiminny/app/app/Models/Participant
/Users/lukas/jiminny/app/app/Events/Activities/Connections
/Users/lukas/jiminny/app/app/Listeners/Activities/Crm
/Users/lukas/jiminny/app/app/Services/Calendar
/Users/lukas/jiminny/app/app/Jobs/DealRisks...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"Find in Files","depth":1,"bounds":{"left":0.2992021,"top":0.12609737,"width":0.024601065,"height":0.013567438},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"29 matches in 10 files","depth":1,"bounds":{"left":0.32779256,"top":0.12609737,"width":0.044215426,"height":0.013567438},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"File mask:","depth":1,"bounds":{"left":0.5315825,"top":0.12290503,"width":0.029587766,"height":0.019952115},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXComboBox","text":"*.php","depth":1,"bounds":{"left":0.5621675,"top":0.11971269,"width":0.027925532,"height":0.027134877},"on_screen":true,"value":"*.php","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"*.php","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Auto","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXTextField","text":"*.php","depth":2,"bounds":{"left":0.5661569,"top":0.12609737,"width":0.011635638,"height":0.013567438},"on_screen":true,"value":"*.php","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Filter Search Results","depth":1,"bounds":{"left":0.5944149,"top":0.12290503,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Pin Window","depth":1,"bounds":{"left":0.6037234,"top":0.12290503,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Search History","depth":1,"bounds":{"left":0.2962101,"top":0.15403032,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"RateLimitException","depth":2,"bounds":{"left":0.30718085,"top":0.15403032,"width":0.26196808,"height":0.017557861},"on_screen":true,"value":"RateLimitException","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"New Line","depth":1,"bounds":{"left":0.578125,"top":0.15403032,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Match case","depth":1,"bounds":{"left":0.5880984,"top":0.15403032,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Words","depth":1,"bounds":{"left":0.59674203,"top":0.15403032,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Regex","depth":1,"bounds":{"left":0.60538566,"top":0.15403032,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Replace History","depth":1,"bounds":{"left":0.27027926,"top":1.0,"width":0.00731383,"height":0.0},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Replace","depth":2,"on_screen":false,"role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"New Line","depth":1,"bounds":{"left":0.27027926,"top":1.0,"width":0.00731383,"height":0.0},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Preserve case","depth":1,"bounds":{"left":0.27027926,"top":1.0,"width":0.00731383,"height":0.0},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"In Project","depth":2,"bounds":{"left":0.2992021,"top":0.1867518,"width":0.022938829,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Module","depth":2,"bounds":{"left":0.32214096,"top":0.1867518,"width":0.019281914,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Directory","depth":2,"bounds":{"left":0.3414229,"top":0.1867518,"width":0.022606382,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Scope","depth":2,"bounds":{"left":0.36402926,"top":0.1867518,"width":0.017287234,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"Module","depth":1,"bounds":{"left":0.27027926,"top":1.0,"width":0.099734046,"height":0.0},"on_screen":false,"role_description":"pop up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXComboBox","text":"/Users/lukas/jiminny/app/app/Services/Crm/Hubspot","depth":1,"bounds":{"left":0.27027926,"top":1.0,"width":0.1974734,"height":0.0},"on_screen":false,"value":"/Users/lukas/jiminny/app/app/Services/Crm/Hubspot","role_description":"combo box","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm/Hubspot","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm/Delete","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Listeners/Crm","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/ServiceTraits","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Exceptions","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/Queue/Job","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Listeners/AutomatedReports/UserPilot","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Events/Crm","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/AutomatedReports","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Listeners/Activities/Coaching/UserPilot","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Listeners/Activities/ActivityProvider/UserPilot","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Activity/PushSummaryToCrm","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Repositories/Crm","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Kiosk/AutomatedReports","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Http/Controllers/API/UserAutomatedReports","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm/Salesforce","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Providers","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm/IntegrationApp","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Events/Activities/Crm","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Listeners/Playbooks","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Console/Commands/Crm","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Http/Controllers","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Console/Commands/Reports","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/VO/Repository/OnDemandActivitySearch","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Listeners/Activities/Conferences/UserPilot","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Http/Controllers/Webhook","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/resources/views/emails/reports","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Mail/Reports","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Repositories","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActivitySearch/Service","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Salesforce","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/routes","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Console/Commands","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/database/migrations","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/Library/Application Support/JetBrains/PhpStorm2026.1/consoles/db/325d461a-c90f-430a-99d4-6ddfce0c61d7","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Http/Controllers/API/V2","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm/Hubspot","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/DealInsights","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Policies","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm/Helpers","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Models","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Listeners/Teams","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm/Salesforce","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Journal","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/OpportunitySyncStrategy","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Webhook","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/storage/logs","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Internal","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Listeners/Transcription","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Listeners/Teams","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Models/Crm","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/Library/Application Support/JetBrains/PhpStorm2026.1/consoles/db/91133dfa-8d71-4e12-bfb8-fec7f1afba8f","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Observers","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Mail","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Console/Commands/Activities","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Console/Commands/Activities/Migrator","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Hubspot/ServiceTraits","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/User","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Models/Activity","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Hubspot/Webhook","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/AiAutomation/Listeners/PendingAnalysis","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Hubspot","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActivitySearch/FilterDefinition/DealInsights","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm/DecorateActivity","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/Activity/Event","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/Sidekick","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Listeners/Activities/Conferences","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Listeners/Activities/Bots","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/RecallAI/Webhooks/Handlers","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Events/Activities/Bots","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/MeetingBot","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Activity/RingCentral","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Http/Controllers/Webhook/Hubspot","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Activity/Gmail","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm/CrmObjects/ServiceTraits","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Mailbox","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Console","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/front-end/src/composables","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Console/Commands/Calendars","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Http/Controllers/API","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Http/Controllers/Internal/WebhookReceiver","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm/IntegrationApp/ServiceTraits","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/Queue","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Console/Commands/Crm/Hubspot","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/Transcription/Job","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Services/Listeners","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm/Listeners","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Traits","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Jobs/Crm/Hubspot","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Services/Crm","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Activity","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Calendar/Command","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/.idea/queries","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/vendor/hubspot/api-client/codegen/Crm","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/vendor/hubspot","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Fields","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm/Copper","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm/Bullhorn","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Notifications/Channels","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Hubspot/Journal","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Interactions/Settings/Teams","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Exceptions/Crm","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/vendor/hubspot/hubspot-php/src/Endpoints","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/config","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Hubspot/OpportunitySyncStrategy","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/vendor/laravel/framework/src/Illuminate/Redis/Connections","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Http/Controllers/Settings/Teams","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Webhook/Traits","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/vendor/laravel/framework/src/Illuminate/Broadcasting","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/FeatureFlags","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/Activity","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActivitySearch","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Events/Activities/Crm","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Hubspot/Pagination","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Console/Commands/Dev","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/front-end","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/Prophet","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Services/Crm/IntegrationApp","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/AskAnything","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/AskJiminnyAi/OnDemandLevel/Events","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/AskAnything/Events","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/AskJiminnyAi/DealLevel/Traits","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ProphetAi","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/Library/Application Support/JetBrains/PhpStorm2026.1/consoles/db/d1e2c340-64e9-49c6-aa9a-196201874532","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Http/Controllers/API/Page","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/front-end/src/components/ondemand/ActivityList","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/Library/Application Support/JetBrains/PhpStorm2026.1/consoles/db/5b1549d5-9876-4d9e-9ce3-025f12a83283","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Contracts/Repositories","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Http/Controllers/Kiosk","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/AiAutomation/Actions","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Activity/HubSpot","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm/Pipedrive","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Activity/Import","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Events/Import","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Events/Activities/Dialers","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Events/Activities","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Jobs/Activity/PushSummaryToCrm","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Console/Commands/Analytics","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Services/Kiosk/AutomatedReports","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Http/Middleware","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Http/Controllers/Auth","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Jobs/Crm","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm/IntegrationApp/Api","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm/IntegrationApp/Accessors","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Crm/Close","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Http/Transformers","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Pipedrive","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Listeners/Activities/Crm/Summary","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Activity/AmazonConnect","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Models/Participant","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Events/Activities/Connections","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Listeners/Activities/Crm","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Services/Calendar","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/DealRisks","depth":6,"on_screen":false,"role_description":"text"}]...
|
-6930155775262365916
|
-870517566606838079
|
click
|
accessibility
|
NULL
|
Find in Files
29 matches in 10 files
File mask:
*. Find in Files
29 matches in 10 files
File mask:
*.php
*.php
Auto
*.php
Filter Search Results
Pin Window
Search History
RateLimitException
New Line
Match case
Words
Regex
Replace History
Replace
New Line
Preserve case
In Project
Module
Directory
Scope
Module
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot
/Users/lukas/jiminny/app/app/Jobs/Crm/Delete
/Users/lukas/jiminny/app/app/Listeners/Crm
/Users/lukas/jiminny/app/app/Jobs/Crm
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/ServiceTraits
/Users/lukas/jiminny/app/app/Exceptions
/Users/lukas/jiminny/app/app/Component/Queue/Job
/Users/lukas/jiminny/app/app/Listeners/AutomatedReports/UserPilot
/Users/lukas/jiminny/app/app/Events/Crm
/Users/lukas/jiminny/app/app/Jobs/AutomatedReports
/Users/lukas/jiminny/app/app/Listeners/Activities/Coaching/UserPilot
/Users/lukas/jiminny/app/app/Listeners/Activities/ActivityProvider/UserPilot
/Users/lukas/jiminny/app/app/Jobs/Activity/PushSummaryToCrm
/Users/lukas/jiminny/app/app/Repositories/Crm
/Users/lukas/jiminny/app/app/Services/Kiosk/AutomatedReports
/Users/lukas/jiminny/app/app/Http/Controllers/API/UserAutomatedReports
/Users/lukas/jiminny/app/app/Services/Crm/Salesforce
/Users/lukas/jiminny/app/app/Providers
/Users/lukas/jiminny/app/app/Services/Crm/IntegrationApp
/Users/lukas/jiminny/app/app/Events/Activities/Crm
/Users/lukas/jiminny/app/app/Listeners/Playbooks
/Users/lukas/jiminny/app/app/Console/Commands/Crm
/Users/lukas/jiminny/app/app/Services/Crm
/Users/lukas/jiminny/app/app/Http/Controllers
/Users/lukas/jiminny/app/app/Console/Commands/Reports
/Users/lukas/jiminny/app/app/VO/Repository/OnDemandActivitySearch
/Users/lukas/jiminny/app/app/Listeners/Activities/Conferences/UserPilot
/Users/lukas/jiminny/app/app/Http/Controllers/Webhook
/Users/lukas/jiminny/app/resources/views/emails/reports
/Users/lukas/jiminny/app/app/Mail/Reports
/Users/lukas/jiminny/app/app/Repositories
/Users/lukas/jiminny/app/app/Component/ActivitySearch/Service
/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Salesforce
/Users/lukas/jiminny/app/routes
/Users/lukas/jiminny/app/app/Console/Commands
/Users/lukas/jiminny/app/database/migrations
/Users/lukas/Library/Application Support/JetBrains/PhpStorm2026.1/consoles/db/325d461a-c90f-430a-99d4-6ddfce0c61d7
/Users/lukas/jiminny/app/app/Http/Controllers/API/V2
/Users/lukas/jiminny/app/app/Jobs/Crm/Hubspot
/Users/lukas/jiminny/app/app/Component/DealInsights
/Users/lukas/jiminny/app/app/Policies
/Users/lukas/jiminny/app/app/Services/Crm/Helpers
/Users/lukas/jiminny/app/app/Models
/Users/lukas/jiminny/app/app/Listeners/Teams
/Users/lukas/jiminny/app/app/Jobs/Crm/Salesforce
/Users/lukas/jiminny/app/app
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Journal
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/OpportunitySyncStrategy
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Webhook
/Users/lukas/jiminny/app/storage/logs
/Users/lukas/jiminny/app
/Users/lukas/jiminny/app/app/Services/Internal
/Users/lukas/jiminny/app/app/Listeners/Transcription
/Users/lukas/jiminny/app/tests/Unit/Listeners/Teams
/Users/lukas/jiminny/app/app/Models/Crm
/Users/lukas/Library/Application Support/JetBrains/PhpStorm2026.1/consoles/db/91133dfa-8d71-4e12-bfb8-fec7f1afba8f
/Users/lukas/jiminny/app/app/Observers
/Users/lukas/jiminny/app/app/Services/Mail
/Users/lukas/jiminny/app/app/Console/Commands/Activities
/Users/lukas/jiminny/app/app/Console/Commands/Activities/Migrator
/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Hubspot/ServiceTraits
/Users/lukas/jiminny/app/app/Jobs/User
/Users/lukas/jiminny/app/app/Models/Activity
/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Hubspot/Webhook
/Users/lukas/jiminny/app/app/Component/AiAutomation/Listeners/PendingAnalysis
/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Hubspot
/Users/lukas/jiminny/app/app/Component/ActivitySearch/FilterDefinition/DealInsights
/Users/lukas/jiminny/app/app/Services/Crm/DecorateActivity
/Users/lukas/jiminny/app/app/Component/Activity/Event
/Users/lukas/jiminny/app/app/Component/Sidekick
/Users/lukas/jiminny/app/app/Listeners/Activities/Conferences
/Users/lukas/jiminny/app/app/Listeners/Activities/Bots
/Users/lukas/jiminny/app/app/Services/RecallAI/Webhooks/Handlers
/Users/lukas/jiminny/app/app/Events/Activities/Bots
/Users/lukas/jiminny/app/app/Component/MeetingBot
/Users/lukas/jiminny/app/app/Services/Activity/RingCentral
/Users/lukas/jiminny/app/app/Http/Controllers/Webhook/Hubspot
/Users/lukas/jiminny/app/app/Services/Activity/Gmail
/Users/lukas/jiminny/app/app/Services/Crm/CrmObjects/ServiceTraits
/Users/lukas/jiminny/app/app/Jobs/Mailbox
/Users/lukas/jiminny/app/app/Console
/Users/lukas/jiminny/app/front-end/src/composables
/Users/lukas/jiminny/app/app/Console/Commands/Calendars
/Users/lukas/jiminny/app/app/Http/Controllers/API
/Users/lukas/jiminny/app/app/Http/Controllers/Internal/WebhookReceiver
/Users/lukas/jiminny/app/app/Services/Crm/IntegrationApp/ServiceTraits
/Users/lukas/jiminny/app/app/Component/Queue
/Users/lukas/jiminny/app/app/Console/Commands/Crm/Hubspot
/Users/lukas/jiminny/app/app/Component/Transcription/Job
/Users/lukas/jiminny/app/tests/Unit/Services/Listeners
/Users/lukas/jiminny/app/app/Services/Crm/Listeners
/Users/lukas/jiminny/app/app/Traits
/Users/lukas/jiminny/app/tests/Unit/Jobs/Crm/Hubspot
/Users/lukas/jiminny/app/tests/Unit/Services/Crm
/Users/lukas/jiminny/app/app/Services/Activity
/Users/lukas/jiminny/app/app/Services/Calendar/Command
/Users/lukas/jiminny/app/.idea/queries
/Users/lukas/jiminny/app/vendor/hubspot/api-client/codegen/Crm
/Users/lukas/jiminny/app/vendor/hubspot
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Fields
/Users/lukas/jiminny/app/app/Services/Crm/Copper
/Users/lukas/jiminny/app/app/Services/Crm/Bullhorn
/Users/lukas/jiminny/app/app/Notifications/Channels
/Users/lukas/jiminny/app/tests/Unit
/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Hubspot/Journal
/Users/lukas/jiminny/app/app/Interactions/Settings/Teams
/Users/lukas/jiminny/app/app/Exceptions/Crm
/Users/lukas/jiminny/app/vendor/hubspot/hubspot-php/src/Endpoints
/Users/lukas/jiminny/app/config
/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Hubspot/OpportunitySyncStrategy
/Users/lukas/jiminny/app/vendor/laravel/framework/src/Illuminate/Redis/Connections
/Users/lukas/jiminny/app/app/Http/Controllers/Settings/Teams
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Webhook/Traits
/Users/lukas/jiminny/app/vendor/laravel/framework/src/Illuminate/Broadcasting
/Users/lukas/jiminny/app/app/Component/FeatureFlags
/Users/lukas/jiminny/app/app/Component/Activity
/Users/lukas/jiminny/app/app/Component/ActivitySearch
/Users/lukas/jiminny/app/tests/Unit/Events/Activities/Crm
/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Hubspot/Pagination
/Users/lukas/jiminny/app/app/Console/Commands/Dev
/Users/lukas/jiminny/app/front-end
/Users/lukas/jiminny/app/app/Component/Prophet
/Users/lukas/jiminny/app/tests/Unit/Services/Crm/IntegrationApp
/Users/lukas/jiminny/app/app/Component/AskAnything
/Users/lukas/jiminny/app/app/Component/AskJiminnyAi/OnDemandLevel/Events
/Users/lukas/jiminny/app/app/Component/AskAnything/Events
/Users/lukas/jiminny/app/app/Component/AskJiminnyAi/DealLevel/Traits
/Users/lukas/jiminny/app/app/Component/ProphetAi
/Users/lukas/Library/Application Support/JetBrains/PhpStorm2026.1/consoles/db/d1e2c340-64e9-49c6-aa9a-196201874532
/Users/lukas/jiminny/app/app/Http/Controllers/API/Page
/Users/lukas/jiminny/app/front-end/src/components/ondemand/ActivityList
/Users/lukas/Library/Application Support/JetBrains/PhpStorm2026.1/consoles/db/5b1549d5-9876-4d9e-9ce3-025f12a83283
/Users/lukas/jiminny/app/app/Contracts/Repositories
/Users/lukas/jiminny/app/app/Http/Controllers/Kiosk
/Users/lukas/jiminny/app/app/Component/AiAutomation/Actions
/Users/lukas/jiminny/app/app/Services/Activity/HubSpot
/Users/lukas/jiminny/app/app/Services/Crm/Pipedrive
/Users/lukas/jiminny/app/app/Jobs/Activity/Import
/Users/lukas/jiminny/app/app/Events/Import
/Users/lukas/jiminny/app/app/Events/Activities/Dialers
/Users/lukas/jiminny/app/tests
/Users/lukas/jiminny/app/app/Events/Activities
/Users/lukas/jiminny/app/tests/Unit/Jobs/Activity/PushSummaryToCrm
/Users/lukas/jiminny/app/app/Console/Commands/Analytics
/Users/lukas/jiminny/app/tests/Unit/Services/Kiosk/AutomatedReports
/Users/lukas/jiminny/app/app/Http/Middleware
/Users/lukas/jiminny/app/app/Http/Controllers/Auth
/Users/lukas/jiminny/app/tests/Unit/Jobs/Crm
/Users/lukas/jiminny/app/app/Services/Crm/IntegrationApp/Api
/Users/lukas/jiminny/app/app/Services/Crm/IntegrationApp/Accessors
/Users/lukas/jiminny/app/app/Services/Crm/Close
/Users/lukas/jiminny/app/app/Services
/Users/lukas/jiminny/app/app/Http/Transformers
/Users/lukas/jiminny/app/tests/Unit/Services/Crm/Pipedrive
/Users/lukas/jiminny/app/app/Listeners/Activities/Crm/Summary
/Users/lukas/jiminny/app/app/Services/Activity/AmazonConnect
/Users/lukas/jiminny/app/app/Models/Participant
/Users/lukas/jiminny/app/app/Events/Activities/Connections
/Users/lukas/jiminny/app/app/Listeners/Activities/Crm
/Users/lukas/jiminny/app/app/Services/Calendar
/Users/lukas/jiminny/app/app/Jobs/DealRisks...
|
5882
|
NULL
|
NULL
|
NULL
|
|
20348
|
879
|
17
|
2026-05-11T15:18:46.626246+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778512726626_m2.jpg...
|
Firefox
|
JY-20725 add HS rate limit handling on activities JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app — Work...
|
True
|
github.com/jiminny/app/pull/12066
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
New Tab
New Tab
Jy 20820 es reindex stream model h New Tab
New Tab
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST [URL_WITH_CREDENTIALS]
Show options
LakyLak commented 2 hours ago
LakyLak
LakyLak
commented
2 hours ago
2 hours ago
JIRA: JY-20725
JIRA:
JY-20725
JY-20725
Changes:
Changes:
Adds
HandleHubspotRateLimit
middleware (release jobs with delay)
Adds
executeRequest
wrapper in Hubspot Client. It handles 429 errors and throws
RateLimitException
Add or remove reactions
LakyLak
LakyLak
added
2
commits
2 hours ago
2 hours ago
@LakyLak
JY-20725
JY-20725
add HS rate limit handling on activities rematching
add HS rate limit handling on activities rematching
8 / 10 checks OK
44d5678
44d5678
@LakyLak
JY-20725
JY-20725
add tests
add tests
11 / 12 checks OK
cbed2c9
cbed2c9
@sonarqubecloud
Show options
sonarqubecloud Bot commented 1 hour ago
sonarqubecloud
sonarqubecloud
Bot
commented
1 hour ago
1 hour ago
Quality Gate Failed Quality Gate failed
Quality Gate Failed
Quality Gate failed
Failed conditions
34.4% Coverage on New Code
34.4% Coverage on New Code
(required ≥ 70%)
See analysis details on SonarQube Cloud
See analysis details on SonarQube Cloud
Add or remove reactions
@LakyLak
Show options
Author
LakyLak commented 1 hour ago
LakyLak
LakyLak
commented
1 hour ago
1 hour ago
@claude
@claude
Add or remove reactions
react with eyes
👀
1
@claude
Show options
claude Bot commented 1 hour ago •
claude
claude
Bot
commented
1 hour ago
1 hour ago
•
edited
edited
Claude finished
@LakyLak
@LakyLak
's task in 1m 42s
——
View job
View job
Code Review
Code Review
Completed task
Gathering context
Completed task
Reading changed files
Completed task
Analyzing code quality
Completed task
Posting review feedback
Overall this is a well-thought-out implementation. The circuit-breaker pattern using Redis NX, the jitter for thundering-herd prevention, and the log-sampling strategy are all solid. A few issues worth addressing before merge:
Issues
Issues
1. Batch API calls bypass rate-limit handling
batchReadObjects()
in
Client.php
(lines 296–319) calls the HubSpot batch APIs directly without going through
executeRequest()
. If the batch endpoints return 429s, those exceptions will not set the Redis circuit-breaker and will not be wrapped in
RateLimitException
, so the middleware won't catch them.
// batchReadObjects — no executeRequest() wrapping
$
response
=
$
batchConfig
[
'
api
'
]->
read
(
$
batchReadRequest
);
Copy
Given the search endpoints can also hit rate limits during pagination-heavy rematching, the batch calls could too. Consider wrapping the batch call similarly, or at least catching 429 from batch APIs and converting them to...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"New Tab","depth":4,"bounds":{"left":0.0,"top":0.0518755,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"New Tab","depth":5,"bounds":{"left":0.013297873,"top":0.06304868,"width":0.014960106,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.08459697,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.09577015,"width":0.16888298,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira","depth":4,"bounds":{"left":0.0,"top":0.11731844,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.12849163,"width":0.16140293,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"bounds":{"left":0.0,"top":0.15003991,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"bounds":{"left":0.013297873,"top":0.16121309,"width":0.4644282,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.18276137,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.19393456,"width":0.18816489,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.06732048,"top":0.18994413,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.21548285,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pipelines - jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.22665602,"width":0.039228722,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.0028257978,"top":0.24980047,"width":0.07413564,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.0028257978,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.013796543,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.024933511,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.036070477,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.04720745,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to content","depth":6,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Homepage (g then d)","depth":9,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"jiminny","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"jiminny","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"app","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"app","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"on_screen":false,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Create new...","depth":9,"on_screen":false,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"All issues(g then i)","depth":9,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"All pull requests","depth":9,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"All repositories","depth":9,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"You have unread notifications(g then n)","depth":9,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open user navigation menu","depth":9,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (34)","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"34","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Wiki","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Wiki","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality (4)","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Settings","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Settings","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.","depth":10,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"JY-20725 add HS rate limit handling on activities rematching #12066 Edit title","depth":13,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JY-20725 add HS rate limit handling on activities rematching","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"12066","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Edit title","depth":14,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Awaiting approval","depth":13,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Awaiting approval","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":13,"on_screen":false,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Code","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Open","depth":13,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LakyLak","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LakyLak","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"wants to merge 3 commits into","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"master","depth":15,"on_screen":false,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"master","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"from","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"JY-20725-handle-HS-search-rate-limit","depth":16,"on_screen":false,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy head branch name to clipboard","depth":16,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Lines changed: 757 additions & 249 deletions","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Conversation (3)","depth":16,"on_screen":false,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Conversation","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Commits (3)","depth":16,"on_screen":false,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Commits","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Checks (2)","depth":16,"on_screen":false,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Checks","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Files changed (12)","depth":16,"on_screen":false,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Files changed","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"12","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Open","depth":14,"bounds":{"left":0.1008976,"top":0.0726257,"width":0.011968086,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"JY-20725 add HS rate limit handling on activities rematching #12066 LakyLak wants to merge 3 commits into master from JY-20725-handle-HS-search-rate-limit Copy head branch name to clipboard","depth":14,"bounds":{"left":0.11951463,"top":0.058260176,"width":0.21060506,"height":0.042298485},"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"JY-20725 add HS rate limit handling on activities rematching","depth":16,"bounds":{"left":0.11951463,"top":0.05865922,"width":0.13663563,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725 add HS rate limit handling on activities rematching","depth":17,"bounds":{"left":0.11951463,"top":0.06304868,"width":0.13663563,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"bounds":{"left":0.25880983,"top":0.06304868,"width":0.0028257978,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"12066","depth":16,"bounds":{"left":0.26163563,"top":0.06304868,"width":0.013630319,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LakyLak","depth":18,"bounds":{"left":0.11951463,"top":0.08339984,"width":0.016289894,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LakyLak","depth":19,"bounds":{"left":0.11951463,"top":0.08339984,"width":0.016289894,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"wants to merge 3 commits into","depth":18,"bounds":{"left":0.13713431,"top":0.08339984,"width":0.058011968,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"master","depth":18,"bounds":{"left":0.19647606,"top":0.08180367,"width":0.018284574,"height":0.015163607},"on_screen":true,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"master","depth":19,"bounds":{"left":0.19847074,"top":0.083798885,"width":0.014295213,"height":0.011572227},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"from","depth":19,"bounds":{"left":0.21609043,"top":0.08339984,"width":0.00880984,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"JY-20725-handle-HS-search-rate-limit","depth":19,"bounds":{"left":0.22623006,"top":0.08180367,"width":0.090259306,"height":0.015163607},"on_screen":true,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit","depth":20,"bounds":{"left":0.22822474,"top":0.083798885,"width":0.086269945,"height":0.011572227},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy head branch name to clipboard","depth":19,"bounds":{"left":0.31781915,"top":0.07821229,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Conversation","depth":12,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Conversation","depth":13,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@LakyLak","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Show options","depth":15,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"LakyLak commented 2 hours ago","depth":14,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"LakyLak","depth":16,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LakyLak","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"commented","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"2 hours ago","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"2 hours ago","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"JIRA: JY-20725","depth":16,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JIRA:","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"JY-20725","depth":17,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Changes:","depth":16,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Changes:","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Adds","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"HandleHubspotRateLimit","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"middleware (release jobs with delay)","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Adds","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"executeRequest","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"wrapper in Hubspot Client. It handles 429 errors and throws","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"RateLimitException","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add or remove reactions","depth":16,"on_screen":false,"help_text":"","role_description":"summary","subrole":"AXSummary","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"LakyLak","depth":14,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LakyLak","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"added","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"commits","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"2 hours ago","depth":14,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"2 hours ago","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@LakyLak","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"JY-20725","depth":14,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"add HS rate limit handling on activities rematching","depth":14,"on_screen":false,"help_text":"JY-20725 add HS rate limit handling on activities rematching","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"add HS rate limit handling on activities rematching","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"8 / 10 checks OK","depth":14,"on_screen":false,"help_text":"","role_description":"summary","subrole":"AXSummary","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"44d5678","depth":14,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"44d5678","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@LakyLak","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"JY-20725","depth":14,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"add tests","depth":14,"on_screen":false,"help_text":"JY-20725 add tests","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"add tests","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"11 / 12 checks OK","depth":14,"on_screen":false,"help_text":"","role_description":"summary","subrole":"AXSummary","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"cbed2c9","depth":14,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"cbed2c9","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@sonarqubecloud","depth":13,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Show options","depth":14,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"sonarqubecloud Bot commented 1 hour ago","depth":13,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"sonarqubecloud","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sonarqubecloud","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Bot","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"commented","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"1 hour ago","depth":14,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1 hour ago","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Quality Gate Failed Quality Gate failed","depth":16,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Quality Gate Failed","depth":17,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Quality Gate failed","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Failed conditions","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"34.4% Coverage on New Code","depth":17,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"34.4% Coverage on New Code","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(required ≥ 70%)","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"See analysis details on SonarQube Cloud","depth":17,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"See analysis details on SonarQube Cloud","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add or remove reactions","depth":15,"on_screen":false,"help_text":"","role_description":"summary","subrole":"AXSummary","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"@LakyLak","depth":13,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Show options","depth":14,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Author","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"LakyLak commented 1 hour ago","depth":13,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"LakyLak","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LakyLak","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"commented","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"1 hour ago","depth":14,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1 hour ago","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@claude","depth":17,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"@claude","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add or remove reactions","depth":15,"on_screen":false,"help_text":"","role_description":"summary","subrole":"AXSummary","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"react with eyes","depth":14,"on_screen":false,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"👀","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@claude","depth":13,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Show options","depth":14,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"claude Bot commented 1 hour ago •","depth":13,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"claude","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Bot","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"commented","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"1 hour ago","depth":14,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1 hour ago","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"edited","depth":16,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"edited","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude finished","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@LakyLak","depth":18,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"@LakyLak","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'s task in 1m 42s","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"——","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"View job","depth":17,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"View job","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Code Review","depth":16,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Code Review","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Completed task","depth":18,"on_screen":false,"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Gathering context","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Completed task","depth":18,"on_screen":false,"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Reading changed files","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Completed task","depth":18,"on_screen":false,"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Analyzing code quality","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Completed task","depth":18,"on_screen":false,"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Posting review feedback","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Overall this is a well-thought-out implementation. The circuit-breaker pattern using Redis NX, the jitter for thundering-herd prevention, and the log-sampling strategy are all solid. A few issues worth addressing before merge:","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Issues","depth":16,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Issues","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1. Batch API calls bypass rate-limit handling","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"batchReadObjects()","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"in","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Client.php","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(lines 296–319) calls the HubSpot batch APIs directly without going through","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"executeRequest()","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":". If the batch endpoints return 429s, those exceptions will not set the Redis circuit-breaker and will not be wrapped in","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"RateLimitException","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", so the middleware won't catch them.","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"// batchReadObjects — no executeRequest() wrapping","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"response","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"=","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"batchConfig","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"[","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"api","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"]->","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"read","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"batchReadRequest","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":");","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":17,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Given the search endpoints can also hit rate limits during pagination-heavy rematching, the batch calls could too. Consider wrapping the batch call similarly, or at least catching 429 from batch APIs and converting them to","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-6927789795695026292
|
7360720109704098180
|
click
|
accessibility
|
NULL
|
New Tab
New Tab
Jy 20820 es reindex stream model h New Tab
New Tab
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST [URL_WITH_CREDENTIALS]
Show options
LakyLak commented 2 hours ago
LakyLak
LakyLak
commented
2 hours ago
2 hours ago
JIRA: JY-20725
JIRA:
JY-20725
JY-20725
Changes:
Changes:
Adds
HandleHubspotRateLimit
middleware (release jobs with delay)
Adds
executeRequest
wrapper in Hubspot Client. It handles 429 errors and throws
RateLimitException
Add or remove reactions
LakyLak
LakyLak
added
2
commits
2 hours ago
2 hours ago
@LakyLak
JY-20725
JY-20725
add HS rate limit handling on activities rematching
add HS rate limit handling on activities rematching
8 / 10 checks OK
44d5678
44d5678
@LakyLak
JY-20725
JY-20725
add tests
add tests
11 / 12 checks OK
cbed2c9
cbed2c9
@sonarqubecloud
Show options
sonarqubecloud Bot commented 1 hour ago
sonarqubecloud
sonarqubecloud
Bot
commented
1 hour ago
1 hour ago
Quality Gate Failed Quality Gate failed
Quality Gate Failed
Quality Gate failed
Failed conditions
34.4% Coverage on New Code
34.4% Coverage on New Code
(required ≥ 70%)
See analysis details on SonarQube Cloud
See analysis details on SonarQube Cloud
Add or remove reactions
@LakyLak
Show options
Author
LakyLak commented 1 hour ago
LakyLak
LakyLak
commented
1 hour ago
1 hour ago
@claude
@claude
Add or remove reactions
react with eyes
👀
1
@claude
Show options
claude Bot commented 1 hour ago •
claude
claude
Bot
commented
1 hour ago
1 hour ago
•
edited
edited
Claude finished
@LakyLak
@LakyLak
's task in 1m 42s
——
View job
View job
Code Review
Code Review
Completed task
Gathering context
Completed task
Reading changed files
Completed task
Analyzing code quality
Completed task
Posting review feedback
Overall this is a well-thought-out implementation. The circuit-breaker pattern using Redis NX, the jitter for thundering-herd prevention, and the log-sampling strategy are all solid. A few issues worth addressing before merge:
Issues
Issues
1. Batch API calls bypass rate-limit handling
batchReadObjects()
in
Client.php
(lines 296–319) calls the HubSpot batch APIs directly without going through
executeRequest()
. If the batch endpoints return 429s, those exceptions will not set the Redis circuit-breaker and will not be wrapped in
RateLimitException
, so the middleware won't catch them.
// batchReadObjects — no executeRequest() wrapping
$
response
=
$
batchConfig
[
'
api
'
]->
read
(
$
batchReadRequest
);
Copy
Given the search endpoints can also hit rate limits during pagination-heavy rematching, the batch calls could too. Consider wrapping the batch call similarly, or at least catching 429 from batch APIs and converting them to...
|
20346
|
NULL
|
NULL
|
NULL
|
|
17177
|
766
|
26
|
2026-05-11T10:09:55.951476+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778494195951_m1.jpg...
|
PhpStorm
|
faVsco.js – custom.log
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2• •ShellEditViewSessionScriptsProfilesWindow iTerm2• •ShellEditViewSessionScriptsProfilesWindowHelplanl• Support Daily • in 1h 51 mDEV (docker)DOCKERDEV (docker)H82APP (-zsh)-zsh84-zsh100% <78• Mon 11 May 13:09:55181ffmpeg#6configcachecompiledeventsroutesviewsworker-crm-update:worker-crm-update_00: stoppedjiminny-worker-processing-2:jiminny-worker-processing-2_00:stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00:stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedworker-download:worker-download_00: stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00: stoppedworker-emails:worker-emails_00: stoppedworker-es-update:worker-es-update_00: stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00:startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00: startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00:startedworker-download:worker-download_00:startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00: startedworker-nudges:worker-nudges_00:startedroot@docker_lamp_1:/home/jiminny# l8856.34ms DONE11.98ms DONE2.10ms DONE5.31ms DONE2.90ms DONE13.11ms DONEDEV...
|
NULL
|
-6926520367261221051
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2• •ShellEditViewSessionScriptsProfilesWindow iTerm2• •ShellEditViewSessionScriptsProfilesWindowHelplanl• Support Daily • in 1h 51 mDEV (docker)DOCKERDEV (docker)H82APP (-zsh)-zsh84-zsh100% <78• Mon 11 May 13:09:55181ffmpeg#6configcachecompiledeventsroutesviewsworker-crm-update:worker-crm-update_00: stoppedjiminny-worker-processing-2:jiminny-worker-processing-2_00:stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00:stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedworker-download:worker-download_00: stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00: stoppedworker-emails:worker-emails_00: stoppedworker-es-update:worker-es-update_00: stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00:startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00: startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00:startedworker-download:worker-download_00:startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00: startedworker-nudges:worker-nudges_00:startedroot@docker_lamp_1:/home/jiminny# l8856.34ms DONE11.98ms DONE2.10ms DONE5.31ms DONE2.90ms DONE13.11ms DONEDEV...
|
17175
|
NULL
|
NULL
|
NULL
|
|
24831
|
1040
|
8
|
2026-05-12T10:04:24.406330+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-12/1778 /Users/lukas/.screenpipe/data/data/2026-05-12/1778580264406_m1.jpg...
|
Firefox
|
Platform Team - Backlog - Jira — Work
|
True
|
jiminny.atlassian.net/jira/software/c/projects/JY/ jiminny.atlassian.net/jira/software/c/projects/JY/boards/37/backlog...
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Unnamed Group
TypeError: League\Flysystem\Filesyst Unnamed Group
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
CloudWatch | us-east-2
CloudWatch | us-east-2
Unnamed Group
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
Pipelines - jiminny/app
Pipelines - jiminny/app
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20773] User Pilot not receiving events on report generated - Jira
[JY-20773] User Pilot not receiving events on report generated - Jira
JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app
JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app
[JY-20776] Automated report - sentry - Jira
[JY-20776] Automated report - sentry - Jira
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app
JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app
Data Explorer
Data Explorer
[JY-20776] Automated report - sentry - Jira
[JY-20776] Automated report - sentry - Jira
Jiminny
Jiminny
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
Platform Team - Backlog - Jira
Platform Team - Backlog - Jira
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to:
Main Content
Main Content
Top Bar
Top Bar
Sidebar
Sidebar
Space navigation
Space navigation
Collapse sidebar [
Collapse sidebar [
Switch sites or apps
Switch sites or apps
Go to your Jira homepage
Search, press enter to navigate to advanced search with your text query
Create
Create
Rovo Ask Rovo
Ask Rovo
Notifications
Notifications
Help
Help
Settings
Settings
[EMAIL]
[EMAIL]
For you
For you
Recent
Recent
Starred
Starred
Apps
Apps
More actions for Apps
More actions for Apps
Spaces
Spaces
Create space
Create space
More actions for spaces
More actions for spaces
Recent
Jiminny (New)
Jiminny (New)
Jiminny (New)
Create board
Create board
More actions for Jiminny (New)
More actions for Jiminny (New)
Platform Team...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Unnamed Group","depth":4,"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"TypeError: League\\Flysystem\\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"TypeError: League\\Flysystem\\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Unnamed Group","depth":4,"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pipelines - jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20773] User Pilot not receiving events on report generated - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20773] User Pilot not receiving events on report generated - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20776] Automated report - sentry - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20776] Automated report - sentry - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Data Explorer","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Data Explorer","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20776] Automated report - sentry - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20776] Automated report - sentry - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Platform Team - Backlog - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Platform Team - Backlog - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"New Tab","depth":4,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to:","depth":9,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Main Content","depth":10,"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Main Content","depth":11,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Top Bar","depth":10,"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Top Bar","depth":11,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Sidebar","depth":10,"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Sidebar","depth":11,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Space navigation","depth":10,"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Space navigation","depth":11,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Collapse sidebar [","depth":9,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Collapse sidebar [","depth":11,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Switch sites or apps","depth":10,"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Switch sites or apps","depth":12,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Go to your Jira homepage","depth":9,"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXComboBox","text":"Search, press enter to navigate to advanced search with your text query","depth":11,"on_screen":true,"help_text":"","placeholder":"Search","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Create","depth":10,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Create","depth":12,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Rovo Ask Rovo","depth":12,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Ask Rovo","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Notifications","depth":12,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Notifications","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Help","depth":12,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Help","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Settings","depth":12,"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Settings","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"lukas.kovalik@jiminny.com","depth":12,"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"lukas.kovalik@jiminny.com","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"For you","depth":12,"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"For you","depth":15,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Recent","depth":12,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Recent","depth":15,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Starred","depth":12,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Starred","depth":15,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Apps","depth":12,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Apps","depth":15,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Apps","depth":13,"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Apps","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Spaces","depth":12,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"Spaces","depth":15,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Create space","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Create space","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for spaces","depth":13,"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for spaces","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Recent","depth":16,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Jiminny (New)","depth":17,"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny (New)","depth":20,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Jiminny (New)","depth":18,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXMenuButton","text":"Create board","depth":18,"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Create board","depth":20,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Jiminny (New)","depth":18,"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Jiminny (New)","depth":20,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Platform Team","depth":19,"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
-6925168514092157373
|
-3309633199302414176
|
idle
|
accessibility
|
NULL
|
Unnamed Group
TypeError: League\Flysystem\Filesyst Unnamed Group
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
CloudWatch | us-east-2
CloudWatch | us-east-2
Unnamed Group
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
Pipelines - jiminny/app
Pipelines - jiminny/app
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20773] User Pilot not receiving events on report generated - Jira
[JY-20773] User Pilot not receiving events on report generated - Jira
JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app
JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app
[JY-20776] Automated report - sentry - Jira
[JY-20776] Automated report - sentry - Jira
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app
JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app
Data Explorer
Data Explorer
[JY-20776] Automated report - sentry - Jira
[JY-20776] Automated report - sentry - Jira
Jiminny
Jiminny
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
Platform Team - Backlog - Jira
Platform Team - Backlog - Jira
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to:
Main Content
Main Content
Top Bar
Top Bar
Sidebar
Sidebar
Space navigation
Space navigation
Collapse sidebar [
Collapse sidebar [
Switch sites or apps
Switch sites or apps
Go to your Jira homepage
Search, press enter to navigate to advanced search with your text query
Create
Create
Rovo Ask Rovo
Ask Rovo
Notifications
Notifications
Help
Help
Settings
Settings
[EMAIL]
[EMAIL]
For you
For you
Recent
Recent
Starred
Starred
Apps
Apps
More actions for Apps
More actions for Apps
Spaces
Spaces
Create space
Create space
More actions for spaces
More actions for spaces
Recent
Jiminny (New)
Jiminny (New)
Jiminny (New)
Create board
Create board
More actions for Jiminny (New)
More actions for Jiminny (New)
Platform Team...
|
24825
|
NULL
|
NULL
|
NULL
|
|
25126
|
1055
|
5
|
2026-05-12T10:43:31.831342+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-12/1778 /Users/lukas/.screenpipe/data/data/2026-05-12/1778582611831_m2.jpg...
|
Firefox
|
JY-20773 fix user pilot tracking ofr automated rep JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app — Work...
|
True
|
github.com/jiminny/app/pull/12024
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Unnamed Group
TypeError: League\Flysystem\Filesyst Unnamed Group
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
CloudWatch | us-east-2
CloudWatch | us-east-2
Unnamed Group
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
Pipelines - jiminny/app
Pipelines - jiminny/app
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20773] User Pilot not receiving events on report generated - Jira
[JY-20773] User Pilot not receiving events on report generated - Jira
JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app
JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app
[JY-20776] Automated report - sentry - Jira
[JY-20776] Automated report - sentry - Jira
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app
JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app
Data Explorer
Data Explorer
[JY-20776] Automated report - sentry - Jira
[JY-20776] Automated report - sentry - Jira
Jiminny
Jiminny
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
Platform Team - Backlog - Jira
Platform Team - Backlog - Jira
[JY-20773] User Pilot not receiving events on report generated - Jira
[JY-20773] User Pilot not receiving events on report generated - Jira
JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app
JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app
Close tab
Pipelines - jiminny/app
Pipelines - jiminny/app
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (32)
Pull requests
(
32
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality (4)
Security and quality
(
4
)
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20773 fix user pilot tracking for automated report generated #12024 Edit title
JY-20773 fix user pilot tracking for automated report generated
#
12024
Edit title
Ready to merge
Ready to merge
Code
Code
Open
LakyLak
LakyLak
wants to merge 2 commits into
master
master
from
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20773-fix-automated-reports-user-pilot-tracking
Copy head branch name to clipboard
Lines changed: 3 additions & 0 deletions
Conversation (1)
Conversation
(
1
)
Commits (2)
Commits
(
2
)
Checks (3)
Checks
(
3
)
Files changed (1)
Files changed
(
1
)
Conversation
Conversation
@LakyLak
Show options
LakyLak commented 2 weeks ago...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Unnamed Group","depth":4,"bounds":{"left":0.0028257978,"top":0.057063047,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"TypeError: League\\Flysystem\\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app","depth":4,"bounds":{"left":0.0028257978,"top":0.08060654,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"TypeError: League\\Flysystem\\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app","depth":5,"bounds":{"left":0.015957447,"top":0.09217877,"width":0.40492022,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"bounds":{"left":0.0028257978,"top":0.11332801,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"bounds":{"left":0.015957447,"top":0.12490024,"width":0.04138963,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Unnamed Group","depth":4,"bounds":{"left":0.0028257978,"top":0.15123703,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app","depth":4,"bounds":{"left":0.0028257978,"top":0.17478053,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app","depth":5,"bounds":{"left":0.015957447,"top":0.18635276,"width":0.16888298,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira","depth":4,"bounds":{"left":0.0,"top":0.207502,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.21907422,"width":0.16140293,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.24022347,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.25179568,"width":0.18816489,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.27294493,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pipelines - jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.28451717,"width":0.039228722,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.3056664,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.31723863,"width":0.04537899,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20773] User Pilot not receiving events on report generated - Jira","depth":4,"bounds":{"left":0.0,"top":0.33838788,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20773] User Pilot not receiving events on report generated - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.3499601,"width":0.1200133,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.37110934,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.38268158,"width":0.1931516,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20776] Automated report - sentry - Jira","depth":4,"bounds":{"left":0.0,"top":0.4038308,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20776] Automated report - sentry - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.41540304,"width":0.07646277,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.0,"top":0.4365523,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.4481245,"width":0.10106383,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.46927375,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.48084596,"width":0.15159574,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Data Explorer","depth":4,"bounds":{"left":0.0,"top":0.5019952,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Data Explorer","depth":5,"bounds":{"left":0.013297873,"top":0.51356745,"width":0.0234375,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20776] Automated report - sentry - Jira","depth":4,"bounds":{"left":0.0,"top":0.53471667,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20776] Automated report - sentry - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.5462889,"width":0.07646277,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.5674381,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.013297873,"top":0.57901037,"width":0.013131649,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.60015965,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.6117318,"width":0.18816489,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":4,"bounds":{"left":0.0,"top":0.6328811,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.6444533,"width":0.09524601,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Platform Team - Backlog - Jira","depth":4,"bounds":{"left":0.0,"top":0.66560256,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Team - Backlog - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.6771748,"width":0.053025264,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20773] User Pilot not receiving events on report generated - Jira","depth":4,"bounds":{"left":0.0,"top":0.698324,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20773] User Pilot not receiving events on report generated - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.70989627,"width":0.1200133,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.7310455,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.7426177,"width":0.19331782,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.06732048,"top":0.73822826,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.76376694,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pipelines - jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.7753392,"width":0.039228722,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.0028257978,"top":0.7980846,"width":0.07413564,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.0028257978,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.013796543,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.024933511,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.036070477,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.04720745,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to content","depth":6,"bounds":{"left":0.07962101,"top":0.044692736,"width":0.0003324468,"height":0.0007980846},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"bounds":{"left":0.07962101,"top":0.046288908,"width":0.0029920214,"height":0.21468475},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"bounds":{"left":0.08494016,"top":0.057462092,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Homepage (g then d)","depth":9,"bounds":{"left":0.099567816,"top":0.057462092,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"jiminny","depth":12,"bounds":{"left":0.112865694,"top":0.057462092,"width":0.018949468,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"jiminny","depth":14,"bounds":{"left":0.11486037,"top":0.06344773,"width":0.014960106,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"app","depth":12,"bounds":{"left":0.13680187,"top":0.057462092,"width":0.017785905,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"app","depth":14,"bounds":{"left":0.13879654,"top":0.06344773,"width":0.008477394,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"bounds":{"left":0.81698805,"top":0.057462092,"width":0.06565824,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"bounds":{"left":0.82928854,"top":0.06344773,"width":0.011801862,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"bounds":{"left":0.8424202,"top":0.0650439,"width":0.002493351,"height":0.011572227},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"bounds":{"left":0.84640956,"top":0.06344773,"width":0.021276595,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"bounds":{"left":0.88464093,"top":0.057462092,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"bounds":{"left":0.8949468,"top":0.057462092,"width":0.008643617,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Create new...","depth":9,"bounds":{"left":0.9115692,"top":0.057462092,"width":0.01662234,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"All issues(g then i)","depth":9,"bounds":{"left":0.93085104,"top":0.057462092,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"All pull requests","depth":9,"bounds":{"left":0.94414896,"top":0.057462092,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"All repositories","depth":9,"bounds":{"left":0.9574468,"top":0.057462092,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"You have unread notifications(g then n)","depth":9,"bounds":{"left":0.97074467,"top":0.057462092,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open user navigation menu","depth":9,"bounds":{"left":0.9840425,"top":0.057462092,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"bounds":{"left":0.079288565,"top":0.043894652,"width":0.0003324468,"height":0.0007980846},"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"bounds":{"left":0.079288565,"top":0.04668795,"width":0.0787899,"height":0.023144454},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"bounds":{"left":0.08494016,"top":0.09217877,"width":0.025099734,"height":0.026336791},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"bounds":{"left":0.095744684,"top":0.09856345,"width":0.011469414,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (32)","depth":12,"bounds":{"left":0.11269947,"top":0.09217877,"width":0.05501995,"height":0.026336791},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"bounds":{"left":0.12333777,"top":0.09856345,"width":0.02925532,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"bounds":{"left":0.15525267,"top":0.10654429,"width":0.0029920214,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"32","depth":14,"bounds":{"left":0.15824468,"top":0.10654429,"width":0.0056515955,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"bounds":{"left":0.16389628,"top":0.10654429,"width":0.0016622341,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"bounds":{"left":0.17037898,"top":0.09217877,"width":0.029089095,"height":0.026336791},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"bounds":{"left":0.18134974,"top":0.09856345,"width":0.01512633,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"bounds":{"left":0.20212767,"top":0.09217877,"width":0.03025266,"height":0.026336791},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"bounds":{"left":0.21326463,"top":0.09856345,"width":0.015957447,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Wiki","depth":12,"bounds":{"left":0.23503989,"top":0.09217877,"width":0.022938829,"height":0.026336791},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Wiki","depth":14,"bounds":{"left":0.24601063,"top":0.09856345,"width":0.009142287,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality (4)","depth":12,"bounds":{"left":0.2606383,"top":0.09217877,"width":0.06815159,"height":0.026336791},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"bounds":{"left":0.27244017,"top":0.09856345,"width":0.04255319,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"bounds":{"left":0.31881648,"top":0.10654429,"width":0.0029920214,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":14,"bounds":{"left":0.32180852,"top":0.10654429,"width":0.0029920214,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"bounds":{"left":0.32480052,"top":0.10654429,"width":0.0016622341,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"bounds":{"left":0.33144948,"top":0.09217877,"width":0.03125,"height":0.026336791},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"bounds":{"left":0.34258643,"top":0.09856345,"width":0.016954787,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Settings","depth":12,"bounds":{"left":0.36535904,"top":0.09217877,"width":0.032081116,"height":0.026336791},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Settings","depth":14,"bounds":{"left":0.37649602,"top":0.09856345,"width":0.017785905,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"bounds":{"left":0.09325133,"top":0.13647246,"width":0.0003324468,"height":0.016759777},"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"bounds":{"left":0.09325133,"top":0.13806863,"width":0.039228722,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.","depth":10,"bounds":{"left":0.09325133,"top":0.13806863,"width":0.2159242,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"bounds":{"left":0.30917552,"top":0.13806863,"width":0.04055851,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"bounds":{"left":0.30917552,"top":0.13806863,"width":0.04055851,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"bounds":{"left":0.34973404,"top":0.13806863,"width":0.08261303,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"bounds":{"left":0.4323471,"top":0.13806863,"width":0.05219415,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"bounds":{"left":0.4323471,"top":0.13806863,"width":0.05219415,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"bounds":{"left":0.48454124,"top":0.13806863,"width":0.0013297872,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"bounds":{"left":0.98636967,"top":0.13168396,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"JY-20773 fix user pilot tracking for automated report generated #12024 Edit title","depth":13,"bounds":{"left":0.33776596,"top":0.18435754,"width":0.31948137,"height":0.06384677},"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JY-20773 fix user pilot tracking for automated report generated","depth":14,"bounds":{"left":0.33776596,"top":0.18515563,"width":0.28656915,"height":0.030327214},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":15,"bounds":{"left":0.34042552,"top":0.21707901,"width":0.006482713,"height":0.030327214},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"12024","depth":15,"bounds":{"left":0.34690824,"top":0.21707901,"width":0.029421542,"height":0.030327214},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Edit title","depth":14,"bounds":{"left":0.3776596,"top":0.21947326,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Ready to merge","depth":13,"bounds":{"left":0.6599069,"top":0.19114126,"width":0.05119681,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Ready to merge","depth":15,"bounds":{"left":0.6722075,"top":0.1971269,"width":0.034574468,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":13,"bounds":{"left":0.7137633,"top":0.19114126,"width":0.02825798,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Code","depth":15,"bounds":{"left":0.7180851,"top":0.1971269,"width":0.011635638,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Open","depth":13,"bounds":{"left":0.34840426,"top":0.2605746,"width":0.011968086,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LakyLak","depth":15,"bounds":{"left":0.36702126,"top":0.25738227,"width":0.018450798,"height":0.016759777},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LakyLak","depth":16,"bounds":{"left":0.36702126,"top":0.25897846,"width":0.018450798,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"wants to merge 2 commits into","depth":15,"bounds":{"left":0.38680187,"top":0.25897846,"width":0.06648936,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"master","depth":15,"bounds":{"left":0.45462102,"top":0.25698325,"width":0.018284574,"height":0.017557861},"on_screen":true,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"master","depth":16,"bounds":{"left":0.4566157,"top":0.2601756,"width":0.014295213,"height":0.011572227},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"from","depth":16,"bounds":{"left":0.4742354,"top":0.25897846,"width":0.009973404,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"JY-20773-fix-automated-reports-user-pilot-tracking","depth":16,"bounds":{"left":0.48553857,"top":0.25698325,"width":0.12400266,"height":0.017557861},"on_screen":true,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20773-fix-automated-reports-user-pilot-tracking","depth":17,"bounds":{"left":0.48753324,"top":0.2601756,"width":0.1200133,"height":0.011572227},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy head branch name to clipboard","depth":16,"bounds":{"left":0.610871,"top":0.254589,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Lines changed: 3 additions & 0 deletions","depth":14,"bounds":{"left":0.72041225,"top":0.31085396,"width":0.019946808,"height":0.11412609},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Conversation (1)","depth":16,"bounds":{"left":0.33776596,"top":0.29289705,"width":0.054022606,"height":0.031923383},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Conversation","depth":17,"bounds":{"left":0.35006648,"top":0.30247405,"width":0.028091755,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"bounds":{"left":0.38746676,"top":0.30247405,"width":0.0029920214,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1","depth":18,"bounds":{"left":0.39045876,"top":0.30247405,"width":0.0021609042,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"bounds":{"left":0.39261967,"top":0.30247405,"width":0.0016622341,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Commits (2)","depth":16,"bounds":{"left":0.39178857,"top":0.29289705,"width":0.045545213,"height":0.031923383},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Commits","depth":17,"bounds":{"left":0.4040891,"top":0.30247405,"width":0.019115692,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"bounds":{"left":0.43301198,"top":0.30247405,"width":0.0029920214,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":18,"bounds":{"left":0.43600398,"top":0.30247405,"width":0.0028257978,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"bounds":{"left":0.43882978,"top":0.30247405,"width":0.0016622341,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Checks (3)","depth":16,"bounds":{"left":0.43733376,"top":0.29289705,"width":0.04255319,"height":0.031923383},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Checks","depth":17,"bounds":{"left":0.4496343,"top":0.30247405,"width":0.015957447,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"bounds":{"left":0.47556517,"top":0.30247405,"width":0.0028257978,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"3","depth":18,"bounds":{"left":0.47839096,"top":0.30247405,"width":0.0029920214,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"bounds":{"left":0.48138297,"top":0.30247405,"width":0.0016622341,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Files changed (1)","depth":16,"bounds":{"left":0.47988698,"top":0.29289705,"width":0.055684842,"height":0.031923383},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Files changed","depth":17,"bounds":{"left":0.4921875,"top":0.30247405,"width":0.029753989,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"bounds":{"left":0.53125,"top":0.30247405,"width":0.0029920214,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1","depth":18,"bounds":{"left":0.53424203,"top":0.30247405,"width":0.0019946808,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"bounds":{"left":0.5362367,"top":0.30247405,"width":0.0018284575,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Conversation","depth":12,"bounds":{"left":0.33776596,"top":0.33838788,"width":0.0003324468,"height":0.0007980846},"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Conversation","depth":13,"bounds":{"left":0.33776596,"top":0.34118116,"width":0.048204787,"height":0.023144454},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@LakyLak","depth":12,"bounds":{"left":0.33776596,"top":0.33838788,"width":0.013297873,"height":0.031923383},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Show options","depth":15,"bounds":{"left":0.61136967,"top":0.33918595,"width":0.007978723,"height":0.02952913},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"LakyLak commented 2 weeks ago","depth":14,"bounds":{"left":0.3620346,"top":0.33918595,"width":0.24135639,"height":0.02952913},"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"}]...
|
-6924872388631008927
|
-2732186120589969280
|
visual_change
|
accessibility
|
NULL
|
Unnamed Group
TypeError: League\Flysystem\Filesyst Unnamed Group
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
CloudWatch | us-east-2
CloudWatch | us-east-2
Unnamed Group
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
Pipelines - jiminny/app
Pipelines - jiminny/app
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20773] User Pilot not receiving events on report generated - Jira
[JY-20773] User Pilot not receiving events on report generated - Jira
JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app
JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app
[JY-20776] Automated report - sentry - Jira
[JY-20776] Automated report - sentry - Jira
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app
JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app
Data Explorer
Data Explorer
[JY-20776] Automated report - sentry - Jira
[JY-20776] Automated report - sentry - Jira
Jiminny
Jiminny
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
Platform Team - Backlog - Jira
Platform Team - Backlog - Jira
[JY-20773] User Pilot not receiving events on report generated - Jira
[JY-20773] User Pilot not receiving events on report generated - Jira
JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app
JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app
Close tab
Pipelines - jiminny/app
Pipelines - jiminny/app
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (32)
Pull requests
(
32
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality (4)
Security and quality
(
4
)
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20773 fix user pilot tracking for automated report generated #12024 Edit title
JY-20773 fix user pilot tracking for automated report generated
#
12024
Edit title
Ready to merge
Ready to merge
Code
Code
Open
LakyLak
LakyLak
wants to merge 2 commits into
master
master
from
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20773-fix-automated-reports-user-pilot-tracking
Copy head branch name to clipboard
Lines changed: 3 additions & 0 deletions
Conversation (1)
Conversation
(
1
)
Commits (2)
Commits
(
2
)
Checks (3)
Checks
(
3
)
Files changed (1)
Files changed
(
1
)
Conversation
Conversation
@LakyLak
Show options
LakyLak commented 2 weeks ago...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
218
|
12
|
6
|
2026-05-07T06:47:06.653897+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778136426653_m2.jpg...
|
Firefox
|
Platform Sprint 3 Q2 - Platform Team - Scrum Board Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira — Work...
|
True
|
jiminny.atlassian.net/jira/software/c/projects/JY/ jiminny.atlassian.net/jira/software/c/projects/JY/boards/37?selectedIssue=JY-20352...
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 3 Q2 - Platform Team - Scrum Board Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
Close tab
Service-Desk - Queues - Platform team - Service space - Jira
Service-Desk - Queues - Platform team - Service space - Jira
Jy 20807 check various issues with stages by nikolaybiaivanov · Pull Request #12041 · jiminny/app
Jy 20807 check various issues with stages by nikolaybiaivanov · Pull Request #12041 · jiminny/app
Sentry
Sentry
Pull requests · jiminny/app
Pull requests · jiminny/app
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to:
Top Bar
Top Bar
Sidebar
Sidebar
Main Content
Main Content
Space navigation
Space navigation
Collapse sidebar [
Collapse sidebar [
Switch sites or apps
Switch sites or apps
Go to your Jira homepage
Search, press enter to navigate to advanced search with your text query
Create
Create
Rovo Ask Rovo
Ask Rovo
Notifications
Notifications
Help
Help
Settings
Settings
[EMAIL]
[EMAIL]
For you
For you
Recent
Recent
Starred
Starred
Apps
Apps
More actions for Apps
More actions for Apps
Spaces
Spaces
Create space
Create space
More actions for spaces
More actions for spaces
Recent
Jiminny (New)
Jiminny (New)
Jiminny (New)
Create board
Create board
More actions for Jiminny (New)
More actions for Jiminny (New)
Platform Team
Platform Team
Board actions
Board actions
Capture Team
Capture Team
Board actions
Board actions
Enterprise Stability Issues 🤕
Enterprise Stability Issues 🤕
Board actions
Board actions
Processing Team
Processing Team
Board actions
Board actions
SE Kanban
SE Kanban
Board actions
Board actions
Service-Desk
Service-Desk
More actions for Service-Desk
More actions for Service-Desk
Queues
Queues
Create
Create
More for queues
More for queues
Service requests
Service requests
Create
Create
More for service requests
More for service requests
Incidents
Incidents
Create
Create
More for incidents
More for incidents
Reports
Reports
More actions for reports
More actions for reports
Operations
Operations
More actions for operations
More actions for operations
Knowledge Base
Knowledge Base
More actions for knowledge base
More actions for knowledge base
Customers
Customers
More actions for customers
More actions for customers
Channels
Channels
Email logs
Email logs
More actions for customer notification logs
More actions for customer notification logs
Developer escalations
Developer escalations
More actions for developer escalations
More actions for developer escalations
Slack integration
Slack integration
More actions for Slack integration
More actions for Slack integration
Reporting Center
Reporting Center
More actions for Reporting Center
More actions for Reporting Center
Add shortcut
Add shortcut
More actions for developer escalations
More actions for developer escalations
Archived work items
Archived work items
More actions for archived work items
More actions for archived work items
More spaces
More spaces
Filters
Filters
More actions for Filters
More actions for Filters
Dashboards
Dashboards
Create dashboard
Create dashboard
More actions for Dashboards
More actions for Dashboards
Operations
Operations
More actions for Operations
More actions for Operations
Confluence , (opens new window)
Confluence
, (opens new window)
Teams , (opens new window)
Teams
, (opens new window)
open menu
open menu
Customise sidebar
Customise sidebar
Resize side navigation panel
Spaces
Spaces
/
Jiminny (New)
Jiminny (New)
Platform Team
Platform Team
Add people
Add people
Board actions
Board actions
Share
Automation
Give feedback
Give feedback
Enter full screen
Enter full screen
Summary
Summary
Timeline
Timeline
Backlog
Backlog
Active sprints
Active sprints
Calendar
Calendar
Reports
Reports
Testing Board
Testing Board
List
List
Forms
Forms...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.22240691,"top":0.0518755,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira","depth":5,"bounds":{"left":0.2357048,"top":0.06304868,"width":0.10106383,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.2897274,"top":0.05905826,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Service-Desk - Queues - Platform team - Service space - Jira","depth":4,"bounds":{"left":0.22240691,"top":0.08459697,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Service-Desk - Queues - Platform team - Service space - Jira","depth":5,"bounds":{"left":0.2357048,"top":0.09577015,"width":0.10721409,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jy 20807 check various issues with stages by nikolaybiaivanov · Pull Request #12041 · jiminny/app","depth":4,"bounds":{"left":0.22240691,"top":0.11731844,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jy 20807 check various issues with stages by nikolaybiaivanov · Pull Request #12041 · jiminny/app","depth":5,"bounds":{"left":0.2357048,"top":0.12849163,"width":0.17037898,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Sentry","depth":4,"bounds":{"left":0.22240691,"top":0.15003991,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Sentry","depth":5,"bounds":{"left":0.2357048,"top":0.16121309,"width":0.011303191,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"bounds":{"left":0.22240691,"top":0.18276137,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"bounds":{"left":0.2357048,"top":0.19393456,"width":0.04537899,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.2252327,"top":0.21707901,"width":0.07413564,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.2252327,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.23620346,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.24734043,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.2584774,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.26961437,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to:","depth":9,"bounds":{"left":0.31266624,"top":0.07861133,"width":0.016954787,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Top Bar","depth":10,"bounds":{"left":0.31266624,"top":0.097765364,"width":0.016954787,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Top Bar","depth":11,"bounds":{"left":0.31266624,"top":0.097765364,"width":0.016954787,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Sidebar","depth":10,"bounds":{"left":0.31266624,"top":0.11691939,"width":0.016954787,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Sidebar","depth":11,"bounds":{"left":0.31266624,"top":0.11691939,"width":0.016954787,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Main Content","depth":10,"bounds":{"left":0.31266624,"top":0.13607343,"width":0.029421542,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Main Content","depth":11,"bounds":{"left":0.31266624,"top":0.13607343,"width":0.029421542,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Space navigation","depth":10,"bounds":{"left":0.31266624,"top":0.15522745,"width":0.037898935,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Space navigation","depth":11,"bounds":{"left":0.31266624,"top":0.15522745,"width":0.037898935,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Collapse sidebar [","depth":9,"bounds":{"left":0.30601728,"top":0.057861134,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Collapse sidebar [","depth":11,"bounds":{"left":0.31117022,"top":0.06344773,"width":0.039727394,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Switch sites or apps","depth":10,"bounds":{"left":0.3179854,"top":0.057861134,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Switch sites or apps","depth":12,"bounds":{"left":0.3231383,"top":0.06344773,"width":0.044215426,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Go to your Jira homepage","depth":9,"bounds":{"left":0.33128324,"top":0.057861134,"width":0.029421542,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXComboBox","text":"Search, press enter to navigate to advanced search with your text query","depth":10,"bounds":{"left":0.5159575,"top":0.06264964,"width":0.24268617,"height":0.015961692},"on_screen":true,"help_text":"","placeholder":"Search","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Create","depth":10,"bounds":{"left":0.7669548,"top":0.057861134,"width":0.030086435,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Create","depth":12,"bounds":{"left":0.77825797,"top":0.06384677,"width":0.014793883,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Rovo Ask Rovo","depth":12,"bounds":{"left":0.91223407,"top":0.057861134,"width":0.035904255,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Ask Rovo","depth":14,"bounds":{"left":0.92353725,"top":0.06384677,"width":0.020611702,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Notifications","depth":12,"bounds":{"left":0.9494681,"top":0.057861134,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Notifications","depth":14,"bounds":{"left":0.954621,"top":0.06344773,"width":0.027759308,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Help","depth":12,"bounds":{"left":0.96143615,"top":0.057861134,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Help","depth":14,"bounds":{"left":0.9665891,"top":0.06344773,"width":0.010139627,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Settings","depth":12,"bounds":{"left":0.9734042,"top":0.057861134,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Settings","depth":14,"bounds":{"left":0.97855717,"top":0.06344773,"width":0.017952127,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"lukas.kovalik@jiminny.com","depth":12,"bounds":{"left":0.98537236,"top":0.057861134,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"lukas.kovalik@jiminny.com","depth":14,"bounds":{"left":0.99052525,"top":0.06344773,"width":0.009474754,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"For you","depth":12,"bounds":{"left":0.30601728,"top":0.09976058,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"For you","depth":15,"bounds":{"left":0.31665558,"top":0.10574621,"width":0.01662234,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Recent","depth":12,"bounds":{"left":0.30601728,"top":0.12529927,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Recent","depth":15,"bounds":{"left":0.31665558,"top":0.13128492,"width":0.015458777,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Starred","depth":12,"bounds":{"left":0.30601728,"top":0.15083799,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Starred","depth":15,"bounds":{"left":0.31665558,"top":0.15682362,"width":0.016456118,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Apps","depth":12,"bounds":{"left":0.30601728,"top":0.1763767,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Apps","depth":15,"bounds":{"left":0.31665558,"top":0.18236233,"width":0.011635638,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Apps","depth":13,"bounds":{"left":0.37549868,"top":0.17956904,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Apps","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Spaces","depth":12,"bounds":{"left":0.30601728,"top":0.2019154,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"Spaces","depth":15,"bounds":{"left":0.31665558,"top":0.20790103,"width":0.016456118,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Create space","depth":13,"bounds":{"left":0.35887632,"top":0.20510775,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Create space","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for spaces","depth":13,"bounds":{"left":0.36818483,"top":0.20510775,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for spaces","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Recent","depth":16,"bounds":{"left":0.31200132,"top":0.23423783,"width":0.013464096,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Jiminny (New)","depth":17,"bounds":{"left":0.31000665,"top":0.2529928,"width":0.0674867,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny (New)","depth":20,"bounds":{"left":0.32064494,"top":0.25897846,"width":0.032081116,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Jiminny (New)","depth":18,"bounds":{"left":0.31133643,"top":0.25618514,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXMenuButton","text":"Create board","depth":18,"bounds":{"left":0.35887632,"top":0.25618514,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Create board","depth":20,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Jiminny (New)","depth":18,"bounds":{"left":0.36818483,"top":0.25618514,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Jiminny (New)","depth":20,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Platform Team","depth":19,"bounds":{"left":0.31399602,"top":0.27853152,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Team","depth":22,"bounds":{"left":0.3246343,"top":0.28451717,"width":0.032247342,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.37549868,"top":0.28172386,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Capture Team","depth":19,"bounds":{"left":0.31399602,"top":0.30407023,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Capture Team","depth":22,"bounds":{"left":0.3246343,"top":0.31005585,"width":0.03125,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.37549868,"top":0.30726257,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Enterprise Stability Issues 🤕","depth":19,"bounds":{"left":0.31399602,"top":0.32960895,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Enterprise Stability Issues 🤕","depth":22,"bounds":{"left":0.3246343,"top":0.33559456,"width":0.050531916,"height":0.030726258},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.37549868,"top":0.33280128,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Processing Team","depth":19,"bounds":{"left":0.31399602,"top":0.35514766,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Processing Team","depth":22,"bounds":{"left":0.3246343,"top":0.36113328,"width":0.038231384,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.37549868,"top":0.35834,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"SE Kanban","depth":19,"bounds":{"left":0.31399602,"top":0.38068634,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SE Kanban","depth":22,"bounds":{"left":0.3246343,"top":0.386672,"width":0.024102394,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.37549868,"top":0.38387868,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Service-Desk","depth":17,"bounds":{"left":0.31000665,"top":0.40622506,"width":0.0674867,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"Service-Desk","depth":20,"bounds":{"left":0.32064494,"top":0.4122107,"width":0.03025266,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Service-Desk","depth":18,"bounds":{"left":0.36818483,"top":0.4094174,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Service-Desk","depth":20,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Queues","depth":21,"bounds":{"left":0.31399602,"top":0.43176377,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Queues","depth":24,"bounds":{"left":0.3246343,"top":0.43774942,"width":0.017121011,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Create","depth":22,"bounds":{"left":0.37549868,"top":0.4349561,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Create","depth":24,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More for queues","depth":22,"bounds":{"left":0.37682846,"top":0.4349561,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More for queues","depth":24,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Service requests","depth":21,"bounds":{"left":0.31399602,"top":0.45730248,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Service requests","depth":24,"bounds":{"left":0.3246343,"top":0.4632881,"width":0.03756649,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Create","depth":22,"bounds":{"left":0.37549868,"top":0.46049482,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Create","depth":24,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More for service requests","depth":22,"bounds":{"left":0.37682846,"top":0.46049482,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More for service requests","depth":24,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Incidents","depth":22,"bounds":{"left":0.31399602,"top":0.4828412,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Incidents","depth":25,"bounds":{"left":0.3246343,"top":0.4888268,"width":0.021276595,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Create","depth":23,"bounds":{"left":0.37549868,"top":0.48603353,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Create","depth":25,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More for incidents","depth":23,"bounds":{"left":0.37682846,"top":0.48603353,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More for incidents","depth":25,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Reports","depth":19,"bounds":{"left":0.31399602,"top":0.5083799,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Reports","depth":22,"bounds":{"left":0.3246343,"top":0.5143655,"width":0.017287234,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for reports","depth":20,"bounds":{"left":0.37549868,"top":0.51157224,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for reports","depth":22,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Operations","depth":19,"bounds":{"left":0.31399602,"top":0.5339186,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Operations","depth":22,"bounds":{"left":0.3246343,"top":0.53990424,"width":0.02443484,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for operations","depth":20,"bounds":{"left":0.37549868,"top":0.5371109,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for operations","depth":22,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Knowledge Base","depth":19,"bounds":{"left":0.31399602,"top":0.5594573,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Knowledge Base","depth":22,"bounds":{"left":0.3246343,"top":0.5654429,"width":0.03723404,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for knowledge base","depth":20,"bounds":{"left":0.37549868,"top":0.56264967,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for knowledge base","depth":22,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Customers","depth":19,"bounds":{"left":0.31399602,"top":0.584996,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Customers","depth":22,"bounds":{"left":0.3246343,"top":0.59098166,"width":0.024268618,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for customers","depth":20,"bounds":{"left":0.37549868,"top":0.58818835,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for customers","depth":22,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Channels","depth":19,"bounds":{"left":0.31399602,"top":0.6105347,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Channels","depth":22,"bounds":{"left":0.3246343,"top":0.61652035,"width":0.020944148,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Email logs","depth":19,"bounds":{"left":0.31399602,"top":0.6360734,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Email logs","depth":22,"bounds":{"left":0.3246343,"top":0.6420591,"width":0.022606382,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for customer notification logs","depth":20,"bounds":{"left":0.37549868,"top":0.6392658,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for customer notification logs","depth":22,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Developer escalations","depth":19,"bounds":{"left":0.31399602,"top":0.66161215,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Developer escalations","depth":22,"bounds":{"left":0.3246343,"top":0.6675978,"width":0.04920213,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for developer escalations","depth":20,"bounds":{"left":0.37549868,"top":0.66480446,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for developer escalations","depth":22,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Slack integration","depth":19,"bounds":{"left":0.31399602,"top":0.68715084,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Slack integration","depth":22,"bounds":{"left":0.3246343,"top":0.69313645,"width":0.03723404,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Slack integration","depth":20,"bounds":{"left":0.37549868,"top":0.6903432,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Slack integration","depth":22,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Reporting Center","depth":19,"bounds":{"left":0.31399602,"top":0.7126895,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Reporting Center","depth":22,"bounds":{"left":0.3246343,"top":0.7186752,"width":0.037898935,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Reporting Center","depth":20,"bounds":{"left":0.37549868,"top":0.7158819,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Reporting Center","depth":22,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add shortcut","depth":19,"bounds":{"left":0.31399602,"top":0.73822826,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Add shortcut","depth":22,"bounds":{"left":0.3246343,"top":0.7442139,"width":0.028922873,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for developer escalations","depth":20,"bounds":{"left":0.37549868,"top":0.74142057,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for developer escalations","depth":22,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Archived work items","depth":19,"bounds":{"left":0.31399602,"top":0.76376694,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Archived work items","depth":22,"bounds":{"left":0.3246343,"top":0.7697526,"width":0.045545213,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for archived work items","depth":20,"bounds":{"left":0.37549868,"top":0.7669593,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for archived work items","depth":22,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"More spaces","depth":17,"bounds":{"left":0.31000665,"top":0.7893057,"width":0.0674867,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More spaces","depth":20,"bounds":{"left":0.32064494,"top":0.7952913,"width":0.028756648,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Filters","depth":12,"bounds":{"left":0.30601728,"top":0.81484437,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Filters","depth":15,"bounds":{"left":0.31665558,"top":0.82083,"width":0.013796543,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Filters","depth":13,"bounds":{"left":0.37549868,"top":0.81803674,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Filters","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dashboards","depth":12,"bounds":{"left":0.30601728,"top":0.84038305,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Dashboards","depth":15,"bounds":{"left":0.31665558,"top":0.84636873,"width":0.026761968,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Create dashboard","depth":13,"bounds":{"left":0.37749335,"top":0.8435754,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Create dashboard","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Dashboards","depth":13,"bounds":{"left":0.38480717,"top":0.8435754,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Dashboards","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Operations","depth":12,"bounds":{"left":0.30601728,"top":0.8659218,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Operations","depth":15,"bounds":{"left":0.31665558,"top":0.8719074,"width":0.02443484,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Operations","depth":13,"bounds":{"left":0.37549868,"top":0.8691141,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Operations","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Confluence , (opens new window)","depth":13,"bounds":{"left":0.30601728,"top":0.9010375,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Confluence","depth":17,"bounds":{"left":0.31665558,"top":0.90702313,"width":0.025764627,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", (opens new window)","depth":15,"bounds":{"left":0.30601728,"top":0.91460496,"width":0.04837101,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Teams , (opens new window)","depth":13,"bounds":{"left":0.30601728,"top":0.9265762,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Teams","depth":17,"bounds":{"left":0.31665558,"top":0.9325619,"width":0.014793883,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", (opens new window)","depth":15,"bounds":{"left":0.30601728,"top":0.94014364,"width":0.04837101,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"open menu","depth":14,"bounds":{"left":0.36619017,"top":0.92976856,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"open menu","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Customise sidebar","depth":12,"bounds":{"left":0.30601728,"top":0.9616919,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Customise sidebar","depth":15,"bounds":{"left":0.31665558,"top":0.9676776,"width":0.04155585,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Resize side navigation panel","depth":13,"bounds":{"left":0.43334442,"top":0.0981644,"width":0.062333778,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Spaces","depth":13,"bounds":{"left":0.38979387,"top":0.09976058,"width":0.016289894,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Spaces","depth":15,"bounds":{"left":0.38979387,"top":0.102553874,"width":0.016289894,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":13,"bounds":{"left":0.40924203,"top":0.102553874,"width":0.0016622341,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Jiminny (New)","depth":13,"bounds":{"left":0.4140625,"top":0.09976058,"width":0.03174867,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny (New)","depth":15,"bounds":{"left":0.4140625,"top":0.102553874,"width":0.03174867,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Platform Team","depth":10,"bounds":{"left":0.38979387,"top":0.12210695,"width":0.045877658,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Platform Team","depth":11,"bounds":{"left":0.38979387,"top":0.12210695,"width":0.045877658,"height":0.019553073},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add people","depth":10,"bounds":{"left":0.43766624,"top":0.118914604,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Add people","depth":12,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":10,"bounds":{"left":0.4502992,"top":0.118914604,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":12,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Share","depth":10,"bounds":{"left":0.94148934,"top":0.118914604,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Automation","depth":10,"bounds":{"left":0.95478725,"top":0.118914604,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give feedback","depth":10,"bounds":{"left":0.9680851,"top":0.118914604,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Give feedback","depth":12,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Enter full screen","depth":10,"bounds":{"left":0.98138297,"top":0.118914604,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Enter full screen","depth":12,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Summary","depth":13,"bounds":{"left":0.3871343,"top":0.14764565,"width":0.035904255,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Summary","depth":15,"bounds":{"left":0.3984375,"top":0.15363128,"width":0.021276595,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Timeline","depth":13,"bounds":{"left":0.42436835,"top":0.14764565,"width":0.03357713,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Timeline","depth":15,"bounds":{"left":0.43567154,"top":0.15363128,"width":0.018949468,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Backlog","depth":13,"bounds":{"left":0.45927528,"top":0.14764565,"width":0.032413565,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Backlog","depth":15,"bounds":{"left":0.47057846,"top":0.15363128,"width":0.017785905,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Active sprints","depth":13,"bounds":{"left":0.49301863,"top":0.14764565,"width":0.045212764,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Active sprints","depth":15,"bounds":{"left":0.5043218,"top":0.15363128,"width":0.030585106,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Calendar","depth":13,"bounds":{"left":0.53956115,"top":0.14764565,"width":0.03474069,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Calendar","depth":15,"bounds":{"left":0.55086434,"top":0.15363128,"width":0.020113032,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Reports","depth":13,"bounds":{"left":0.5756317,"top":0.14764565,"width":0.031914894,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Reports","depth":15,"bounds":{"left":0.58693486,"top":0.15363128,"width":0.017287234,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Testing Board","depth":13,"bounds":{"left":0.60887635,"top":0.14764565,"width":0.046708778,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Testing Board","depth":15,"bounds":{"left":0.62017953,"top":0.15363128,"width":0.030751329,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"List","depth":13,"bounds":{"left":0.6569149,"top":0.14764565,"width":0.02244016,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"List","depth":15,"bounds":{"left":0.6682181,"top":0.15363128,"width":0.0078125,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Forms","depth":13,"bounds":{"left":0.68068486,"top":0.14764565,"width":0.028590426,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Forms","depth":15,"bounds":{"left":0.69198805,"top":0.15363128,"width":0.013962766,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-6924266178528671527
|
221720014730482912
|
visual_change
|
accessibility
|
NULL
|
Platform Sprint 3 Q2 - Platform Team - Scrum Board Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
Close tab
Service-Desk - Queues - Platform team - Service space - Jira
Service-Desk - Queues - Platform team - Service space - Jira
Jy 20807 check various issues with stages by nikolaybiaivanov · Pull Request #12041 · jiminny/app
Jy 20807 check various issues with stages by nikolaybiaivanov · Pull Request #12041 · jiminny/app
Sentry
Sentry
Pull requests · jiminny/app
Pull requests · jiminny/app
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to:
Top Bar
Top Bar
Sidebar
Sidebar
Main Content
Main Content
Space navigation
Space navigation
Collapse sidebar [
Collapse sidebar [
Switch sites or apps
Switch sites or apps
Go to your Jira homepage
Search, press enter to navigate to advanced search with your text query
Create
Create
Rovo Ask Rovo
Ask Rovo
Notifications
Notifications
Help
Help
Settings
Settings
[EMAIL]
[EMAIL]
For you
For you
Recent
Recent
Starred
Starred
Apps
Apps
More actions for Apps
More actions for Apps
Spaces
Spaces
Create space
Create space
More actions for spaces
More actions for spaces
Recent
Jiminny (New)
Jiminny (New)
Jiminny (New)
Create board
Create board
More actions for Jiminny (New)
More actions for Jiminny (New)
Platform Team
Platform Team
Board actions
Board actions
Capture Team
Capture Team
Board actions
Board actions
Enterprise Stability Issues 🤕
Enterprise Stability Issues 🤕
Board actions
Board actions
Processing Team
Processing Team
Board actions
Board actions
SE Kanban
SE Kanban
Board actions
Board actions
Service-Desk
Service-Desk
More actions for Service-Desk
More actions for Service-Desk
Queues
Queues
Create
Create
More for queues
More for queues
Service requests
Service requests
Create
Create
More for service requests
More for service requests
Incidents
Incidents
Create
Create
More for incidents
More for incidents
Reports
Reports
More actions for reports
More actions for reports
Operations
Operations
More actions for operations
More actions for operations
Knowledge Base
Knowledge Base
More actions for knowledge base
More actions for knowledge base
Customers
Customers
More actions for customers
More actions for customers
Channels
Channels
Email logs
Email logs
More actions for customer notification logs
More actions for customer notification logs
Developer escalations
Developer escalations
More actions for developer escalations
More actions for developer escalations
Slack integration
Slack integration
More actions for Slack integration
More actions for Slack integration
Reporting Center
Reporting Center
More actions for Reporting Center
More actions for Reporting Center
Add shortcut
Add shortcut
More actions for developer escalations
More actions for developer escalations
Archived work items
Archived work items
More actions for archived work items
More actions for archived work items
More spaces
More spaces
Filters
Filters
More actions for Filters
More actions for Filters
Dashboards
Dashboards
Create dashboard
Create dashboard
More actions for Dashboards
More actions for Dashboards
Operations
Operations
More actions for Operations
More actions for Operations
Confluence , (opens new window)
Confluence
, (opens new window)
Teams , (opens new window)
Teams
, (opens new window)
open menu
open menu
Customise sidebar
Customise sidebar
Resize side navigation panel
Spaces
Spaces
/
Jiminny (New)
Jiminny (New)
Platform Team
Platform Team
Add people
Add people
Board actions
Board actions
Share
Automation
Give feedback
Give feedback
Enter full screen
Enter full screen
Summary
Summary
Timeline
Timeline
Backlog
Backlog
Active sprints
Active sprints
Calendar
Calendar
Reports
Reports
Testing Board
Testing Board
List
List
Forms
Forms...
|
216
|
NULL
|
NULL
|
NULL
|
|
882
|
31
|
10
|
2026-05-07T07:38:43.470164+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778139523470_m1.jpg...
|
iTerm2
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelpSupport Daily • in 4h 22 m100% <8APP (-zsh)DOCKERDEV (-zsh)₴2APP (-zsh)*3-zshcreatemode 100644 database/migrations/2026_04_29_105053_move_ask_jiminny_reports_to_grow_tier.phpcreatemode100644 front-end/src/__mocks__/kit/endpoints/automated-reports-promo.jscreate mode100644 front-end/src/apps/ai-reports-promo.jscreatemode100644 front-end/src/components/AiReports/AiReportsPromo.vuecreatemode100644front-end/src/components/AiReports/AutomatedReportsPromo/AutomatedReportsPromo.vuecreatemode100644front-end/src/components/AiReports/AutomatedReportsPromo/PromoCard.vuecreatemode100644front-end/src/components/AiReports/AutomatedReportsPromo/WhyItMattersCard.vuecreatemode100644 front-end/src/components/AiReports/AutomatedReportsPromo/__tests_./AutomatedReportsPromo.spec.jscreatemode100644 front-end/src/components/AiReports/AutomatedReportsPromo/__tests__/__snapshots__/automated-reports-promo.output.htmlcreatemode 100644 front-end/src/components/AiReports/PanoramaReportsPromo/PanoramaReportsPromo.vuecreate mode 100644 front-end/src/components/AiReports/PanoramaReportsPromo/__tests__/PanoramaReportsPromo.spec.jscreatemode 100644front-end/src/components/AiReports/PanoramaReportsPromo/__tests__/__snapshots__/panorama-reports-promo.output.htmlcreate mode 100644front-end/src/components/Settings/Kiosk/modals/EditTeamModal/.__tests__/EditTeamModal.spec.jscreate mode 100644front-end/src/components/Settings/Kiosk/shared/Navigation/__tests__/Navigation.spec.jscreate mode 100644 front-end/src/components/layout/Sidebar/__tests_/HelpMenu.spec.jscreate mode100644 front-end/src/components/layout/Sidebar/__tests__/useAiReportsSidebarButton.spec.jscreate mode 100644 front-end/src/components/layout/Sidebar/useAiReportsSidebarButton.jscreate mode100644 front-end/src/store/modules/platform/__tests_/getters.spec.jscreate mode 100644 public/pdf/exec-reports/com/coaching-profiles.pdfcreate mode100644 public/pdf/exec-reports/com/exec-summary.pdfcreate mode100644 public/pdf/exec-reports/com/loss-report.pdfcreate mode100644 public/pdf/exec-reports/com/product-feedback.pdfcreate mode100644 public/pdf/exec-reports/eu/coaching-profiles.pdfcreate mode 100644public/pdf/exec-reports/eu/exec-summary.pdfcreate mode 100644public/pdf/exec-reports/eu/loss-report.pdfcreate mode 100644public/pdf/exec-reports/eu/product-feedback.pdfcreate mode 100644 resources/views/emails/reports/ask-jiminny-report-expiring.blade.phpcreate mode 100644 resources/views/emails/reports/report-not-generated.blade.phpcreate mode100644tests/Unit/Component/Transcription/Job/FinishTranscriptionJobTest.phpcreate mode100644tests/Unit/Component/Transcription/TranscriptionProcessor/Gong/GongTest.phpcreate mode100644 tests/Unit/Events/Activities/Audio/RecordingEventTest.phpcreate mode100644tests/Unit/Events/Activities/Softphone/EndedTest.phpcreate mode100644tests/Unit/Events/Activities/Softphone/SoftphoneEventTest.phpcreate mode100644 tests/Unit/Events/Activities/Softphone/StartedTest.phpcreate mode100644tests/Unit/Http/Transformers/PartnerTransformerTest.phpcreate mode100644tests/Unit/Jobs/AutomatedReports/SendReportExpiringSoonMailJobTest.phpcreate mode 100644tests/Unit/Jobs/AutomatedReports/SendReportNotGeneratedMailJobTest.phpcreate mode 100644 tests/Unit/Listeners/Teams/SyncIntercomCompanyTest.phpcreate mode 100644 tests/Unit/Listeners/Users/SyncIntercomTest.phpcreate mode 100644 tests/Unit/Mail/Reports/ReportNotGeneratedTest.phpcreate mode 100644 tests/Unit/Models/PartnerTest.phpcreate mode 100644 tests/Unit/Services/ActivityServiceTest.phpcreate mode 100644 tests/Unit/UseCases/TeamInsights/Recording0utcomeTextResolverTest.phpcreate mode 100644 tests/Unit/UseCases/TeamInsights/StrictConsentColumnResolverTest.phpLukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pulll• *4screenpipe"Thu 7 May 10:38:43T81• *5APP...
|
NULL
|
-6924096142313305983
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelpSupport Daily • in 4h 22 m100% <8APP (-zsh)DOCKERDEV (-zsh)₴2APP (-zsh)*3-zshcreatemode 100644 database/migrations/2026_04_29_105053_move_ask_jiminny_reports_to_grow_tier.phpcreatemode100644 front-end/src/__mocks__/kit/endpoints/automated-reports-promo.jscreate mode100644 front-end/src/apps/ai-reports-promo.jscreatemode100644 front-end/src/components/AiReports/AiReportsPromo.vuecreatemode100644front-end/src/components/AiReports/AutomatedReportsPromo/AutomatedReportsPromo.vuecreatemode100644front-end/src/components/AiReports/AutomatedReportsPromo/PromoCard.vuecreatemode100644front-end/src/components/AiReports/AutomatedReportsPromo/WhyItMattersCard.vuecreatemode100644 front-end/src/components/AiReports/AutomatedReportsPromo/__tests_./AutomatedReportsPromo.spec.jscreatemode100644 front-end/src/components/AiReports/AutomatedReportsPromo/__tests__/__snapshots__/automated-reports-promo.output.htmlcreatemode 100644 front-end/src/components/AiReports/PanoramaReportsPromo/PanoramaReportsPromo.vuecreate mode 100644 front-end/src/components/AiReports/PanoramaReportsPromo/__tests__/PanoramaReportsPromo.spec.jscreatemode 100644front-end/src/components/AiReports/PanoramaReportsPromo/__tests__/__snapshots__/panorama-reports-promo.output.htmlcreate mode 100644front-end/src/components/Settings/Kiosk/modals/EditTeamModal/.__tests__/EditTeamModal.spec.jscreate mode 100644front-end/src/components/Settings/Kiosk/shared/Navigation/__tests__/Navigation.spec.jscreate mode 100644 front-end/src/components/layout/Sidebar/__tests_/HelpMenu.spec.jscreate mode100644 front-end/src/components/layout/Sidebar/__tests__/useAiReportsSidebarButton.spec.jscreate mode 100644 front-end/src/components/layout/Sidebar/useAiReportsSidebarButton.jscreate mode100644 front-end/src/store/modules/platform/__tests_/getters.spec.jscreate mode 100644 public/pdf/exec-reports/com/coaching-profiles.pdfcreate mode100644 public/pdf/exec-reports/com/exec-summary.pdfcreate mode100644 public/pdf/exec-reports/com/loss-report.pdfcreate mode100644 public/pdf/exec-reports/com/product-feedback.pdfcreate mode100644 public/pdf/exec-reports/eu/coaching-profiles.pdfcreate mode 100644public/pdf/exec-reports/eu/exec-summary.pdfcreate mode 100644public/pdf/exec-reports/eu/loss-report.pdfcreate mode 100644public/pdf/exec-reports/eu/product-feedback.pdfcreate mode 100644 resources/views/emails/reports/ask-jiminny-report-expiring.blade.phpcreate mode 100644 resources/views/emails/reports/report-not-generated.blade.phpcreate mode100644tests/Unit/Component/Transcription/Job/FinishTranscriptionJobTest.phpcreate mode100644tests/Unit/Component/Transcription/TranscriptionProcessor/Gong/GongTest.phpcreate mode100644 tests/Unit/Events/Activities/Audio/RecordingEventTest.phpcreate mode100644tests/Unit/Events/Activities/Softphone/EndedTest.phpcreate mode100644tests/Unit/Events/Activities/Softphone/SoftphoneEventTest.phpcreate mode100644 tests/Unit/Events/Activities/Softphone/StartedTest.phpcreate mode100644tests/Unit/Http/Transformers/PartnerTransformerTest.phpcreate mode100644tests/Unit/Jobs/AutomatedReports/SendReportExpiringSoonMailJobTest.phpcreate mode 100644tests/Unit/Jobs/AutomatedReports/SendReportNotGeneratedMailJobTest.phpcreate mode 100644 tests/Unit/Listeners/Teams/SyncIntercomCompanyTest.phpcreate mode 100644 tests/Unit/Listeners/Users/SyncIntercomTest.phpcreate mode 100644 tests/Unit/Mail/Reports/ReportNotGeneratedTest.phpcreate mode 100644 tests/Unit/Models/PartnerTest.phpcreate mode 100644 tests/Unit/Services/ActivityServiceTest.phpcreate mode 100644 tests/Unit/UseCases/TeamInsights/Recording0utcomeTextResolverTest.phpcreate mode 100644 tests/Unit/UseCases/TeamInsights/StrictConsentColumnResolverTest.phpLukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pulll• *4screenpipe"Thu 7 May 10:38:43T81• *5APP...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
1019
|
37
|
25
|
2026-05-07T07:56:17.833644+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778140577833_m1.jpg...
|
PhpStorm
|
faVsco.js – Configuration.php
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Code changed:
Hide
Sync Changes
Hide This Notification
37
1
35
63
Previous Highlighted Error
Next Highlighted Error
SELECT * FROM teams WHERE name LIKE '%litify%'; # 1069, 994, 24993
SELECT * FROM users WHERE id = 25061;
SELECT * FROM crm_profiles WHERE crm_configuration_id = 994;
SELECT * FROM crm_profiles WHERE user_id = 25061;
select * from crm_configurations where id = 834;
SELECT * FROM teams WHERE id = 882;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 882 and sa.provider = 'hubspot';
SELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal
SELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 933 and sa.provider = 'hubspot';
SELECT * FROM crm_configurations WHERE provider = 'hubspot' and crm_provider_id = 7270388;
SELECT * FROM contacts where crm_configuration_id = 834;
SELECT * FROM opportunities WHERE team_id = 933
# AND crm_provider_id IN ('20131586060','46017317898','52543911090','53451356564','54101251892','54323768459');
AND id IN (8482561,18352941,19042734,19232139,19445140,19472541);
SELECT * FROM opportunity_contacts
WHERE opportunity_id IN (8482561,18352941,19042734,19232139,19445140,19472541);
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 485; #
SELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 933 and sa.provider = 'hubspot';
select crm.provider, l.* from leads l join crm_configurations crm on l.crm_configuration_id = crm.id
where crm.provider NOT IN ('salesforce', 'integration-app', 'bullhorn', 'copper')
# and l.converted_at IS NOT NULL
;
# [PASSWORD_DOTS]
SELECT * FROM activities a WHERE type IN ('email-inbound', 'email-outbound')
and opportunity_id IS NULL
order by id desc;
SELECT * FROM teams WHERE id = 604; # 598
SELECT * FROM activities WHERE id = 74410828; # [EMAIL]
SELECT * FROM accounts WHERE id = 20068382;
SELECT * FROM accounts WHERE id = 35186038;
SELECT * FROM contacts WHERE team_id = 852 and updated_at > '2026-01-23 12:30:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 559 and sa.provider = 'hubspot';
SELECT * FROM activities WHERE uuid_to_bin('cb6342b6-a183-401c-b0af-ede92b2ae763') = uuid;
select * from sidekick_settings where team_id = 781;
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 26651871; # Teya
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 7562435;
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8420347; # opflit 2100
SELECT * FROM crm_layouts WHERE crm_configuration_id = 711;
SELECT * FROM activities where crm_configuration_id = 711 and crm_provider_id IS NULL
and is_internal = 0 and status = 'completed'
order by id desc;
SELECT * FROM crm_layout_entities
WHERE crm_layout_id IN (2352, 2353);
;
SELECT * FROM crm_configurations where provider = 'hubspot' and id = 530;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 556 and sa.provider = 'hubspot';
SELECT * FROM activities WHERE uuid_to_bin('c6ca4b22-7738-4563-a95d-b8a9598924ae') = uuid;
SELECT * FROM activities WHERE uuid_to_bin('442abb2b-28bd-4be8-9c25-19e9bf02766d') = uuid;
select * from contacts
where crm_configuration_id = 530
and crm_provider_id = 872252;
select * from activities where crm_configuration_id = 530
and user_id = 14343 and type like '%softphone%'
and created_at between '2026-01-28 15:00:00' and '2026-01-28 15:10:00';
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 25666868; # Teya
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8646335; # Teya
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id IN (5933397);
SELECT t.name, t.id, t.owner_id, c.id, c.provider, c.crm_base_url FROM teams t
JOIN crm_configurations c ON t.id = c.team_id
WHERE t.status = 'active';
SELECT * FROM teams where id = 1091;
SELECT * FROM crm_configurations where team_id = 1091;
SELECT * FROM activity_providers where team_id = 1091;
SELECT * FROM activities where crm_configuration_id = 1024 and type IN ('softphone', 'softphone-outbound')
and provider NOT IN ('hubspot', 'aircall')
# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'
order by id desc;
SELECT * FROM teams WHERE name LIKE '%Leadventure%';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1091 and sa.provider = 'salesforce';
SELECT * FROM teams WHERE name LIKE '%Wilson%'; # 862, 812
SELECT * FROM teams where id = 862;
SELECT * FROM crm_configurations where team_id = 862;
SELECT * FROM activity_providers where team_id = 862;
SELECT * FROM activities where crm_configuration_id = 812 and type IN ('softphone', 'softphone-outbound')
and provider NOT IN ('hubspot', 'aircall')
# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'
order by id desc;
SELECT t.id, crm.id, crm.provider, ap.* FROM teams t
join crm_configurations crm on t.id = crm.team_id
join activity_providers ap on t.id = ap.team_id
where t.status = 'active' and ap.is_enabled = 1
and crm.provider = 'hubspot'
and ap.provider NOT IN ('hubspot', 'aircall', 'uploader', 'gong', 'twilio', 'zoom-bot', 'google-meet', 'ms-teams',
'outreach', 'close', 'ringcentral', 'dialpad', 'zoom-phone');
SELECT * FROM teams where id = 1068;
SELECT * FROM crm_configurations where team_id = 1068;
SELECT * FROM activity_providers where team_id = 1068;
SELECT * FROM activities a
where crm_configuration_id = 993 and type IN ('softphone', 'softphone-outbound')
and a.provider NOT IN ('hubspot', 'uploader', 'gong', 'twilio', 'google-meet', 'ms-teams','close'
)
# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'
order by a.id desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1068 and sa.provider = 'hubspot';
# [PASSWORD_DOTS]
# [PASSWORD_DOTS]
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal , portalId: 6017093
SELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-06 00:00:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 933 and sa.provider = 'hubspot';
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 834; # 882 - AnyVan , portalId: 5468262
SELECT * FROM contacts WHERE crm_configuration_id = 834 and updated_at > '2026-03-30 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE crm_configuration_id = 834 and updated_at > '2026-03-04 08:00:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 882 and sa.provider = 'hubspot';
select * from crm_layouts where crm_configuration_id = 834;
select * from crm_layout_entities where crm_layout_id = 2780;
select * from crm_fields where id IN (321153,321192,321193,321194);
SELECT * FROM opportunities WHERE crm_configuration_id = 834 and id = 10993426;
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 988; # 1057 - Teya (543ce4f4-168c-4571-91ea-5b35c253f06f) , portalId: 26651871
SELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1057 and sa.provider = 'hubspot';
SELECT * FROM crm_configurations where id = 533; # 559 - Connectd , portalId: 6710988
SELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 801; # 852 - Rise Vision , portalId: 2700250
SELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-04 00:00:00' order by updated_at desc; # 6th last
SELECT * FROM crm_configurations where id = 962; # 1034 - evergrowth.io , portalId: 143180990
SELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 1037; # 1102 - Jibble , portalId: 6649755
SELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 8
SELECT * FROM crm_configurations where id = 1015; # 1049 - Travefy , portalId: 48904401
SELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 20
SELECT * FROM crm_configurations where id = 64; # 70 - SalaryFinance , portalId: 3404115
SELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 6th last
SELECT * FROM crm_configurations where id = 802; # 853 - Street Group , portalId: 7658438
SELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 10
SELECT * FROM crm_configurations where id = 872; # 921 - In Professional Development , portalId: 9238273
SELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 2
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 550; # 576 - SeedLegals , portalId: 3028661
SELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 989; # 1058 - rtaoutdoor.com , portalId: 22371204
SELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 896; # 946 - Mintago , portalId: 6621281
SELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 617; # 641 - PCS , portalId: 5244937
SELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-05 14:00:00' order by updated_at desc; # 7th
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 649; # 670 - Eventeny , portalId: 4492849
SELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; #
SELECT * FROM crm_configurations where id = 48; # 51 - CleanCloud , portalId: 4373137
SELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-03-04 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-02-09 08:00:00' order by updated_at desc;
select * from users where team_id = 51; # 7783
SELECT * FROM groups WHERE uuid_to_bin('8a8d2cb6-8b55-4fa3-8b5c-5f0e3d8de59a') = uuid; # 1130
select * from activity_searches where user_id = 7783;
select * from activity_search_filters where activity_search_id IN (32291, 32292);
SELECT asf.activity_search_id, asf.id, asf.value
FROM activity_search_filters asf
WHERE asf.filter = 'group_id'
AND asf.value IN (
SELECT CONCAT(
HEX(SUBSTR(uuid, 5, 4)), '-',
HEX(SUBSTR(uuid, 3, 2)), '-',
HEX(SUBSTR(uuid, 1, 2)), '-',
HEX(SUBSTR(uuid, 9, 2)), '-',
HEX(SUBSTR(uuid, 11))
)
FROM groups
WHERE deleted_at IS NOT NULL
);
SELECT * FROM crm_configurations where id = 272; # 290 - Bonham & Brook , portalId: 5705856
SELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-05 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; # 6th
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where provider = 'hubspot';
SELECT * FROM crm_configurations where id = 1056; # 1119 - Chromatic , portalId: 45602133
SELECT * FROM opportunities WHERE team_id = 1119 and remotely_created_at > '2026-02-01 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1119 and updated_at > '2026-02-09 09:00:00' order by updated_at desc; # null
# [PASSWORD_DOTS]
select * from contacts where crm_provider_id = '003Uu00000ojD4NIAU';
select
cp.*
# DISTINCT t.id
# cp.id, cp.user_id, t.id, cp.crm_configuration_id, cp.contact_fields
FROM crm_profiles cp
JOIN crm_configurations crm on crm.id = cp.crm_configuration_id
JOIN users u on u.id = cp.user_id
JOIN teams t ON t.id = crm.team_id
WHERE crm.provider = 'salesforce' and t.status = 'active'
and cp.archived_at IS NULL and u.deleted_at IS NULL
and t.id NOT IN (1093)
and t.id = 2
and cp.contact_fields IS NULL;
# and c.crm_provider_id = '003Uu00000ojD4NIAU';
SELECT * FROM users WHERE id = 26484;
SELECT * FROM crm_profiles WHERE user_id = 26484;
SELECT * FROM social_accounts WHERE sociable_id = 26484;
SELECT * FROM crm_configurations where provider = 'salesforce';
select * from users where id IN (10022, 10403);
select * from users where team_id IN (526);
select * from teams where id IN (526, 532);
select * from crm_configurations where id IN (500, 516);
select * from crm_profiles where crm_configuration_id IN (500, 516) and user_id IN (10022, 10403);
select * from contacts where crm_configuration_id IN (500, 516) and crm_provider_id = '003Uu00000ojD4NIAU';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 526 and sa.provider = 'salesforce';
select * from team_settings where team_id IN (526, 532);
select * from users where id IN (22824);
select * from crm_profiles where crm_configuration_id IN (1026);
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1093 and sa.provider = 'salesforce';
select * from teams where id = 1099;
select * from users where id = 29643
select * from activity_processing_states;
SELECT * FROM teams where name LIKE '%Fare%'; # 233
SELECT * FROM opportunities where crm_configuration_id = 215
# and crm_provider_id = 'oppo_ogESZf2P50nDrd1nGPvKDXeA6sSaTN5v51Lp4ayVzKR'
;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1088 and sa.provider = 'hubspot';
SELECT * FROM teams order by updated_at DESC
SELECT * FROM crm_configurations WHERE id = 1019; # SimpleConsign 1088 - no social account
select * from crm_configurations where provider = 'pipedrive';
select * from teams where id = 957;
select * from crm_configurations where id = 957;
SELECT * FROM teams WHERE name LIKE '%Prolific%'; # 544, 518, 10743
SELECT * FROM opportunities where crm_configuration_id = 518 order by id desc;
select * from users where team_id = 1; # 26726 - Gabriela Dureva
SELECT * FROM opportunities where user_id = 26726; # 16834447 - Prolific
select * from activities where user_id = 26726 order by id desc;
select * from contacts where crm_configuration_id = 1
and email IN ('[EMAIL]', '[EMAIL]'); # 2094416, 2093620
SELECT * FROM contacts WHERE id = 6284931;
SELECT p.* FROM activities a JOIN participants p ON a.id = p.activity_id
WHERE a.user_id = 26726 and p.lead_id IN (2094416, 2093620) and a.created_at > '2026-01-01 00:00:00' order by p.email;
select * from activities where id IN (75509259,75509261,75509261,75511034,75026464,75517602,75517605);
select * from crm_configurations where id = 1;
43801692-1aeb-32ce-acba-5b80a479701a
44c3c9cf-6f5e-75f3-8179-bc9f75dd2b1b
405975c0-b3d0-7aaa-821f-09d59cae6dd1
4caf848d-4bed-2299-b248-7788d41f9fca
49bedc3f-f196-eef3-89c3-dea6a3b4aa63
43420989-a09d-b8f8-9806-c8bbf7a02aac
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1 and sa.provider = 'salesforce';
SELECT * FROM activities WHERE id = 75461988;
SELECT * FROM activities WHERE uuid_to_bin('d6c5052e-e972-49e9-8912-26f2f7d6c5f6') = uuid;
select * from contacts where id = 17900517;
select * from contact_roles cr join crm_configurations crm on cr.crm_configuration_id = crm.id
where crm.provider != 'salesforce';
select * from users where id = 21047;
SELECT * FROM crm_configurations WHERE id = 892;
SELECT * FROM teams WHERE id = 942;
select * from opportunities where team_id = 942 order by updated_at desc;
select * from contacts where team_id = 942 order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 942 and sa.provider = 'hubspot';
SELECT * FROM opportunities where team_id = 1 and crm_provider_id IN ('006Pq00000NeH6XIAV', '006Pq000007z8kdIAA'); # 10697889, 6621430
SELECT * FROM crm_configurations WHERE id = 1;
SELECT * FROM teams WHERE crm_id = 1;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1 and sa.provider = 'salesforce';
select id, user_id, opportunity_fields from crm_profiles where crm_configuration_id = 1
SELECT * FROM opportunities where team_id = 1 order by updated_at desc; # 10697889, 6621430
select * from teams where id = 852;
select * from groups where id = 2286;
select * from sidekick_settings where team_id = 852;
select * from default_activity_types where team_id = 852;
SELECT cc.provider, cc.id, p.id, u.*
FROM users u
LEFT JOIN crm_profiles p ON u.id = p.user_id AND p.id IS NULL -- no profile
INNER JOIN teams t ON u.team_id = t.id AND t.status = 'active' -- team is active
INNER JOIN crm_configurations cc ON t.crm_id = cc.id
WHERE u.status = 1 AND u.deleted_at IS NULL
AND u.crm_required = 1
AND u.team_id = 1
ORDER BY u.team_id;
SELECT * FROM crm_profiles cp where cp.crm_configuration_id = 1 and cp.user_id IN (
18481
);
SELECT cc.provider, cc.id, p.id, u.*
FROM users u
LEFT JOIN crm_profiles p ON u.id = p.user_id
INNER JOIN teams t ON u.team_id = t.id AND t.status = 'active'
INNER JOIN crm_configurations cc ON t.crm_id = cc.id
WHERE u.status = 1
AND u.deleted_at IS NULL
AND u.crm_required = 1
# AND u.team_id = 1
AND p.id IS NULL -- Move this condition to WHERE clause
ORDER BY u.team_id;
SELECT * FROM opportunities WHERE id = 20002609;
select * from teams where id = 1122; # Velatir, 29953 - [EMAIL]
select * from crm_configurations where id = 1060;
select * from crm_layouts where crm_configuration_id = 1060;
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 3596;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1122 and sa.provider = 'hubspot';
select * from opportunities where team_id = 1122 order by updated_at desc;
select * from crm_field_data where object_type = 'contact';
SELECT * FROM activities WHERE uuid_to_bin('374fc8ed-3315-4c9f-9b25-318b7fd2928f') = uuid; # 76584262
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 248 and sa.provider = 'salesforce';
SELECT * FROM crm_profiles where user_id = 24115; # 005QF000002CswMYAS
SELECT * FROM users where id = 24115;
SELECT * FROM accounts where id = 4002896;
SELECT * FROM teams WHERE name LIKE '%adswerve%';
SELECT * FROM opportunities where crm_configuration_id = 230 AND crm_provider_id IN ("0069N000003GIQ9QAO","0061r000019yGP9AAM","0066900001S2KWlAAN","0066900001TDpj2AAD","0066900001b8uEwAAI","0069N000001rQi0QAE","006QF00000KD40mYAD","006QF00000LzpRJYAZ","0069N000002uomtQAA","0069N000002xlMLQAY","0066900001NV6ubAAD","0061r00001HJp45AAD","006QF00000uTlUoYAK","006QF00000v0bZqYAI");
SELECT * FROM opportunities WHERE crm_configuration_id = 230 AND crm_provider_id = '0069N000003GIQ9QAO'; # 6272203
SELECT u.id, u.email, ac.name, a.* FROM activities a
JOIN users u ON a.user_id = u.id
JOIN accounts ac ON a.account_id = ac.id
WHERE
uuid_to_bin('e3269598-b562-44fb-b5e9-9d2694dc63e0') = a.uuid or
uuid_to_bin('66ddc3ab-4e15-45aa-af0c-248c1eece593') = a.uuid or
uuid_to_bin('826bd328-e1cc-4213-b8d8-572454cacc07') = a.uuid;
select * from users where id = 5825;
SELECT * FROM activities WHERE uuid_to_bin('e56aa2e8-231a-421b-ab1f-cb38ed2bf573') = uuid;
select * from activities where uuid_to_bin('91e13b2f-2d1b-45f8-b1fd-1141b6563782') = uuid;
19594, 862
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 862 and sa.provider = 'salesforce';
select * from automated_reports where id = 36;
select ar.frequency, r.*, ar.* from automated_report_results r
join automated_reports ar on r.report_id = ar.id
where ar.frequency != 'one_off';
select s.* from activity_searches s join users u ON s.user_id = u.id where u.team_id = 882;
select * from nudges n where n.activity_search_id
select * from teams where created_at > '2026-03-09';
SELECT * FROM crm_layouts WHERE crm_configuration_id = 1065; # 1065
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 3617;
select * from users where team_id = 1 and name like '%Lukas%'; # 7160
SELECT * FROM teams WHERE id = 575;
select * from opportunities where team_id = 575;
SELECT * FROM teams WHERE name LIKE '%Integrum ESG%'; # 1126, 1065,
select * from opportunities where team_id = 1126;
SELECT * FROM teams WHERE name LIKE '%Base%'; # 1125, 1063,
select * from opportunities where team_id = 1125;
select * from contacts c
where c.team_id = 882;
SELECT * FROM activities WHERE id = 76822967;
SELECT * FROM crm_profiles WHERE user_id = 15440;
SELECT * FROM crm_profiles WHERE crm_configuration_id = 555;
SELECT * FROM crm_configurations WHERE id = 555;
SELECT * FROM users WHERE id = 15440; # team. 581, gr. 15440, pl. 3911, act. field 162182
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 581 and sa.provider = 'salesforce';
SELECT * FROM automated_report_results order by id desc;
select * from features;
select * from team_features where feature_id = 40;
select * from teams where id = 556;
select * from automated_reports;
where id = 54; # 4fdd41f6-dcf0-30d0-b339-7345381b6044 , ["pdf","podcast"]
SELECT * FROM automated_report_results WHERE uuid_to_bin('822fa41b-afd3-43a9-a248-86b0e36f3131') = uuid;
select * from automated_report_results order by id desc;
SELECT * FROM automated_report_results WHERE id = 1919;
select * from automated_report_results WHERE report_id = 54;
select * from opportunities where id = 7594349;
SELECT * FROM teams WHERE name LIKE '%Les%'; # 711, 692, 16067 - [EMAIL]
select * from playbooks where team_id = 711; # event 226147
SELECT * FROM playbook_categories WHERE playbook_id = 5515;
SELECT * FROM crm_fields WHERE crm_configuration_id = 692 and object_type = 'event';
SELECT * FROM crm_fields WHERE id = 226147;
SELECT * FROM crm_field_values WHERE crm_field_id = 226147;
SELECT * FROM crm_configurations WHERE id = 692;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 711 and sa.provider = 'salesforce';
SELECT * FROM crm_profiles cp JOIN users u on u.id = cp.user_id WHERE u.team_id = 711;
select * from leads;
select * from calendars;
SELECT
t.id AS team_id,
t.name,
LOWER(SUBSTRING_INDEX(c.calendar_provider_id, '@', -1)) AS calendar_domain
FROM teams t
JOIN users u ON u.team_id = t.id
JOIN calendars c ON c.user_id = u.id AND c.status = 'active' AND c.calendar_provider_id LIKE '%@%'
LEFT JOIN team_domains td
ON td.team_id = t.id
AND td.deleted_at IS NULL
AND td.domain = LOWER(SUBSTRING_INDEX(c.calendar_provider_id, '@', -1))
GROUP BY t.id, t.name, calendar_domain
ORDER BY t.name, calendar_domain;
select * from users u join calendars c on c.user_id = u.id
where u.team_id = 882;
select * from activities where id = 74049485; # team 563 crm 537
select * from activities where id = 73272382; # team 563 crm 537
select * from activities where id = 64400389; # team 563 crm 537
select * from activities where id = 58081273; # team 563 crm 537
select * from activities where id = 54520297; # team 563 crm 537
select * from participants where activity_id = 58081273;
select * from activities where crm_configuration_id = 537 and provider = 'aircall'
and account_id = 19003658 order by updated_at desc;
select * from contacts where crm_configuration_id = 537 and id = 35957759;
select * from accounts where crm_configuration_id = 537 and id = 19003658;
select * from automated_report_results where id = 1976;
select * from automated_reports where id = 583;
select * from activity_searches where id = 87714;
select * from activity_search_filters where activity_search_id = 87714;
SELECT * FROM activities WHERE uuid_to_bin('8827f672-202d-4162-9d04-73ff5f0566a9') = uuid
or uuid_to_bin('47842446-af51-4bcb-854f-cc6560290101') = uuid;
Sync Changes
Hide This Notification
Code changed:
Hide
25
4
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Models\Crm;
use Database\Factories\Crm\ConfigurationFactory;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Illuminate\Support\Collection;
use Jiminny\Component\Eloquent\Builder;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Models\Account;
use Jiminny\Models\Activity;
use Jiminny\Models\Contact;
use Jiminny\Models\Lead;
use Jiminny\Models\Model;
use Jiminny\Models\Opportunity;
use Jiminny\Models\RateLimit;
use Jiminny\Models\Stage;
use Jiminny\Models\Team;
use Jiminny\Models\User;
use Jiminny\Traits\Enums;
use Jiminny\Traits\RequiresUUID;
/**
* Jiminny\Models\Crm\Configuration
*
* @property int $id
* @property mixed|null $uuid
* @property int $team_id
* @property int|null $notifiable_user_id
* @property string $provider
* @property string|null $edition
* @property string|null $instance
* @property bool $is_sandbox
* @property string|null $version
* @property bool $sync_metadata
* @property bool $sync_objects
* @property bool $auto_sync_activity
* @property string|null $crm_provider_id
* @property string|null $crm_base_url
* @property \Illuminate\Support\Carbon $last_synced_at
* @property \Illuminate\Support\Carbon|null $leads_synced_at
* @property \Illuminate\Support\Carbon|null $accounts_synced_at
* @property \Illuminate\Support\Carbon|null $contacts_synced_at
* @property \Illuminate\Support\Carbon|null $opportunities_synced_at
* @property \Illuminate\Support\Carbon|null $contact_roles_synced_at
* @property \Illuminate\Support\Carbon|null $over_quota_at
* @property \Illuminate\Support\Carbon|null $api_disabled_at
* @property string $opportunity_assignment_rule
* @property string $opportunity_max_value
* @property int $opportunity_max_age
* @property int|null $opportunity_value_field_id
* @property bool $trigger_assignment_rules
* @property bool $store_transcript
* @property bool $softphone_override_prospect
* @property string $default_currency
* @property string|null $installed_app_version
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
*
* @method static \Database\Factories\Crm\ConfigurationFactory factory($count = null, $state = [])
*
* @property-read \Illuminate\Database\Eloquent\Collection<int, Account> $accounts
* @property-read int|null $accounts_count
* @property-read \Illuminate\Database\Eloquent\Collection<int, Activity> $activities
* @property-read int|null $activities_count
* @property-read \Illuminate\Database\Eloquent\Collection<int, \Jiminny\Models\Crm\BusinessProcess> $businessProcesses
* @property-read int|null $business_processes_count
* @property-read \Illuminate\Database\Eloquent\Collection<int, Contact> $contacts
* @property-read int|null $contacts_count
* @property-read \Illuminate\Database\Eloquent\Collection<int, \Jiminny\Models\Crm\Field> $fields
* @property-read int|null $fields_count
* @property-read string $id_string
* @property-read \Illuminate\Database\Eloquent\Collection<int, \Jiminny\Models\Crm\Layout> $layouts
* @property-read int|null $layouts_count
* @property-read \Illuminate\Database\Eloquent\Collection<int, Lead> $leads
* @property-read int|null $leads_count
* @property-read User|null $notifiableUser
* @property-read \Illuminate\Database\Eloquent\Collection<int, Opportunity> $opportunities
* @property-read int|null $opportunities_count
* @property-read \Jiminny\Models\Crm\Field|null $opportunityValueField
* @property-read \Illuminate\Database\Eloquent\Collection<int, \Jiminny\Models\Crm\Profile> $profiles
* @property-read int|null $profiles_count
* @property-read \Illuminate\Database\Eloquent\Collection<int, RateLimit> $rateLimits
* @property-read int|null $rate_limits_count
* @property-read \Illuminate\Database\Eloquent\Collection<int, \Jiminny\Models\Crm\RecordType> $recordTypes
* @property-read int|null $record_types_count
* @property-read \Illuminate\Database\Eloquent\Collection<int, Stage> $stages
* @property-read int|null $stages_count
* @property-read Team $team
* @property-read \Illuminate\Database\Eloquent\Collection<int, \Jiminny\Models\Crm\ContactRole> $contactRoles
* @property-read int|null $contact_roles_count
*
* @method static Builder|Configuration chunkByIdDesc($count, callable $callback, $column = null, $alias = null)
* @method static Builder|Configuration idOrUuId($idOrUuid, bool $first = true)
* @method static Builder|Configuration newModelQuery()
* @method static Builder|Configuration newQuery()
* @method static Builder|Configuration query()
* @method static Builder|Configuration uuid(string $uuid, bool $first = true)
* @method static Builder|Configuration whereApiDisabledAt($value)
* @method static Builder|Configuration whereAutoSyncActivity($value)
* @method static Builder|Configuration whereCreatedAt($value)
* @method static Builder|Configuration whereCrmBaseUrl($value)
* @method static Builder|Configuration whereCrmProviderId($value)
* @method static Builder|Configuration whereDefaultCurrency($value)
* @method static Builder|Configuration whereEdition($value)
* @method static Builder|Configuration whereId($value)
* @method static Builder|Configuration whereInstance($value)
* @method static Builder|Configuration whereIsSandbox($value)
* @method static Builder|Configuration whereLastSyncedAt($value)
* @method static Builder|Configuration whereNotifiableUserId($value)
* @method static Builder|Configuration whereOpportunityAssignmentRule($value)
* @method static Builder|Configuration whereOpportunityMaxAge($value)
* @method static Builder|Configuration whereOpportunityMaxValue($value)
* @method static Builder|Configuration whereOpportunityValueFieldId($value)
* @method static Builder|Configuration whereOverQuotaAt($value)
* @method static Builder|Configuration whereProvider($value)
* @method static Builder|Configuration whereSoftphoneOverrideProspect($value)
* @method static Builder|Configuration whereStoreTranscript($value)
* @method static Builder|Configuration whereSyncMetadata($value)
* @method static Builder|Configuration whereSyncObjects($value)
* @method static Builder|Configuration whereTeamId($value)
* @method static Builder|Configuration whereTriggerAssignmentRules($value)
* @method static Builder|Configuration whereUpdatedAt($value)
* @method static Builder|Configuration whereUuid($value)
* @method static Builder|Configuration whereVersion($value)
*
* @mixin \Eloquent
*/
class Configuration extends Model implements RateLimited
{
use RequiresUUID;
use Enums;
use HasFactory;
public const string PROVIDER_SALESFORCE = 'salesforce';
public const string PROVIDER_HUBSPOT = 'hubspot';
public const string PROVIDER_PIPEDRIVE = 'pipedrive';
public const string PROVIDER_COPPER = 'copper';
public const string PROVIDER_CLOSE = 'close';
public const string PROVIDER_BULLHORN = 'bullhorn';
public const string PROVIDER_INTEGRATION_APP = 'integration-app';
public const string EDITION_DEVELOPER = 'developer';
public const string EDITION_STARTER = 'starter';
public const string EDITION_PROFESSIONAL = 'professional';
public const string EDITION_ENTERPRISE = 'enterprise';
public const string OPP_ASSIGNMENT_ALL_OPEN_RECENTLY_UPDATED = 'open-recently-updated';
public const string OPP_ASSIGNMENT_ALL_OPEN_RECENTLY_CREATED = 'open-recently-created';
public const string OPP_ASSIGNMENT_ALL_RECENTLY_UPDATED = 'recently-updated';
public const string OPP_ASSIGNMENT_ALL_OPEN_OLDEST_CREATED = 'open-oldest-created';
/**
* @var string[]
*/
public static array $enumProviders = [
self::PROVIDER_SALESFORCE,
self::PROVIDER_HUBSPOT,
self::PROVIDER_PIPEDRIVE,
self::PROVIDER_COPPER,
self::PROVIDER_CLOSE,
self::PROVIDER_BULLHORN,
self::PROVIDER_INTEGRATION_APP,
];
/**
* @var string[]
*/
public array $enumOpportunityAssignmentRule = [
self::OPP_ASSIGNMENT_ALL_OPEN_RECENTLY_UPDATED,
self::OPP_ASSIGNMENT_ALL_OPEN_RECENTLY_CREATED,
self::OPP_ASSIGNMENT_ALL_RECENTLY_UPDATED,
self::OPP_ASSIGNMENT_ALL_OPEN_OLDEST_CREATED,
];
protected $table = 'crm_configurations';
protected $fillable = [
'team_id',
'notifiable_user_id',
'provider',
'crm_provider_id',
'crm_base_url',
'is_sandbox',
'edition',
'instance',
'version',
'sync_metadata',
'sync_objects',
'auto_sync_activity',
'last_synced_at',
'leads_synced_at',
'accounts_synced_at',
'contacts_synced_at',
'opportunities_synced_at',
'contact_roles_synced_at',
'over_quota_at',
'api_disabled_at',
'capabilities',
'opportunity_assignment_rule',
'opportunity_max_value',
'opportunity_max_age',
'opportunity_value_field_id',
'default_currency',
'trigger_assignment_rules',
'store_transcript',
'softphone_override_prospect',
'installed_app_version',
'settings',
];
protected $appends = [
'id_string',
];
protected $hidden = [
'uuid',
];
protected function casts(): array
{
return [
'last_synced_at' => 'datetime',
'leads_synced_at' => 'datetime',
'accounts_synced_at' => 'datetime',
'contacts_synced_at' => 'datetime',
'opportunities_synced_at' => 'datetime',
'contact_roles_synced_at' => 'datetime',
'over_quota_at' => 'datetime',
'api_disabled_at' => 'datetime',
'sync_metadata' => 'boolean',
'sync_objects' => 'boolean',
'is_sandbox' => 'boolean',
'opportunity_max_value' => 'decimal:2',
'opportunity_max_age' => 'integer',
'trigger_assignment_rules' => 'boolean',
'store_transcript' => 'boolean',
'softphone_override_prospect' => 'boolean',
'auto_sync_activity' => 'boolean',
'installed_app_version' => 'string',
'settings' => 'array',
];
}
/** @return BelongsTo<Team> */
public function team(): BelongsTo
{
return $this->belongsTo(Team::class);
}
public function notifiableUser(): BelongsTo
{
return $this->belongsTo(User::class);
}
public function opportunityValueField(): BelongsTo
{
return $this->belongsTo(Field::class);
}
public function profiles(): HasMany
{
return $this->hasMany(Profile::class, 'crm_configuration_id');
}
public function fields(): HasMany
{
return $this->hasMany(Field::class, 'crm_configuration_id');
}
public function layouts(): HasMany
{
return $this->hasMany(Layout::class, 'crm_configuration_id');
}
public function leads(): HasMany
{
return $this->hasMany(Lead::class, 'crm_configuration_id');
}
public function accounts(): HasMany
{
return $this->hasMany(Account::class, 'crm_configuration_id');
}
public function opportunities(): HasMany
{
return $this->hasMany(Opportunity::class, 'crm_configuration_id');
}
public function contacts(): HasMany
{
return $this->hasMany(Contact::class, 'crm_configuration_id');
}
public function activities(): HasMany
{
return $this->hasMany(Activity::class, 'crm_configuration_id');
}
public function stages(): HasMany
{
return $this->hasMany(Stage::class, 'crm_configuration_id');
}
public function businessProcesses(): HasMany
{
return $this->hasMany(BusinessProcess::class, 'crm_configuration_id');
}
public function recordTypes(): HasMany
{
return $this->hasMany(RecordType::class, 'crm_configuration_id');
}
public function rateLimits(): MorphMany
{
return $this->morphMany(RateLimit::class, 'limited');
}
public function contactRoles(): HasMany
{
return $this->hasMany(ContactRole::class);
}
/**
* @return Collection<RateLimit>
*/
public function getRateLimits(): Collection
{
return $this->rateLimits;
}
public function getId(): int
{
/** @var int */
return $this->getAttribute('id');
}
public function getOpportunityMaxAge(): int
{
return $this->getAttribute('opportunity_max_age');
}
public function getInstalledAppVersion(): ?string
{
return $this->getAttribute('installed_app_version');
}
public function getOpportunityMaxValue(): float
{
return $this->getAttribute('opportunity_max_value');
}
public function getProviderName(): string
{
return $this->getAttribute('provider');
}
public function isProviderName(string $providerName): bool
{
return $this->getProviderName() === $providerName;
}
public function getCrmProviderId(): ?string
{
return $this->getAttribute('crm_provider_id');
}
public function getTeam(): Team
{
return $this->getAttribute('team');
}
public function getTeamId(): int
{
return $this->getAttribute('team_id');
}
public function getBaseUrl(): ?string
{
return $this->getAttribute('crm_base_url');
}
public function getOpportunityAssignmentRule(): string
{
return $this->getAttribute('opportunity_assignment_rule');
}
public function getDefaultCurrency(): string
{
/** @var ?string $defaultCurrency */
$defaultCurrency = $this->getAttribute('default_currency');
return $defaultCurrency ?? Opportunity::DEFAULT_CURRENCY;
}
public function getDefaultCurrencyField(): ?Field
{
return $this->getAttribute('opportunityValueField');
}
public function hasDefaultCurrencyFieldSet(): bool
{
return $this->getAttribute('opportunityValueField') !== null;
}
/**
* @return Field[]
*/
public function findIndexableTaskFields(): array
{
return $this->fields()
->tasks()
->indexable()
->get()
->all()
;
}
public function findProfileByCrmProviderId(string $crmProviderId): ?Profile
{
return $this->profiles()->where('crm_provider_id', $crmProviderId)->first();
}
public function getSettings(): ?array
{
return $this->getAttribute('settings');
}
public function hasAutoSyncEnabled(): bool
{
return $this->getAttribute('auto_sync_activity') === true;
}
public function getEdition(): ?string
{
return $this->getAttribute('edition');
}
public function getEntitySyncedAt(string $entityType): \Carbon\CarbonInterface
{
$column = $this->getEntitySyncedAtColumn($entityType);
return $this->getAttribute($column) ?? $this->last_synced_at;
}
public function updateEntitySyncedAt(string $entityType, \Carbon\CarbonInterface $syncedAt): void
{
$column = $this->getEntitySyncedAtColumn($entityType);
if ($column !== null) {
$this->update([$column => $syncedAt]);
}
}
private function getEntitySyncedAtColumn(string $entityType): ?string
{
return match ($entityType) {
SyncBatch::ENTITY_TYPE_LEAD => 'leads_synced_at',
SyncBatch::ENTITY_TYPE_ACCOUNT => 'accounts_synced_at',
SyncBatch::ENTITY_TYPE_CONTACT => 'contacts_synced_at',
SyncBatch::ENTITY_TYPE_OPPORTUNITY => 'opportunities_synced_at',
SyncBatch::ENTITY_TYPE_CONTACT_ROLE => 'contact_roles_synced_at',
default => null,
};
}
protected static function newFactory(): Factory
{
return ConfigurationFactory::new();
}
public function getUuid(): string
{
return $this->getAttribute('id_string');
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app
.circleci
.cursor
.github
.sonarlint
.vscode
.windsurf
app, sources root
Actions
Component
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Exceptions, folder
Service, folder
BaseRateLimiter.php, class
EfficientJsonParser.php, class
ProviderRateLimiter.php, class
RateLimiterInstance.php, class
Uuid
Waveform
Webhooks
Workflow
Configuration
Console
Commands
Activities
Analytics...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Execute","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Explain Plan","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Browse Query History","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View Parameters","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open Query Execution Settings…","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"In-Editor Results","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Tx: Auto","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Cancel Running Statements","depth":4,"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Playground","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"jiminny","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"37","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"35","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"63","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"SELECT * FROM teams WHERE name LIKE '%litify%'; # 1069, 994, 24993\nSELECT * FROM users WHERE id = 25061;\nSELECT * FROM crm_profiles WHERE crm_configuration_id = 994;\nSELECT * FROM crm_profiles WHERE user_id = 25061;\n\nselect * from crm_configurations where id = 834;\nSELECT * FROM teams WHERE id = 882;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 882 and sa.provider = 'hubspot';\n\nSELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal\nSELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 933 and sa.provider = 'hubspot';\n\nSELECT * FROM crm_configurations WHERE provider = 'hubspot' and crm_provider_id = 7270388;\n\nSELECT * FROM contacts where crm_configuration_id = 834;\nSELECT * FROM opportunities WHERE team_id = 933\n# AND crm_provider_id IN ('20131586060','46017317898','52543911090','53451356564','54101251892','54323768459');\nAND id IN (8482561,18352941,19042734,19232139,19445140,19472541);\nSELECT * FROM opportunity_contacts\nWHERE opportunity_id IN (8482561,18352941,19042734,19232139,19445140,19472541);\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 485; #\nSELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 933 and sa.provider = 'hubspot';\n\nselect crm.provider, l.* from leads l join crm_configurations crm on l.crm_configuration_id = crm.id\nwhere crm.provider NOT IN ('salesforce', 'integration-app', 'bullhorn', 'copper')\n# and l.converted_at IS NOT NULL\n;\n\n# ********************************************************************\nSELECT * FROM activities a WHERE type IN ('email-inbound', 'email-outbound')\nand opportunity_id IS NULL\norder by id desc;\n\nSELECT * FROM teams WHERE id = 604; # 598\nSELECT * FROM activities WHERE id = 74410828; # chelseaw@allvoices.co\nSELECT * FROM accounts WHERE id = 20068382;\nSELECT * FROM accounts WHERE id = 35186038;\n\nSELECT * FROM contacts WHERE team_id = 852 and updated_at > '2026-01-23 12:30:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 559 and sa.provider = 'hubspot';\n\nSELECT * FROM activities WHERE uuid_to_bin('cb6342b6-a183-401c-b0af-ede92b2ae763') = uuid;\nselect * from sidekick_settings where team_id = 781;\n\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 26651871; # Teya\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 7562435;\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8420347; # opflit 2100\n\nSELECT * FROM crm_layouts WHERE crm_configuration_id = 711;\nSELECT * FROM activities where crm_configuration_id = 711 and crm_provider_id IS NULL\nand is_internal = 0 and status = 'completed'\norder by id desc;\n\nSELECT * FROM crm_layout_entities\nWHERE crm_layout_id IN (2352, 2353);\n;\n\nSELECT * FROM crm_configurations where provider = 'hubspot' and id = 530;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 556 and sa.provider = 'hubspot';\n\nSELECT * FROM activities WHERE uuid_to_bin('c6ca4b22-7738-4563-a95d-b8a9598924ae') = uuid;\nSELECT * FROM activities WHERE uuid_to_bin('442abb2b-28bd-4be8-9c25-19e9bf02766d') = uuid;\nselect * from contacts\nwhere crm_configuration_id = 530\nand crm_provider_id = 872252;\n\nselect * from activities where crm_configuration_id = 530\nand user_id = 14343 and type like '%softphone%'\nand created_at between '2026-01-28 15:00:00' and '2026-01-28 15:10:00';\n\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 25666868; # Teya\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8646335; # Teya\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id IN (5933397);\n\n\nSELECT t.name, t.id, t.owner_id, c.id, c.provider, c.crm_base_url FROM teams t\nJOIN crm_configurations c ON t.id = c.team_id\nWHERE t.status = 'active';\n\nSELECT * FROM teams where id = 1091;\nSELECT * FROM crm_configurations where team_id = 1091;\nSELECT * FROM activity_providers where team_id = 1091;\nSELECT * FROM activities where crm_configuration_id = 1024 and type IN ('softphone', 'softphone-outbound')\nand provider NOT IN ('hubspot', 'aircall')\n# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'\norder by id desc;\n\n\nSELECT * FROM teams WHERE name LIKE '%Leadventure%';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1091 and sa.provider = 'salesforce';\n\nSELECT * FROM teams WHERE name LIKE '%Wilson%'; # 862, 812\nSELECT * FROM teams where id = 862;\nSELECT * FROM crm_configurations where team_id = 862;\nSELECT * FROM activity_providers where team_id = 862;\nSELECT * FROM activities where crm_configuration_id = 812 and type IN ('softphone', 'softphone-outbound')\nand provider NOT IN ('hubspot', 'aircall')\n# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'\norder by id desc;\n\n\nSELECT t.id, crm.id, crm.provider, ap.* FROM teams t\njoin crm_configurations crm on t.id = crm.team_id\njoin activity_providers ap on t.id = ap.team_id\nwhere t.status = 'active' and ap.is_enabled = 1\nand crm.provider = 'hubspot'\nand ap.provider NOT IN ('hubspot', 'aircall', 'uploader', 'gong', 'twilio', 'zoom-bot', 'google-meet', 'ms-teams',\n 'outreach', 'close', 'ringcentral', 'dialpad', 'zoom-phone');\n\nSELECT * FROM teams where id = 1068;\nSELECT * FROM crm_configurations where team_id = 1068;\nSELECT * FROM activity_providers where team_id = 1068;\n\nSELECT * FROM activities a\nwhere crm_configuration_id = 993 and type IN ('softphone', 'softphone-outbound')\nand a.provider NOT IN ('hubspot', 'uploader', 'gong', 'twilio', 'google-meet', 'ms-teams','close'\n )\n# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'\norder by a.id desc;\n\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1068 and sa.provider = 'hubspot';\n\n# ********************************************************************\n# ********************************************************************\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal , portalId: 6017093\nSELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-06 00:00:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 933 and sa.provider = 'hubspot';\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 834; # 882 - AnyVan , portalId: 5468262\nSELECT * FROM contacts WHERE crm_configuration_id = 834 and updated_at > '2026-03-30 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE crm_configuration_id = 834 and updated_at > '2026-03-04 08:00:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 882 and sa.provider = 'hubspot';\nselect * from crm_layouts where crm_configuration_id = 834;\nselect * from crm_layout_entities where crm_layout_id = 2780;\nselect * from crm_fields where id IN (321153,321192,321193,321194);\n\nSELECT * FROM opportunities WHERE crm_configuration_id = 834 and id = 10993426;\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 988; # 1057 - Teya (543ce4f4-168c-4571-91ea-5b35c253f06f) , portalId: 26651871\nSELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1057 and sa.provider = 'hubspot';\n\nSELECT * FROM crm_configurations where id = 533; # 559 - Connectd , portalId: 6710988\nSELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 801; # 852 - Rise Vision , portalId: 2700250\nSELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-04 00:00:00' order by updated_at desc; # 6th last\n\nSELECT * FROM crm_configurations where id = 962; # 1034 - evergrowth.io , portalId: 143180990\nSELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 1037; # 1102 - Jibble , portalId: 6649755\nSELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 8\n\nSELECT * FROM crm_configurations where id = 1015; # 1049 - Travefy , portalId: 48904401\nSELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 20\n\nSELECT * FROM crm_configurations where id = 64; # 70 - SalaryFinance , portalId: 3404115\nSELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 6th last\n\nSELECT * FROM crm_configurations where id = 802; # 853 - Street Group , portalId: 7658438\nSELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 10\n\nSELECT * FROM crm_configurations where id = 872; # 921 - In Professional Development , portalId: 9238273\nSELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 2\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 550; # 576 - SeedLegals , portalId: 3028661\nSELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 989; # 1058 - rtaoutdoor.com , portalId: 22371204\nSELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 896; # 946 - Mintago , portalId: 6621281\nSELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 617; # 641 - PCS , portalId: 5244937\nSELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-05 14:00:00' order by updated_at desc; # 7th\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 649; # 670 - Eventeny , portalId: 4492849\nSELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; #\n\nSELECT * FROM crm_configurations where id = 48; # 51 - CleanCloud , portalId: 4373137\nSELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-03-04 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-02-09 08:00:00' order by updated_at desc;\nselect * from users where team_id = 51; # 7783\nSELECT * FROM groups WHERE uuid_to_bin('8a8d2cb6-8b55-4fa3-8b5c-5f0e3d8de59a') = uuid; # 1130\nselect * from activity_searches where user_id = 7783;\nselect * from activity_search_filters where activity_search_id IN (32291, 32292);\n\nSELECT asf.activity_search_id, asf.id, asf.value\nFROM activity_search_filters asf\nWHERE asf.filter = 'group_id'\nAND asf.value IN (\n SELECT CONCAT(\n HEX(SUBSTR(uuid, 5, 4)), '-',\n HEX(SUBSTR(uuid, 3, 2)), '-',\n HEX(SUBSTR(uuid, 1, 2)), '-',\n HEX(SUBSTR(uuid, 9, 2)), '-',\n HEX(SUBSTR(uuid, 11))\n )\n FROM groups\n WHERE deleted_at IS NOT NULL\n);\n\nSELECT * FROM crm_configurations where id = 272; # 290 - Bonham & Brook , portalId: 5705856\nSELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-05 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; # 6th\n# ********************************************************************\nSELECT * FROM crm_configurations where provider = 'hubspot';\nSELECT * FROM crm_configurations where id = 1056; # 1119 - Chromatic , portalId: 45602133\nSELECT * FROM opportunities WHERE team_id = 1119 and remotely_created_at > '2026-02-01 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1119 and updated_at > '2026-02-09 09:00:00' order by updated_at desc; # null\n# ********************************************************************\n\nselect * from contacts where crm_provider_id = '003Uu00000ojD4NIAU';\nselect\n cp.*\n# DISTINCT t.id\n# cp.id, cp.user_id, t.id, cp.crm_configuration_id, cp.contact_fields\nFROM crm_profiles cp\nJOIN crm_configurations crm on crm.id = cp.crm_configuration_id\nJOIN users u on u.id = cp.user_id\nJOIN teams t ON t.id = crm.team_id\nWHERE crm.provider = 'salesforce' and t.status = 'active'\n and cp.archived_at IS NULL and u.deleted_at IS NULL\n and t.id NOT IN (1093)\n and t.id = 2\n and cp.contact_fields IS NULL;\n# and c.crm_provider_id = '003Uu00000ojD4NIAU';\n\nSELECT * FROM users WHERE id = 26484;\nSELECT * FROM crm_profiles WHERE user_id = 26484;\nSELECT * FROM social_accounts WHERE sociable_id = 26484;\nSELECT * FROM crm_configurations where provider = 'salesforce';\nselect * from users where id IN (10022, 10403);\nselect * from users where team_id IN (526);\nselect * from teams where id IN (526, 532);\nselect * from crm_configurations where id IN (500, 516);\nselect * from crm_profiles where crm_configuration_id IN (500, 516) and user_id IN (10022, 10403);\nselect * from contacts where crm_configuration_id IN (500, 516) and crm_provider_id = '003Uu00000ojD4NIAU';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 526 and sa.provider = 'salesforce';\nselect * from team_settings where team_id IN (526, 532);\n\nselect * from users where id IN (22824);\nselect * from crm_profiles where crm_configuration_id IN (1026);\n\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1093 and sa.provider = 'salesforce';\n\nselect * from teams where id = 1099;\nselect * from users where id = 29643\n\nselect * from activity_processing_states;\n\nSELECT * FROM teams where name LIKE '%Fare%'; # 233\nSELECT * FROM opportunities where crm_configuration_id = 215\n# and crm_provider_id = 'oppo_ogESZf2P50nDrd1nGPvKDXeA6sSaTN5v51Lp4ayVzKR'\n;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1088 and sa.provider = 'hubspot';\n\nSELECT * FROM teams order by updated_at DESC\nSELECT * FROM crm_configurations WHERE id = 1019; # SimpleConsign 1088 - no social account\n\nselect * from crm_configurations where provider = 'pipedrive';\n\nselect * from teams where id = 957;\nselect * from crm_configurations where id = 957;\n\nSELECT * FROM teams WHERE name LIKE '%Prolific%'; # 544, 518, 10743\nSELECT * FROM opportunities where crm_configuration_id = 518 order by id desc;\n\nselect * from users where team_id = 1; # 26726 - Gabriela Dureva\nSELECT * FROM opportunities where user_id = 26726; # 16834447 - Prolific\nselect * from activities where user_id = 26726 order by id desc;\nselect * from contacts where crm_configuration_id = 1\nand email IN ('charlotte.ward@prolific.com', 'frankie.bryant@prolific.com'); # 2094416, 2093620\nSELECT * FROM contacts WHERE id = 6284931;\n\nSELECT p.* FROM activities a JOIN participants p ON a.id = p.activity_id\nWHERE a.user_id = 26726 and p.lead_id IN (2094416, 2093620) and a.created_at > '2026-01-01 00:00:00' order by p.email;\n\nselect * from activities where id IN (75509259,75509261,75509261,75511034,75026464,75517602,75517605);\nselect * from crm_configurations where id = 1;\n\n43801692-1aeb-32ce-acba-5b80a479701a\n44c3c9cf-6f5e-75f3-8179-bc9f75dd2b1b\n405975c0-b3d0-7aaa-821f-09d59cae6dd1\n4caf848d-4bed-2299-b248-7788d41f9fca\n49bedc3f-f196-eef3-89c3-dea6a3b4aa63\n43420989-a09d-b8f8-9806-c8bbf7a02aac\n\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1 and sa.provider = 'salesforce';\n\nSELECT * FROM activities WHERE id = 75461988;\n\nSELECT * FROM activities WHERE uuid_to_bin('d6c5052e-e972-49e9-8912-26f2f7d6c5f6') = uuid;\n\nselect * from contacts where id = 17900517;\n\nselect * from contact_roles cr join crm_configurations crm on cr.crm_configuration_id = crm.id\nwhere crm.provider != 'salesforce';\n\nselect * from users where id = 21047;\nSELECT * FROM crm_configurations WHERE id = 892;\nSELECT * FROM teams WHERE id = 942;\nselect * from opportunities where team_id = 942 order by updated_at desc;\nselect * from contacts where team_id = 942 order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 942 and sa.provider = 'hubspot';\n\nSELECT * FROM opportunities where team_id = 1 and crm_provider_id IN ('006Pq00000NeH6XIAV', '006Pq000007z8kdIAA'); # 10697889, 6621430\nSELECT * FROM crm_configurations WHERE id = 1;\nSELECT * FROM teams WHERE crm_id = 1;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1 and sa.provider = 'salesforce';\n\nselect id, user_id, opportunity_fields from crm_profiles where crm_configuration_id = 1\nSELECT * FROM opportunities where team_id = 1 order by updated_at desc; # 10697889, 6621430\n\nselect * from teams where id = 852;\nselect * from groups where id = 2286;\nselect * from sidekick_settings where team_id = 852;\nselect * from default_activity_types where team_id = 852;\n\n\nSELECT cc.provider, cc.id, p.id, u.*\nFROM users u\nLEFT JOIN crm_profiles p ON u.id = p.user_id AND p.id IS NULL -- no profile\nINNER JOIN teams t ON u.team_id = t.id AND t.status = 'active' -- team is active\nINNER JOIN crm_configurations cc ON t.crm_id = cc.id\nWHERE u.status = 1 AND u.deleted_at IS NULL\nAND u.crm_required = 1\nAND u.team_id = 1\nORDER BY u.team_id;\n\nSELECT * FROM crm_profiles cp where cp.crm_configuration_id = 1 and cp.user_id IN (\n18481\n );\n\nSELECT cc.provider, cc.id, p.id, u.*\nFROM users u\nLEFT JOIN crm_profiles p ON u.id = p.user_id\nINNER JOIN teams t ON u.team_id = t.id AND t.status = 'active'\nINNER JOIN crm_configurations cc ON t.crm_id = cc.id\nWHERE u.status = 1\n AND u.deleted_at IS NULL\n AND u.crm_required = 1\n# AND u.team_id = 1\n AND p.id IS NULL -- Move this condition to WHERE clause\nORDER BY u.team_id;\n\nSELECT * FROM opportunities WHERE id = 20002609;\nselect * from teams where id = 1122; # Velatir, 29953 - christian@velatir.com\nselect * from crm_configurations where id = 1060;\nselect * from crm_layouts where crm_configuration_id = 1060;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 3596;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1122 and sa.provider = 'hubspot';\nselect * from opportunities where team_id = 1122 order by updated_at desc;\n\nselect * from crm_field_data where object_type = 'contact';\n\nSELECT * FROM activities WHERE uuid_to_bin('374fc8ed-3315-4c9f-9b25-318b7fd2928f') = uuid; # 76584262\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 248 and sa.provider = 'salesforce';\n\nSELECT * FROM crm_profiles where user_id = 24115; # 005QF000002CswMYAS\nSELECT * FROM users where id = 24115;\nSELECT * FROM accounts where id = 4002896;\nSELECT * FROM teams WHERE name LIKE '%adswerve%';\nSELECT * FROM opportunities where crm_configuration_id = 230 AND crm_provider_id IN (\"0069N000003GIQ9QAO\",\"0061r000019yGP9AAM\",\"0066900001S2KWlAAN\",\"0066900001TDpj2AAD\",\"0066900001b8uEwAAI\",\"0069N000001rQi0QAE\",\"006QF00000KD40mYAD\",\"006QF00000LzpRJYAZ\",\"0069N000002uomtQAA\",\"0069N000002xlMLQAY\",\"0066900001NV6ubAAD\",\"0061r00001HJp45AAD\",\"006QF00000uTlUoYAK\",\"006QF00000v0bZqYAI\");\nSELECT * FROM opportunities WHERE crm_configuration_id = 230 AND crm_provider_id = '0069N000003GIQ9QAO'; # 6272203\n\nSELECT u.id, u.email, ac.name, a.* FROM activities a\nJOIN users u ON a.user_id = u.id\nJOIN accounts ac ON a.account_id = ac.id\nWHERE\nuuid_to_bin('e3269598-b562-44fb-b5e9-9d2694dc63e0') = a.uuid or\nuuid_to_bin('66ddc3ab-4e15-45aa-af0c-248c1eece593') = a.uuid or\nuuid_to_bin('826bd328-e1cc-4213-b8d8-572454cacc07') = a.uuid;\n\nselect * from users where id = 5825;\nSELECT * FROM activities WHERE uuid_to_bin('e56aa2e8-231a-421b-ab1f-cb38ed2bf573') = uuid;\n\nselect * from activities where uuid_to_bin('91e13b2f-2d1b-45f8-b1fd-1141b6563782') = uuid;\n19594, 862\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 862 and sa.provider = 'salesforce';\n\nselect * from automated_reports where id = 36;\nselect ar.frequency, r.*, ar.* from automated_report_results r\njoin automated_reports ar on r.report_id = ar.id\nwhere ar.frequency != 'one_off';\n\nselect s.* from activity_searches s join users u ON s.user_id = u.id where u.team_id = 882;\nselect * from nudges n where n.activity_search_id\n\nselect * from teams where created_at > '2026-03-09';\nSELECT * FROM crm_layouts WHERE crm_configuration_id = 1065; # 1065\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 3617;\n\nselect * from users where team_id = 1 and name like '%Lukas%'; # 7160\n\nSELECT * FROM teams WHERE id = 575;\nselect * from opportunities where team_id = 575;\nSELECT * FROM teams WHERE name LIKE '%Integrum ESG%'; # 1126, 1065,\nselect * from opportunities where team_id = 1126;\nSELECT * FROM teams WHERE name LIKE '%Base%'; # 1125, 1063,\nselect * from opportunities where team_id = 1125;\nselect * from contacts c\nwhere c.team_id = 882;\n\nSELECT * FROM activities WHERE id = 76822967;\nSELECT * FROM crm_profiles WHERE user_id = 15440;\nSELECT * FROM crm_profiles WHERE crm_configuration_id = 555;\nSELECT * FROM crm_configurations WHERE id = 555;\nSELECT * FROM users WHERE id = 15440; # team. 581, gr. 15440, pl. 3911, act. field 162182\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 581 and sa.provider = 'salesforce';\n\nSELECT * FROM automated_report_results order by id desc;\n\nselect * from features;\nselect * from team_features where feature_id = 40;\n\nselect * from teams where id = 556;\n\nselect * from automated_reports;\nwhere id = 54; # 4fdd41f6-dcf0-30d0-b339-7345381b6044 , [\"pdf\",\"podcast\"]\nSELECT * FROM automated_report_results WHERE uuid_to_bin('822fa41b-afd3-43a9-a248-86b0e36f3131') = uuid;\nselect * from automated_report_results order by id desc;\nSELECT * FROM automated_report_results WHERE id = 1919;\n\nselect * from automated_report_results WHERE report_id = 54;\n\nselect * from opportunities where id = 7594349;\n\nSELECT * FROM teams WHERE name LIKE '%Les%'; # 711, 692, 16067 - jiminnyintegration@lesmills.com\nselect * from playbooks where team_id = 711; # event 226147\nSELECT * FROM playbook_categories WHERE playbook_id = 5515;\nSELECT * FROM crm_fields WHERE crm_configuration_id = 692 and object_type = 'event';\nSELECT * FROM crm_fields WHERE id = 226147;\nSELECT * FROM crm_field_values WHERE crm_field_id = 226147;\n\nSELECT * FROM crm_configurations WHERE id = 692;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 711 and sa.provider = 'salesforce';\n\nSELECT * FROM crm_profiles cp JOIN users u on u.id = cp.user_id WHERE u.team_id = 711;\n\nselect * from leads;\n\nselect * from calendars;\n\nSELECT\n t.id AS team_id,\n t.name,\n LOWER(SUBSTRING_INDEX(c.calendar_provider_id, '@', -1)) AS calendar_domain\nFROM teams t\nJOIN users u ON u.team_id = t.id\nJOIN calendars c ON c.user_id = u.id AND c.status = 'active' AND c.calendar_provider_id LIKE '%@%'\nLEFT JOIN team_domains td\n ON td.team_id = t.id\n AND td.deleted_at IS NULL\n AND td.domain = LOWER(SUBSTRING_INDEX(c.calendar_provider_id, '@', -1))\nGROUP BY t.id, t.name, calendar_domain\nORDER BY t.name, calendar_domain;\n\nselect * from users u join calendars c on c.user_id = u.id\nwhere u.team_id = 882;\n\n\nselect * from activities where id = 74049485; # team 563 crm 537\nselect * from activities where id = 73272382; # team 563 crm 537\nselect * from activities where id = 64400389; # team 563 crm 537\nselect * from activities where id = 58081273; # team 563 crm 537\nselect * from activities where id = 54520297; # team 563 crm 537\nselect * from participants where activity_id = 58081273;\n\nselect * from activities where crm_configuration_id = 537 and provider = 'aircall'\nand account_id = 19003658 order by updated_at desc;\n\nselect * from contacts where crm_configuration_id = 537 and id = 35957759;\nselect * from accounts where crm_configuration_id = 537 and id = 19003658;\n\nselect * from automated_report_results where id = 1976;\nselect * from automated_reports where id = 583;\nselect * from activity_searches where id = 87714;\nselect * from activity_search_filters where activity_search_id = 87714;\n\nSELECT * FROM activities WHERE uuid_to_bin('8827f672-202d-4162-9d04-73ff5f0566a9') = uuid\nor uuid_to_bin('47842446-af51-4bcb-854f-cc6560290101') = uuid;","depth":4,"on_screen":true,"value":"SELECT * FROM teams WHERE name LIKE '%litify%'; # 1069, 994, 24993\nSELECT * FROM users WHERE id = 25061;\nSELECT * FROM crm_profiles WHERE crm_configuration_id = 994;\nSELECT * FROM crm_profiles WHERE user_id = 25061;\n\nselect * from crm_configurations where id = 834;\nSELECT * FROM teams WHERE id = 882;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 882 and sa.provider = 'hubspot';\n\nSELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal\nSELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 933 and sa.provider = 'hubspot';\n\nSELECT * FROM crm_configurations WHERE provider = 'hubspot' and crm_provider_id = 7270388;\n\nSELECT * FROM contacts where crm_configuration_id = 834;\nSELECT * FROM opportunities WHERE team_id = 933\n# AND crm_provider_id IN ('20131586060','46017317898','52543911090','53451356564','54101251892','54323768459');\nAND id IN (8482561,18352941,19042734,19232139,19445140,19472541);\nSELECT * FROM opportunity_contacts\nWHERE opportunity_id IN (8482561,18352941,19042734,19232139,19445140,19472541);\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 485; #\nSELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 933 and sa.provider = 'hubspot';\n\nselect crm.provider, l.* from leads l join crm_configurations crm on l.crm_configuration_id = crm.id\nwhere crm.provider NOT IN ('salesforce', 'integration-app', 'bullhorn', 'copper')\n# and l.converted_at IS NOT NULL\n;\n\n# ********************************************************************\nSELECT * FROM activities a WHERE type IN ('email-inbound', 'email-outbound')\nand opportunity_id IS NULL\norder by id desc;\n\nSELECT * FROM teams WHERE id = 604; # 598\nSELECT * FROM activities WHERE id = 74410828; # chelseaw@allvoices.co\nSELECT * FROM accounts WHERE id = 20068382;\nSELECT * FROM accounts WHERE id = 35186038;\n\nSELECT * FROM contacts WHERE team_id = 852 and updated_at > '2026-01-23 12:30:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 559 and sa.provider = 'hubspot';\n\nSELECT * FROM activities WHERE uuid_to_bin('cb6342b6-a183-401c-b0af-ede92b2ae763') = uuid;\nselect * from sidekick_settings where team_id = 781;\n\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 26651871; # Teya\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 7562435;\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8420347; # opflit 2100\n\nSELECT * FROM crm_layouts WHERE crm_configuration_id = 711;\nSELECT * FROM activities where crm_configuration_id = 711 and crm_provider_id IS NULL\nand is_internal = 0 and status = 'completed'\norder by id desc;\n\nSELECT * FROM crm_layout_entities\nWHERE crm_layout_id IN (2352, 2353);\n;\n\nSELECT * FROM crm_configurations where provider = 'hubspot' and id = 530;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 556 and sa.provider = 'hubspot';\n\nSELECT * FROM activities WHERE uuid_to_bin('c6ca4b22-7738-4563-a95d-b8a9598924ae') = uuid;\nSELECT * FROM activities WHERE uuid_to_bin('442abb2b-28bd-4be8-9c25-19e9bf02766d') = uuid;\nselect * from contacts\nwhere crm_configuration_id = 530\nand crm_provider_id = 872252;\n\nselect * from activities where crm_configuration_id = 530\nand user_id = 14343 and type like '%softphone%'\nand created_at between '2026-01-28 15:00:00' and '2026-01-28 15:10:00';\n\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 25666868; # Teya\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8646335; # Teya\nSELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id IN (5933397);\n\n\nSELECT t.name, t.id, t.owner_id, c.id, c.provider, c.crm_base_url FROM teams t\nJOIN crm_configurations c ON t.id = c.team_id\nWHERE t.status = 'active';\n\nSELECT * FROM teams where id = 1091;\nSELECT * FROM crm_configurations where team_id = 1091;\nSELECT * FROM activity_providers where team_id = 1091;\nSELECT * FROM activities where crm_configuration_id = 1024 and type IN ('softphone', 'softphone-outbound')\nand provider NOT IN ('hubspot', 'aircall')\n# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'\norder by id desc;\n\n\nSELECT * FROM teams WHERE name LIKE '%Leadventure%';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1091 and sa.provider = 'salesforce';\n\nSELECT * FROM teams WHERE name LIKE '%Wilson%'; # 862, 812\nSELECT * FROM teams where id = 862;\nSELECT * FROM crm_configurations where team_id = 862;\nSELECT * FROM activity_providers where team_id = 862;\nSELECT * FROM activities where crm_configuration_id = 812 and type IN ('softphone', 'softphone-outbound')\nand provider NOT IN ('hubspot', 'aircall')\n# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'\norder by id desc;\n\n\nSELECT t.id, crm.id, crm.provider, ap.* FROM teams t\njoin crm_configurations crm on t.id = crm.team_id\njoin activity_providers ap on t.id = ap.team_id\nwhere t.status = 'active' and ap.is_enabled = 1\nand crm.provider = 'hubspot'\nand ap.provider NOT IN ('hubspot', 'aircall', 'uploader', 'gong', 'twilio', 'zoom-bot', 'google-meet', 'ms-teams',\n 'outreach', 'close', 'ringcentral', 'dialpad', 'zoom-phone');\n\nSELECT * FROM teams where id = 1068;\nSELECT * FROM crm_configurations where team_id = 1068;\nSELECT * FROM activity_providers where team_id = 1068;\n\nSELECT * FROM activities a\nwhere crm_configuration_id = 993 and type IN ('softphone', 'softphone-outbound')\nand a.provider NOT IN ('hubspot', 'uploader', 'gong', 'twilio', 'google-meet', 'ms-teams','close'\n )\n# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'\norder by a.id desc;\n\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1068 and sa.provider = 'hubspot';\n\n# ********************************************************************\n# ********************************************************************\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal , portalId: 6017093\nSELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-06 00:00:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 933 and sa.provider = 'hubspot';\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 834; # 882 - AnyVan , portalId: 5468262\nSELECT * FROM contacts WHERE crm_configuration_id = 834 and updated_at > '2026-03-30 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE crm_configuration_id = 834 and updated_at > '2026-03-04 08:00:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 882 and sa.provider = 'hubspot';\nselect * from crm_layouts where crm_configuration_id = 834;\nselect * from crm_layout_entities where crm_layout_id = 2780;\nselect * from crm_fields where id IN (321153,321192,321193,321194);\n\nSELECT * FROM opportunities WHERE crm_configuration_id = 834 and id = 10993426;\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 988; # 1057 - Teya (543ce4f4-168c-4571-91ea-5b35c253f06f) , portalId: 26651871\nSELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1057 and sa.provider = 'hubspot';\n\nSELECT * FROM crm_configurations where id = 533; # 559 - Connectd , portalId: 6710988\nSELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 801; # 852 - Rise Vision , portalId: 2700250\nSELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-04 00:00:00' order by updated_at desc; # 6th last\n\nSELECT * FROM crm_configurations where id = 962; # 1034 - evergrowth.io , portalId: 143180990\nSELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 1037; # 1102 - Jibble , portalId: 6649755\nSELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 8\n\nSELECT * FROM crm_configurations where id = 1015; # 1049 - Travefy , portalId: 48904401\nSELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 20\n\nSELECT * FROM crm_configurations where id = 64; # 70 - SalaryFinance , portalId: 3404115\nSELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 6th last\n\nSELECT * FROM crm_configurations where id = 802; # 853 - Street Group , portalId: 7658438\nSELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 10\n\nSELECT * FROM crm_configurations where id = 872; # 921 - In Professional Development , portalId: 9238273\nSELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 2\n\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 550; # 576 - SeedLegals , portalId: 3028661\nSELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 989; # 1058 - rtaoutdoor.com , portalId: 22371204\nSELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 896; # 946 - Mintago , portalId: 6621281\nSELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;\n\nSELECT * FROM crm_configurations where id = 617; # 641 - PCS , portalId: 5244937\nSELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-05 14:00:00' order by updated_at desc; # 7th\n# ********************************************************************\nSELECT * FROM crm_configurations where id = 649; # 670 - Eventeny , portalId: 4492849\nSELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; #\n\nSELECT * FROM crm_configurations where id = 48; # 51 - CleanCloud , portalId: 4373137\nSELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-03-04 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-02-09 08:00:00' order by updated_at desc;\nselect * from users where team_id = 51; # 7783\nSELECT * FROM groups WHERE uuid_to_bin('8a8d2cb6-8b55-4fa3-8b5c-5f0e3d8de59a') = uuid; # 1130\nselect * from activity_searches where user_id = 7783;\nselect * from activity_search_filters where activity_search_id IN (32291, 32292);\n\nSELECT asf.activity_search_id, asf.id, asf.value\nFROM activity_search_filters asf\nWHERE asf.filter = 'group_id'\nAND asf.value IN (\n SELECT CONCAT(\n HEX(SUBSTR(uuid, 5, 4)), '-',\n HEX(SUBSTR(uuid, 3, 2)), '-',\n HEX(SUBSTR(uuid, 1, 2)), '-',\n HEX(SUBSTR(uuid, 9, 2)), '-',\n HEX(SUBSTR(uuid, 11))\n )\n FROM groups\n WHERE deleted_at IS NOT NULL\n);\n\nSELECT * FROM crm_configurations where id = 272; # 290 - Bonham & Brook , portalId: 5705856\nSELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-05 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; # 6th\n# ********************************************************************\nSELECT * FROM crm_configurations where provider = 'hubspot';\nSELECT * FROM crm_configurations where id = 1056; # 1119 - Chromatic , portalId: 45602133\nSELECT * FROM opportunities WHERE team_id = 1119 and remotely_created_at > '2026-02-01 00:00:00' order by updated_at desc;\nSELECT * FROM opportunities WHERE team_id = 1119 and updated_at > '2026-02-09 09:00:00' order by updated_at desc; # null\n# ********************************************************************\n\nselect * from contacts where crm_provider_id = '003Uu00000ojD4NIAU';\nselect\n cp.*\n# DISTINCT t.id\n# cp.id, cp.user_id, t.id, cp.crm_configuration_id, cp.contact_fields\nFROM crm_profiles cp\nJOIN crm_configurations crm on crm.id = cp.crm_configuration_id\nJOIN users u on u.id = cp.user_id\nJOIN teams t ON t.id = crm.team_id\nWHERE crm.provider = 'salesforce' and t.status = 'active'\n and cp.archived_at IS NULL and u.deleted_at IS NULL\n and t.id NOT IN (1093)\n and t.id = 2\n and cp.contact_fields IS NULL;\n# and c.crm_provider_id = '003Uu00000ojD4NIAU';\n\nSELECT * FROM users WHERE id = 26484;\nSELECT * FROM crm_profiles WHERE user_id = 26484;\nSELECT * FROM social_accounts WHERE sociable_id = 26484;\nSELECT * FROM crm_configurations where provider = 'salesforce';\nselect * from users where id IN (10022, 10403);\nselect * from users where team_id IN (526);\nselect * from teams where id IN (526, 532);\nselect * from crm_configurations where id IN (500, 516);\nselect * from crm_profiles where crm_configuration_id IN (500, 516) and user_id IN (10022, 10403);\nselect * from contacts where crm_configuration_id IN (500, 516) and crm_provider_id = '003Uu00000ojD4NIAU';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 526 and sa.provider = 'salesforce';\nselect * from team_settings where team_id IN (526, 532);\n\nselect * from users where id IN (22824);\nselect * from crm_profiles where crm_configuration_id IN (1026);\n\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1093 and sa.provider = 'salesforce';\n\nselect * from teams where id = 1099;\nselect * from users where id = 29643\n\nselect * from activity_processing_states;\n\nSELECT * FROM teams where name LIKE '%Fare%'; # 233\nSELECT * FROM opportunities where crm_configuration_id = 215\n# and crm_provider_id = 'oppo_ogESZf2P50nDrd1nGPvKDXeA6sSaTN5v51Lp4ayVzKR'\n;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1088 and sa.provider = 'hubspot';\n\nSELECT * FROM teams order by updated_at DESC\nSELECT * FROM crm_configurations WHERE id = 1019; # SimpleConsign 1088 - no social account\n\nselect * from crm_configurations where provider = 'pipedrive';\n\nselect * from teams where id = 957;\nselect * from crm_configurations where id = 957;\n\nSELECT * FROM teams WHERE name LIKE '%Prolific%'; # 544, 518, 10743\nSELECT * FROM opportunities where crm_configuration_id = 518 order by id desc;\n\nselect * from users where team_id = 1; # 26726 - Gabriela Dureva\nSELECT * FROM opportunities where user_id = 26726; # 16834447 - Prolific\nselect * from activities where user_id = 26726 order by id desc;\nselect * from contacts where crm_configuration_id = 1\nand email IN ('charlotte.ward@prolific.com', 'frankie.bryant@prolific.com'); # 2094416, 2093620\nSELECT * FROM contacts WHERE id = 6284931;\n\nSELECT p.* FROM activities a JOIN participants p ON a.id = p.activity_id\nWHERE a.user_id = 26726 and p.lead_id IN (2094416, 2093620) and a.created_at > '2026-01-01 00:00:00' order by p.email;\n\nselect * from activities where id IN (75509259,75509261,75509261,75511034,75026464,75517602,75517605);\nselect * from crm_configurations where id = 1;\n\n43801692-1aeb-32ce-acba-5b80a479701a\n44c3c9cf-6f5e-75f3-8179-bc9f75dd2b1b\n405975c0-b3d0-7aaa-821f-09d59cae6dd1\n4caf848d-4bed-2299-b248-7788d41f9fca\n49bedc3f-f196-eef3-89c3-dea6a3b4aa63\n43420989-a09d-b8f8-9806-c8bbf7a02aac\n\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1 and sa.provider = 'salesforce';\n\nSELECT * FROM activities WHERE id = 75461988;\n\nSELECT * FROM activities WHERE uuid_to_bin('d6c5052e-e972-49e9-8912-26f2f7d6c5f6') = uuid;\n\nselect * from contacts where id = 17900517;\n\nselect * from contact_roles cr join crm_configurations crm on cr.crm_configuration_id = crm.id\nwhere crm.provider != 'salesforce';\n\nselect * from users where id = 21047;\nSELECT * FROM crm_configurations WHERE id = 892;\nSELECT * FROM teams WHERE id = 942;\nselect * from opportunities where team_id = 942 order by updated_at desc;\nselect * from contacts where team_id = 942 order by updated_at desc;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 942 and sa.provider = 'hubspot';\n\nSELECT * FROM opportunities where team_id = 1 and crm_provider_id IN ('006Pq00000NeH6XIAV', '006Pq000007z8kdIAA'); # 10697889, 6621430\nSELECT * FROM crm_configurations WHERE id = 1;\nSELECT * FROM teams WHERE crm_id = 1;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1 and sa.provider = 'salesforce';\n\nselect id, user_id, opportunity_fields from crm_profiles where crm_configuration_id = 1\nSELECT * FROM opportunities where team_id = 1 order by updated_at desc; # 10697889, 6621430\n\nselect * from teams where id = 852;\nselect * from groups where id = 2286;\nselect * from sidekick_settings where team_id = 852;\nselect * from default_activity_types where team_id = 852;\n\n\nSELECT cc.provider, cc.id, p.id, u.*\nFROM users u\nLEFT JOIN crm_profiles p ON u.id = p.user_id AND p.id IS NULL -- no profile\nINNER JOIN teams t ON u.team_id = t.id AND t.status = 'active' -- team is active\nINNER JOIN crm_configurations cc ON t.crm_id = cc.id\nWHERE u.status = 1 AND u.deleted_at IS NULL\nAND u.crm_required = 1\nAND u.team_id = 1\nORDER BY u.team_id;\n\nSELECT * FROM crm_profiles cp where cp.crm_configuration_id = 1 and cp.user_id IN (\n18481\n );\n\nSELECT cc.provider, cc.id, p.id, u.*\nFROM users u\nLEFT JOIN crm_profiles p ON u.id = p.user_id\nINNER JOIN teams t ON u.team_id = t.id AND t.status = 'active'\nINNER JOIN crm_configurations cc ON t.crm_id = cc.id\nWHERE u.status = 1\n AND u.deleted_at IS NULL\n AND u.crm_required = 1\n# AND u.team_id = 1\n AND p.id IS NULL -- Move this condition to WHERE clause\nORDER BY u.team_id;\n\nSELECT * FROM opportunities WHERE id = 20002609;\nselect * from teams where id = 1122; # Velatir, 29953 - christian@velatir.com\nselect * from crm_configurations where id = 1060;\nselect * from crm_layouts where crm_configuration_id = 1060;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 3596;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 1122 and sa.provider = 'hubspot';\nselect * from opportunities where team_id = 1122 order by updated_at desc;\n\nselect * from crm_field_data where object_type = 'contact';\n\nSELECT * FROM activities WHERE uuid_to_bin('374fc8ed-3315-4c9f-9b25-318b7fd2928f') = uuid; # 76584262\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 248 and sa.provider = 'salesforce';\n\nSELECT * FROM crm_profiles where user_id = 24115; # 005QF000002CswMYAS\nSELECT * FROM users where id = 24115;\nSELECT * FROM accounts where id = 4002896;\nSELECT * FROM teams WHERE name LIKE '%adswerve%';\nSELECT * FROM opportunities where crm_configuration_id = 230 AND crm_provider_id IN (\"0069N000003GIQ9QAO\",\"0061r000019yGP9AAM\",\"0066900001S2KWlAAN\",\"0066900001TDpj2AAD\",\"0066900001b8uEwAAI\",\"0069N000001rQi0QAE\",\"006QF00000KD40mYAD\",\"006QF00000LzpRJYAZ\",\"0069N000002uomtQAA\",\"0069N000002xlMLQAY\",\"0066900001NV6ubAAD\",\"0061r00001HJp45AAD\",\"006QF00000uTlUoYAK\",\"006QF00000v0bZqYAI\");\nSELECT * FROM opportunities WHERE crm_configuration_id = 230 AND crm_provider_id = '0069N000003GIQ9QAO'; # 6272203\n\nSELECT u.id, u.email, ac.name, a.* FROM activities a\nJOIN users u ON a.user_id = u.id\nJOIN accounts ac ON a.account_id = ac.id\nWHERE\nuuid_to_bin('e3269598-b562-44fb-b5e9-9d2694dc63e0') = a.uuid or\nuuid_to_bin('66ddc3ab-4e15-45aa-af0c-248c1eece593') = a.uuid or\nuuid_to_bin('826bd328-e1cc-4213-b8d8-572454cacc07') = a.uuid;\n\nselect * from users where id = 5825;\nSELECT * FROM activities WHERE uuid_to_bin('e56aa2e8-231a-421b-ab1f-cb38ed2bf573') = uuid;\n\nselect * from activities where uuid_to_bin('91e13b2f-2d1b-45f8-b1fd-1141b6563782') = uuid;\n19594, 862\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 862 and sa.provider = 'salesforce';\n\nselect * from automated_reports where id = 36;\nselect ar.frequency, r.*, ar.* from automated_report_results r\njoin automated_reports ar on r.report_id = ar.id\nwhere ar.frequency != 'one_off';\n\nselect s.* from activity_searches s join users u ON s.user_id = u.id where u.team_id = 882;\nselect * from nudges n where n.activity_search_id\n\nselect * from teams where created_at > '2026-03-09';\nSELECT * FROM crm_layouts WHERE crm_configuration_id = 1065; # 1065\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 3617;\n\nselect * from users where team_id = 1 and name like '%Lukas%'; # 7160\n\nSELECT * FROM teams WHERE id = 575;\nselect * from opportunities where team_id = 575;\nSELECT * FROM teams WHERE name LIKE '%Integrum ESG%'; # 1126, 1065,\nselect * from opportunities where team_id = 1126;\nSELECT * FROM teams WHERE name LIKE '%Base%'; # 1125, 1063,\nselect * from opportunities where team_id = 1125;\nselect * from contacts c\nwhere c.team_id = 882;\n\nSELECT * FROM activities WHERE id = 76822967;\nSELECT * FROM crm_profiles WHERE user_id = 15440;\nSELECT * FROM crm_profiles WHERE crm_configuration_id = 555;\nSELECT * FROM crm_configurations WHERE id = 555;\nSELECT * FROM users WHERE id = 15440; # team. 581, gr. 15440, pl. 3911, act. field 162182\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 581 and sa.provider = 'salesforce';\n\nSELECT * FROM automated_report_results order by id desc;\n\nselect * from features;\nselect * from team_features where feature_id = 40;\n\nselect * from teams where id = 556;\n\nselect * from automated_reports;\nwhere id = 54; # 4fdd41f6-dcf0-30d0-b339-7345381b6044 , [\"pdf\",\"podcast\"]\nSELECT * FROM automated_report_results WHERE uuid_to_bin('822fa41b-afd3-43a9-a248-86b0e36f3131') = uuid;\nselect * from automated_report_results order by id desc;\nSELECT * FROM automated_report_results WHERE id = 1919;\n\nselect * from automated_report_results WHERE report_id = 54;\n\nselect * from opportunities where id = 7594349;\n\nSELECT * FROM teams WHERE name LIKE '%Les%'; # 711, 692, 16067 - jiminnyintegration@lesmills.com\nselect * from playbooks where team_id = 711; # event 226147\nSELECT * FROM playbook_categories WHERE playbook_id = 5515;\nSELECT * FROM crm_fields WHERE crm_configuration_id = 692 and object_type = 'event';\nSELECT * FROM crm_fields WHERE id = 226147;\nSELECT * FROM crm_field_values WHERE crm_field_id = 226147;\n\nSELECT * FROM crm_configurations WHERE id = 692;\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 711 and sa.provider = 'salesforce';\n\nSELECT * FROM crm_profiles cp JOIN users u on u.id = cp.user_id WHERE u.team_id = 711;\n\nselect * from leads;\n\nselect * from calendars;\n\nSELECT\n t.id AS team_id,\n t.name,\n LOWER(SUBSTRING_INDEX(c.calendar_provider_id, '@', -1)) AS calendar_domain\nFROM teams t\nJOIN users u ON u.team_id = t.id\nJOIN calendars c ON c.user_id = u.id AND c.status = 'active' AND c.calendar_provider_id LIKE '%@%'\nLEFT JOIN team_domains td\n ON td.team_id = t.id\n AND td.deleted_at IS NULL\n AND td.domain = LOWER(SUBSTRING_INDEX(c.calendar_provider_id, '@', -1))\nGROUP BY t.id, t.name, calendar_domain\nORDER BY t.name, calendar_domain;\n\nselect * from users u join calendars c on c.user_id = u.id\nwhere u.team_id = 882;\n\n\nselect * from activities where id = 74049485; # team 563 crm 537\nselect * from activities where id = 73272382; # team 563 crm 537\nselect * from activities where id = 64400389; # team 563 crm 537\nselect * from activities where id = 58081273; # team 563 crm 537\nselect * from activities where id = 54520297; # team 563 crm 537\nselect * from participants where activity_id = 58081273;\n\nselect * from activities where crm_configuration_id = 537 and provider = 'aircall'\nand account_id = 19003658 order by updated_at desc;\n\nselect * from contacts where crm_configuration_id = 537 and id = 35957759;\nselect * from accounts where crm_configuration_id = 537 and id = 19003658;\n\nselect * from automated_report_results where id = 1976;\nselect * from automated_reports where id = 583;\nselect * from activity_searches where id = 87714;\nselect * from activity_search_filters where activity_search_id = 87714;\n\nSELECT * FROM activities WHERE uuid_to_bin('8827f672-202d-4162-9d04-73ff5f0566a9') = uuid\nor uuid_to_bin('47842446-af51-4bcb-854f-cc6560290101') = uuid;","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"25","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"4","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Models\\Crm;\n\nuse Database\\Factories\\Crm\\ConfigurationFactory;\nuse Illuminate\\Database\\Eloquent\\Factories\\Factory;\nuse Illuminate\\Database\\Eloquent\\Factories\\HasFactory;\nuse Illuminate\\Database\\Eloquent\\Relations\\BelongsTo;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Illuminate\\Support\\Collection;\nuse Jiminny\\Component\\Eloquent\\Builder;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Models\\Account;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Contact;\nuse Jiminny\\Models\\Lead;\nuse Jiminny\\Models\\Model;\nuse Jiminny\\Models\\Opportunity;\nuse Jiminny\\Models\\RateLimit;\nuse Jiminny\\Models\\Stage;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Traits\\Enums;\nuse Jiminny\\Traits\\RequiresUUID;\n\n/**\n * Jiminny\\Models\\Crm\\Configuration\n *\n * @property int $id\n * @property mixed|null $uuid\n * @property int $team_id\n * @property int|null $notifiable_user_id\n * @property string $provider\n * @property string|null $edition\n * @property string|null $instance\n * @property bool $is_sandbox\n * @property string|null $version\n * @property bool $sync_metadata\n * @property bool $sync_objects\n * @property bool $auto_sync_activity\n * @property string|null $crm_provider_id\n * @property string|null $crm_base_url\n * @property \\Illuminate\\Support\\Carbon $last_synced_at\n * @property \\Illuminate\\Support\\Carbon|null $leads_synced_at\n * @property \\Illuminate\\Support\\Carbon|null $accounts_synced_at\n * @property \\Illuminate\\Support\\Carbon|null $contacts_synced_at\n * @property \\Illuminate\\Support\\Carbon|null $opportunities_synced_at\n * @property \\Illuminate\\Support\\Carbon|null $contact_roles_synced_at\n * @property \\Illuminate\\Support\\Carbon|null $over_quota_at\n * @property \\Illuminate\\Support\\Carbon|null $api_disabled_at\n * @property string $opportunity_assignment_rule\n * @property string $opportunity_max_value\n * @property int $opportunity_max_age\n * @property int|null $opportunity_value_field_id\n * @property bool $trigger_assignment_rules\n * @property bool $store_transcript\n * @property bool $softphone_override_prospect\n * @property string $default_currency\n * @property string|null $installed_app_version\n * @property \\Illuminate\\Support\\Carbon|null $created_at\n * @property \\Illuminate\\Support\\Carbon|null $updated_at\n *\n * @method static \\Database\\Factories\\Crm\\ConfigurationFactory factory($count = null, $state = [])\n *\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, Account> $accounts\n * @property-read int|null $accounts_count\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, Activity> $activities\n * @property-read int|null $activities_count\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, \\Jiminny\\Models\\Crm\\BusinessProcess> $businessProcesses\n * @property-read int|null $business_processes_count\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, Contact> $contacts\n * @property-read int|null $contacts_count\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, \\Jiminny\\Models\\Crm\\Field> $fields\n * @property-read int|null $fields_count\n * @property-read string $id_string\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, \\Jiminny\\Models\\Crm\\Layout> $layouts\n * @property-read int|null $layouts_count\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, Lead> $leads\n * @property-read int|null $leads_count\n * @property-read User|null $notifiableUser\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, Opportunity> $opportunities\n * @property-read int|null $opportunities_count\n * @property-read \\Jiminny\\Models\\Crm\\Field|null $opportunityValueField\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, \\Jiminny\\Models\\Crm\\Profile> $profiles\n * @property-read int|null $profiles_count\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, RateLimit> $rateLimits\n * @property-read int|null $rate_limits_count\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, \\Jiminny\\Models\\Crm\\RecordType> $recordTypes\n * @property-read int|null $record_types_count\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, Stage> $stages\n * @property-read int|null $stages_count\n * @property-read Team $team\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, \\Jiminny\\Models\\Crm\\ContactRole> $contactRoles\n * @property-read int|null $contact_roles_count\n *\n * @method static Builder|Configuration chunkByIdDesc($count, callable $callback, $column = null, $alias = null)\n * @method static Builder|Configuration idOrUuId($idOrUuid, bool $first = true)\n * @method static Builder|Configuration newModelQuery()\n * @method static Builder|Configuration newQuery()\n * @method static Builder|Configuration query()\n * @method static Builder|Configuration uuid(string $uuid, bool $first = true)\n * @method static Builder|Configuration whereApiDisabledAt($value)\n * @method static Builder|Configuration whereAutoSyncActivity($value)\n * @method static Builder|Configuration whereCreatedAt($value)\n * @method static Builder|Configuration whereCrmBaseUrl($value)\n * @method static Builder|Configuration whereCrmProviderId($value)\n * @method static Builder|Configuration whereDefaultCurrency($value)\n * @method static Builder|Configuration whereEdition($value)\n * @method static Builder|Configuration whereId($value)\n * @method static Builder|Configuration whereInstance($value)\n * @method static Builder|Configuration whereIsSandbox($value)\n * @method static Builder|Configuration whereLastSyncedAt($value)\n * @method static Builder|Configuration whereNotifiableUserId($value)\n * @method static Builder|Configuration whereOpportunityAssignmentRule($value)\n * @method static Builder|Configuration whereOpportunityMaxAge($value)\n * @method static Builder|Configuration whereOpportunityMaxValue($value)\n * @method static Builder|Configuration whereOpportunityValueFieldId($value)\n * @method static Builder|Configuration whereOverQuotaAt($value)\n * @method static Builder|Configuration whereProvider($value)\n * @method static Builder|Configuration whereSoftphoneOverrideProspect($value)\n * @method static Builder|Configuration whereStoreTranscript($value)\n * @method static Builder|Configuration whereSyncMetadata($value)\n * @method static Builder|Configuration whereSyncObjects($value)\n * @method static Builder|Configuration whereTeamId($value)\n * @method static Builder|Configuration whereTriggerAssignmentRules($value)\n * @method static Builder|Configuration whereUpdatedAt($value)\n * @method static Builder|Configuration whereUuid($value)\n * @method static Builder|Configuration whereVersion($value)\n *\n * @mixin \\Eloquent\n */\nclass Configuration extends Model implements RateLimited\n{\n use RequiresUUID;\n use Enums;\n use HasFactory;\n\n public const string PROVIDER_SALESFORCE = 'salesforce';\n public const string PROVIDER_HUBSPOT = 'hubspot';\n public const string PROVIDER_PIPEDRIVE = 'pipedrive';\n public const string PROVIDER_COPPER = 'copper';\n public const string PROVIDER_CLOSE = 'close';\n public const string PROVIDER_BULLHORN = 'bullhorn';\n public const string PROVIDER_INTEGRATION_APP = 'integration-app';\n\n public const string EDITION_DEVELOPER = 'developer';\n public const string EDITION_STARTER = 'starter';\n public const string EDITION_PROFESSIONAL = 'professional';\n public const string EDITION_ENTERPRISE = 'enterprise';\n\n public const string OPP_ASSIGNMENT_ALL_OPEN_RECENTLY_UPDATED = 'open-recently-updated';\n public const string OPP_ASSIGNMENT_ALL_OPEN_RECENTLY_CREATED = 'open-recently-created';\n public const string OPP_ASSIGNMENT_ALL_RECENTLY_UPDATED = 'recently-updated';\n public const string OPP_ASSIGNMENT_ALL_OPEN_OLDEST_CREATED = 'open-oldest-created';\n\n /**\n * @var string[]\n */\n public static array $enumProviders = [\n self::PROVIDER_SALESFORCE,\n self::PROVIDER_HUBSPOT,\n self::PROVIDER_PIPEDRIVE,\n self::PROVIDER_COPPER,\n self::PROVIDER_CLOSE,\n self::PROVIDER_BULLHORN,\n self::PROVIDER_INTEGRATION_APP,\n ];\n\n /**\n * @var string[]\n */\n public array $enumOpportunityAssignmentRule = [\n self::OPP_ASSIGNMENT_ALL_OPEN_RECENTLY_UPDATED,\n self::OPP_ASSIGNMENT_ALL_OPEN_RECENTLY_CREATED,\n self::OPP_ASSIGNMENT_ALL_RECENTLY_UPDATED,\n self::OPP_ASSIGNMENT_ALL_OPEN_OLDEST_CREATED,\n ];\n\n protected $table = 'crm_configurations';\n\n protected $fillable = [\n 'team_id',\n 'notifiable_user_id',\n 'provider',\n 'crm_provider_id',\n 'crm_base_url',\n 'is_sandbox',\n 'edition',\n 'instance',\n 'version',\n 'sync_metadata',\n 'sync_objects',\n 'auto_sync_activity',\n 'last_synced_at',\n 'leads_synced_at',\n 'accounts_synced_at',\n 'contacts_synced_at',\n 'opportunities_synced_at',\n 'contact_roles_synced_at',\n 'over_quota_at',\n 'api_disabled_at',\n 'capabilities',\n 'opportunity_assignment_rule',\n 'opportunity_max_value',\n 'opportunity_max_age',\n 'opportunity_value_field_id',\n 'default_currency',\n 'trigger_assignment_rules',\n 'store_transcript',\n 'softphone_override_prospect',\n 'installed_app_version',\n 'settings',\n ];\n\n protected $appends = [\n 'id_string',\n ];\n\n protected $hidden = [\n 'uuid',\n ];\n\n protected function casts(): array\n {\n return [\n 'last_synced_at' => 'datetime',\n 'leads_synced_at' => 'datetime',\n 'accounts_synced_at' => 'datetime',\n 'contacts_synced_at' => 'datetime',\n 'opportunities_synced_at' => 'datetime',\n 'contact_roles_synced_at' => 'datetime',\n 'over_quota_at' => 'datetime',\n 'api_disabled_at' => 'datetime',\n 'sync_metadata' => 'boolean',\n 'sync_objects' => 'boolean',\n 'is_sandbox' => 'boolean',\n 'opportunity_max_value' => 'decimal:2',\n 'opportunity_max_age' => 'integer',\n 'trigger_assignment_rules' => 'boolean',\n 'store_transcript' => 'boolean',\n 'softphone_override_prospect' => 'boolean',\n 'auto_sync_activity' => 'boolean',\n 'installed_app_version' => 'string',\n 'settings' => 'array',\n ];\n }\n\n /** @return BelongsTo<Team> */\n public function team(): BelongsTo\n {\n return $this->belongsTo(Team::class);\n }\n\n public function notifiableUser(): BelongsTo\n {\n return $this->belongsTo(User::class);\n }\n\n public function opportunityValueField(): BelongsTo\n {\n return $this->belongsTo(Field::class);\n }\n\n public function profiles(): HasMany\n {\n return $this->hasMany(Profile::class, 'crm_configuration_id');\n }\n\n public function fields(): HasMany\n {\n return $this->hasMany(Field::class, 'crm_configuration_id');\n }\n\n public function layouts(): HasMany\n {\n return $this->hasMany(Layout::class, 'crm_configuration_id');\n }\n\n public function leads(): HasMany\n {\n return $this->hasMany(Lead::class, 'crm_configuration_id');\n }\n\n public function accounts(): HasMany\n {\n return $this->hasMany(Account::class, 'crm_configuration_id');\n }\n\n public function opportunities(): HasMany\n {\n return $this->hasMany(Opportunity::class, 'crm_configuration_id');\n }\n\n public function contacts(): HasMany\n {\n return $this->hasMany(Contact::class, 'crm_configuration_id');\n }\n\n public function activities(): HasMany\n {\n return $this->hasMany(Activity::class, 'crm_configuration_id');\n }\n\n public function stages(): HasMany\n {\n return $this->hasMany(Stage::class, 'crm_configuration_id');\n }\n\n public function businessProcesses(): HasMany\n {\n return $this->hasMany(BusinessProcess::class, 'crm_configuration_id');\n }\n\n public function recordTypes(): HasMany\n {\n return $this->hasMany(RecordType::class, 'crm_configuration_id');\n }\n\n public function rateLimits(): MorphMany\n {\n return $this->morphMany(RateLimit::class, 'limited');\n }\n\n public function contactRoles(): HasMany\n {\n return $this->hasMany(ContactRole::class);\n }\n\n /**\n * @return Collection<RateLimit>\n */\n public function getRateLimits(): Collection\n {\n return $this->rateLimits;\n }\n\n public function getId(): int\n {\n /** @var int */\n return $this->getAttribute('id');\n }\n\n public function getOpportunityMaxAge(): int\n {\n return $this->getAttribute('opportunity_max_age');\n }\n\n public function getInstalledAppVersion(): ?string\n {\n return $this->getAttribute('installed_app_version');\n }\n\n public function getOpportunityMaxValue(): float\n {\n return $this->getAttribute('opportunity_max_value');\n }\n\n public function getProviderName(): string\n {\n return $this->getAttribute('provider');\n }\n\n public function isProviderName(string $providerName): bool\n {\n return $this->getProviderName() === $providerName;\n }\n\n public function getCrmProviderId(): ?string\n {\n return $this->getAttribute('crm_provider_id');\n }\n\n public function getTeam(): Team\n {\n return $this->getAttribute('team');\n }\n\n public function getTeamId(): int\n {\n return $this->getAttribute('team_id');\n }\n\n public function getBaseUrl(): ?string\n {\n return $this->getAttribute('crm_base_url');\n }\n\n public function getOpportunityAssignmentRule(): string\n {\n return $this->getAttribute('opportunity_assignment_rule');\n }\n\n public function getDefaultCurrency(): string\n {\n /** @var ?string $defaultCurrency */\n $defaultCurrency = $this->getAttribute('default_currency');\n\n return $defaultCurrency ?? Opportunity::DEFAULT_CURRENCY;\n }\n\n public function getDefaultCurrencyField(): ?Field\n {\n return $this->getAttribute('opportunityValueField');\n }\n\n public function hasDefaultCurrencyFieldSet(): bool\n {\n return $this->getAttribute('opportunityValueField') !== null;\n }\n\n /**\n * @return Field[]\n */\n public function findIndexableTaskFields(): array\n {\n return $this->fields()\n ->tasks()\n ->indexable()\n ->get()\n ->all()\n ;\n }\n\n public function findProfileByCrmProviderId(string $crmProviderId): ?Profile\n {\n return $this->profiles()->where('crm_provider_id', $crmProviderId)->first();\n }\n\n public function getSettings(): ?array\n {\n return $this->getAttribute('settings');\n }\n\n public function hasAutoSyncEnabled(): bool\n {\n return $this->getAttribute('auto_sync_activity') === true;\n }\n\n public function getEdition(): ?string\n {\n return $this->getAttribute('edition');\n }\n\n public function getEntitySyncedAt(string $entityType): \\Carbon\\CarbonInterface\n {\n $column = $this->getEntitySyncedAtColumn($entityType);\n\n return $this->getAttribute($column) ?? $this->last_synced_at;\n }\n\n public function updateEntitySyncedAt(string $entityType, \\Carbon\\CarbonInterface $syncedAt): void\n {\n $column = $this->getEntitySyncedAtColumn($entityType);\n\n if ($column !== null) {\n $this->update([$column => $syncedAt]);\n }\n }\n\n private function getEntitySyncedAtColumn(string $entityType): ?string\n {\n return match ($entityType) {\n SyncBatch::ENTITY_TYPE_LEAD => 'leads_synced_at',\n SyncBatch::ENTITY_TYPE_ACCOUNT => 'accounts_synced_at',\n SyncBatch::ENTITY_TYPE_CONTACT => 'contacts_synced_at',\n SyncBatch::ENTITY_TYPE_OPPORTUNITY => 'opportunities_synced_at',\n SyncBatch::ENTITY_TYPE_CONTACT_ROLE => 'contact_roles_synced_at',\n default => null,\n };\n }\n\n protected static function newFactory(): Factory\n {\n return ConfigurationFactory::new();\n }\n\n public function getUuid(): string\n {\n return $this->getAttribute('id_string');\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Models\\Crm;\n\nuse Database\\Factories\\Crm\\ConfigurationFactory;\nuse Illuminate\\Database\\Eloquent\\Factories\\Factory;\nuse Illuminate\\Database\\Eloquent\\Factories\\HasFactory;\nuse Illuminate\\Database\\Eloquent\\Relations\\BelongsTo;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Illuminate\\Support\\Collection;\nuse Jiminny\\Component\\Eloquent\\Builder;\nuse Jiminny\\Contracts\\Http\\RateLimited;\nuse Jiminny\\Models\\Account;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Contact;\nuse Jiminny\\Models\\Lead;\nuse Jiminny\\Models\\Model;\nuse Jiminny\\Models\\Opportunity;\nuse Jiminny\\Models\\RateLimit;\nuse Jiminny\\Models\\Stage;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Traits\\Enums;\nuse Jiminny\\Traits\\RequiresUUID;\n\n/**\n * Jiminny\\Models\\Crm\\Configuration\n *\n * @property int $id\n * @property mixed|null $uuid\n * @property int $team_id\n * @property int|null $notifiable_user_id\n * @property string $provider\n * @property string|null $edition\n * @property string|null $instance\n * @property bool $is_sandbox\n * @property string|null $version\n * @property bool $sync_metadata\n * @property bool $sync_objects\n * @property bool $auto_sync_activity\n * @property string|null $crm_provider_id\n * @property string|null $crm_base_url\n * @property \\Illuminate\\Support\\Carbon $last_synced_at\n * @property \\Illuminate\\Support\\Carbon|null $leads_synced_at\n * @property \\Illuminate\\Support\\Carbon|null $accounts_synced_at\n * @property \\Illuminate\\Support\\Carbon|null $contacts_synced_at\n * @property \\Illuminate\\Support\\Carbon|null $opportunities_synced_at\n * @property \\Illuminate\\Support\\Carbon|null $contact_roles_synced_at\n * @property \\Illuminate\\Support\\Carbon|null $over_quota_at\n * @property \\Illuminate\\Support\\Carbon|null $api_disabled_at\n * @property string $opportunity_assignment_rule\n * @property string $opportunity_max_value\n * @property int $opportunity_max_age\n * @property int|null $opportunity_value_field_id\n * @property bool $trigger_assignment_rules\n * @property bool $store_transcript\n * @property bool $softphone_override_prospect\n * @property string $default_currency\n * @property string|null $installed_app_version\n * @property \\Illuminate\\Support\\Carbon|null $created_at\n * @property \\Illuminate\\Support\\Carbon|null $updated_at\n *\n * @method static \\Database\\Factories\\Crm\\ConfigurationFactory factory($count = null, $state = [])\n *\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, Account> $accounts\n * @property-read int|null $accounts_count\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, Activity> $activities\n * @property-read int|null $activities_count\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, \\Jiminny\\Models\\Crm\\BusinessProcess> $businessProcesses\n * @property-read int|null $business_processes_count\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, Contact> $contacts\n * @property-read int|null $contacts_count\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, \\Jiminny\\Models\\Crm\\Field> $fields\n * @property-read int|null $fields_count\n * @property-read string $id_string\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, \\Jiminny\\Models\\Crm\\Layout> $layouts\n * @property-read int|null $layouts_count\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, Lead> $leads\n * @property-read int|null $leads_count\n * @property-read User|null $notifiableUser\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, Opportunity> $opportunities\n * @property-read int|null $opportunities_count\n * @property-read \\Jiminny\\Models\\Crm\\Field|null $opportunityValueField\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, \\Jiminny\\Models\\Crm\\Profile> $profiles\n * @property-read int|null $profiles_count\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, RateLimit> $rateLimits\n * @property-read int|null $rate_limits_count\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, \\Jiminny\\Models\\Crm\\RecordType> $recordTypes\n * @property-read int|null $record_types_count\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, Stage> $stages\n * @property-read int|null $stages_count\n * @property-read Team $team\n * @property-read \\Illuminate\\Database\\Eloquent\\Collection<int, \\Jiminny\\Models\\Crm\\ContactRole> $contactRoles\n * @property-read int|null $contact_roles_count\n *\n * @method static Builder|Configuration chunkByIdDesc($count, callable $callback, $column = null, $alias = null)\n * @method static Builder|Configuration idOrUuId($idOrUuid, bool $first = true)\n * @method static Builder|Configuration newModelQuery()\n * @method static Builder|Configuration newQuery()\n * @method static Builder|Configuration query()\n * @method static Builder|Configuration uuid(string $uuid, bool $first = true)\n * @method static Builder|Configuration whereApiDisabledAt($value)\n * @method static Builder|Configuration whereAutoSyncActivity($value)\n * @method static Builder|Configuration whereCreatedAt($value)\n * @method static Builder|Configuration whereCrmBaseUrl($value)\n * @method static Builder|Configuration whereCrmProviderId($value)\n * @method static Builder|Configuration whereDefaultCurrency($value)\n * @method static Builder|Configuration whereEdition($value)\n * @method static Builder|Configuration whereId($value)\n * @method static Builder|Configuration whereInstance($value)\n * @method static Builder|Configuration whereIsSandbox($value)\n * @method static Builder|Configuration whereLastSyncedAt($value)\n * @method static Builder|Configuration whereNotifiableUserId($value)\n * @method static Builder|Configuration whereOpportunityAssignmentRule($value)\n * @method static Builder|Configuration whereOpportunityMaxAge($value)\n * @method static Builder|Configuration whereOpportunityMaxValue($value)\n * @method static Builder|Configuration whereOpportunityValueFieldId($value)\n * @method static Builder|Configuration whereOverQuotaAt($value)\n * @method static Builder|Configuration whereProvider($value)\n * @method static Builder|Configuration whereSoftphoneOverrideProspect($value)\n * @method static Builder|Configuration whereStoreTranscript($value)\n * @method static Builder|Configuration whereSyncMetadata($value)\n * @method static Builder|Configuration whereSyncObjects($value)\n * @method static Builder|Configuration whereTeamId($value)\n * @method static Builder|Configuration whereTriggerAssignmentRules($value)\n * @method static Builder|Configuration whereUpdatedAt($value)\n * @method static Builder|Configuration whereUuid($value)\n * @method static Builder|Configuration whereVersion($value)\n *\n * @mixin \\Eloquent\n */\nclass Configuration extends Model implements RateLimited\n{\n use RequiresUUID;\n use Enums;\n use HasFactory;\n\n public const string PROVIDER_SALESFORCE = 'salesforce';\n public const string PROVIDER_HUBSPOT = 'hubspot';\n public const string PROVIDER_PIPEDRIVE = 'pipedrive';\n public const string PROVIDER_COPPER = 'copper';\n public const string PROVIDER_CLOSE = 'close';\n public const string PROVIDER_BULLHORN = 'bullhorn';\n public const string PROVIDER_INTEGRATION_APP = 'integration-app';\n\n public const string EDITION_DEVELOPER = 'developer';\n public const string EDITION_STARTER = 'starter';\n public const string EDITION_PROFESSIONAL = 'professional';\n public const string EDITION_ENTERPRISE = 'enterprise';\n\n public const string OPP_ASSIGNMENT_ALL_OPEN_RECENTLY_UPDATED = 'open-recently-updated';\n public const string OPP_ASSIGNMENT_ALL_OPEN_RECENTLY_CREATED = 'open-recently-created';\n public const string OPP_ASSIGNMENT_ALL_RECENTLY_UPDATED = 'recently-updated';\n public const string OPP_ASSIGNMENT_ALL_OPEN_OLDEST_CREATED = 'open-oldest-created';\n\n /**\n * @var string[]\n */\n public static array $enumProviders = [\n self::PROVIDER_SALESFORCE,\n self::PROVIDER_HUBSPOT,\n self::PROVIDER_PIPEDRIVE,\n self::PROVIDER_COPPER,\n self::PROVIDER_CLOSE,\n self::PROVIDER_BULLHORN,\n self::PROVIDER_INTEGRATION_APP,\n ];\n\n /**\n * @var string[]\n */\n public array $enumOpportunityAssignmentRule = [\n self::OPP_ASSIGNMENT_ALL_OPEN_RECENTLY_UPDATED,\n self::OPP_ASSIGNMENT_ALL_OPEN_RECENTLY_CREATED,\n self::OPP_ASSIGNMENT_ALL_RECENTLY_UPDATED,\n self::OPP_ASSIGNMENT_ALL_OPEN_OLDEST_CREATED,\n ];\n\n protected $table = 'crm_configurations';\n\n protected $fillable = [\n 'team_id',\n 'notifiable_user_id',\n 'provider',\n 'crm_provider_id',\n 'crm_base_url',\n 'is_sandbox',\n 'edition',\n 'instance',\n 'version',\n 'sync_metadata',\n 'sync_objects',\n 'auto_sync_activity',\n 'last_synced_at',\n 'leads_synced_at',\n 'accounts_synced_at',\n 'contacts_synced_at',\n 'opportunities_synced_at',\n 'contact_roles_synced_at',\n 'over_quota_at',\n 'api_disabled_at',\n 'capabilities',\n 'opportunity_assignment_rule',\n 'opportunity_max_value',\n 'opportunity_max_age',\n 'opportunity_value_field_id',\n 'default_currency',\n 'trigger_assignment_rules',\n 'store_transcript',\n 'softphone_override_prospect',\n 'installed_app_version',\n 'settings',\n ];\n\n protected $appends = [\n 'id_string',\n ];\n\n protected $hidden = [\n 'uuid',\n ];\n\n protected function casts(): array\n {\n return [\n 'last_synced_at' => 'datetime',\n 'leads_synced_at' => 'datetime',\n 'accounts_synced_at' => 'datetime',\n 'contacts_synced_at' => 'datetime',\n 'opportunities_synced_at' => 'datetime',\n 'contact_roles_synced_at' => 'datetime',\n 'over_quota_at' => 'datetime',\n 'api_disabled_at' => 'datetime',\n 'sync_metadata' => 'boolean',\n 'sync_objects' => 'boolean',\n 'is_sandbox' => 'boolean',\n 'opportunity_max_value' => 'decimal:2',\n 'opportunity_max_age' => 'integer',\n 'trigger_assignment_rules' => 'boolean',\n 'store_transcript' => 'boolean',\n 'softphone_override_prospect' => 'boolean',\n 'auto_sync_activity' => 'boolean',\n 'installed_app_version' => 'string',\n 'settings' => 'array',\n ];\n }\n\n /** @return BelongsTo<Team> */\n public function team(): BelongsTo\n {\n return $this->belongsTo(Team::class);\n }\n\n public function notifiableUser(): BelongsTo\n {\n return $this->belongsTo(User::class);\n }\n\n public function opportunityValueField(): BelongsTo\n {\n return $this->belongsTo(Field::class);\n }\n\n public function profiles(): HasMany\n {\n return $this->hasMany(Profile::class, 'crm_configuration_id');\n }\n\n public function fields(): HasMany\n {\n return $this->hasMany(Field::class, 'crm_configuration_id');\n }\n\n public function layouts(): HasMany\n {\n return $this->hasMany(Layout::class, 'crm_configuration_id');\n }\n\n public function leads(): HasMany\n {\n return $this->hasMany(Lead::class, 'crm_configuration_id');\n }\n\n public function accounts(): HasMany\n {\n return $this->hasMany(Account::class, 'crm_configuration_id');\n }\n\n public function opportunities(): HasMany\n {\n return $this->hasMany(Opportunity::class, 'crm_configuration_id');\n }\n\n public function contacts(): HasMany\n {\n return $this->hasMany(Contact::class, 'crm_configuration_id');\n }\n\n public function activities(): HasMany\n {\n return $this->hasMany(Activity::class, 'crm_configuration_id');\n }\n\n public function stages(): HasMany\n {\n return $this->hasMany(Stage::class, 'crm_configuration_id');\n }\n\n public function businessProcesses(): HasMany\n {\n return $this->hasMany(BusinessProcess::class, 'crm_configuration_id');\n }\n\n public function recordTypes(): HasMany\n {\n return $this->hasMany(RecordType::class, 'crm_configuration_id');\n }\n\n public function rateLimits(): MorphMany\n {\n return $this->morphMany(RateLimit::class, 'limited');\n }\n\n public function contactRoles(): HasMany\n {\n return $this->hasMany(ContactRole::class);\n }\n\n /**\n * @return Collection<RateLimit>\n */\n public function getRateLimits(): Collection\n {\n return $this->rateLimits;\n }\n\n public function getId(): int\n {\n /** @var int */\n return $this->getAttribute('id');\n }\n\n public function getOpportunityMaxAge(): int\n {\n return $this->getAttribute('opportunity_max_age');\n }\n\n public function getInstalledAppVersion(): ?string\n {\n return $this->getAttribute('installed_app_version');\n }\n\n public function getOpportunityMaxValue(): float\n {\n return $this->getAttribute('opportunity_max_value');\n }\n\n public function getProviderName(): string\n {\n return $this->getAttribute('provider');\n }\n\n public function isProviderName(string $providerName): bool\n {\n return $this->getProviderName() === $providerName;\n }\n\n public function getCrmProviderId(): ?string\n {\n return $this->getAttribute('crm_provider_id');\n }\n\n public function getTeam(): Team\n {\n return $this->getAttribute('team');\n }\n\n public function getTeamId(): int\n {\n return $this->getAttribute('team_id');\n }\n\n public function getBaseUrl(): ?string\n {\n return $this->getAttribute('crm_base_url');\n }\n\n public function getOpportunityAssignmentRule(): string\n {\n return $this->getAttribute('opportunity_assignment_rule');\n }\n\n public function getDefaultCurrency(): string\n {\n /** @var ?string $defaultCurrency */\n $defaultCurrency = $this->getAttribute('default_currency');\n\n return $defaultCurrency ?? Opportunity::DEFAULT_CURRENCY;\n }\n\n public function getDefaultCurrencyField(): ?Field\n {\n return $this->getAttribute('opportunityValueField');\n }\n\n public function hasDefaultCurrencyFieldSet(): bool\n {\n return $this->getAttribute('opportunityValueField') !== null;\n }\n\n /**\n * @return Field[]\n */\n public function findIndexableTaskFields(): array\n {\n return $this->fields()\n ->tasks()\n ->indexable()\n ->get()\n ->all()\n ;\n }\n\n public function findProfileByCrmProviderId(string $crmProviderId): ?Profile\n {\n return $this->profiles()->where('crm_provider_id', $crmProviderId)->first();\n }\n\n public function getSettings(): ?array\n {\n return $this->getAttribute('settings');\n }\n\n public function hasAutoSyncEnabled(): bool\n {\n return $this->getAttribute('auto_sync_activity') === true;\n }\n\n public function getEdition(): ?string\n {\n return $this->getAttribute('edition');\n }\n\n public function getEntitySyncedAt(string $entityType): \\Carbon\\CarbonInterface\n {\n $column = $this->getEntitySyncedAtColumn($entityType);\n\n return $this->getAttribute($column) ?? $this->last_synced_at;\n }\n\n public function updateEntitySyncedAt(string $entityType, \\Carbon\\CarbonInterface $syncedAt): void\n {\n $column = $this->getEntitySyncedAtColumn($entityType);\n\n if ($column !== null) {\n $this->update([$column => $syncedAt]);\n }\n }\n\n private function getEntitySyncedAtColumn(string $entityType): ?string\n {\n return match ($entityType) {\n SyncBatch::ENTITY_TYPE_LEAD => 'leads_synced_at',\n SyncBatch::ENTITY_TYPE_ACCOUNT => 'accounts_synced_at',\n SyncBatch::ENTITY_TYPE_CONTACT => 'contacts_synced_at',\n SyncBatch::ENTITY_TYPE_OPPORTUNITY => 'opportunities_synced_at',\n SyncBatch::ENTITY_TYPE_CONTACT_ROLE => 'contact_roles_synced_at',\n default => null,\n };\n }\n\n protected static function newFactory(): Factory\n {\n return ConfigurationFactory::new();\n }\n\n public function getUuid(): string\n {\n return $this->getAttribute('id_string');\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"app ~/jiminny/app","depth":6,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".circleci","depth":7,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".cursor","depth":7,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".github","depth":7,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".sonarlint","depth":7,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".vscode","depth":7,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".windsurf","depth":7,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"app, sources root","depth":7,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Actions","depth":8,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Component","depth":8,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Acl, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ActionItems, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Activity, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ActivityAnalytics, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ActivitySearch, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"AiActivityType, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"AiAutomation, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"AiCallScoring, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Dtos, folder","depth":10,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Events, folder","depth":10,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"AskAnythingPromptService.php, class","depth":10,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"HistoryService.php, class","depth":10,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"AskJiminnyAi, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"AWS, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"BillingManagement, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Cache, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"CoachingFeedback, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Country, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"CustomerApi, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Database, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Datadog, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"DateTime, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"DealInsights, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ElasticSearch, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Eloquent, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Encoding, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Encryption, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ES, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Faker, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"FeatureFlags, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"FFMpeg, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"FileSystem, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Gecko, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Gong, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GuzzleHttp, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"KeyPoints, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Kiosk, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LanguageDetection, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LiveFeed, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Locks, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Math, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"MediaPipeline, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"MobileSettings, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Model, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Notification, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Nudge, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ParagraphBreaker, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ParticipantSpeech, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PartitionedCookie, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PlaybackPage, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Playlist, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Prophet, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ProphetAi, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ProsperWorks, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Queue, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Router, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Saml2, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"SCIM, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Seeder, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Sentry, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Serializer, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Settings, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Sidekick, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Slack, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"TeamInsights, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"TimeMemoryMapper, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Transcription, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"TranscriptionSummary, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Twilio, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Uploader, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"UrlGenerator, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Utility, folder","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Exceptions, folder","depth":10,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Service, folder","depth":10,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"BaseRateLimiter.php, class","depth":11,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"EfficientJsonParser.php, class","depth":11,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ProviderRateLimiter.php, class","depth":11,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimiterInstance.php, class","depth":11,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Uuid","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Waveform","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Webhooks","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Workflow","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Configuration","depth":8,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Console","depth":8,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Commands","depth":9,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Activities","depth":10,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Analytics","depth":10,"on_screen":false,"role_description":"text"}]...
|
-6922491972909467819
|
1065713819573434189
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Code changed:
Hide
Sync Changes
Hide This Notification
37
1
35
63
Previous Highlighted Error
Next Highlighted Error
SELECT * FROM teams WHERE name LIKE '%litify%'; # 1069, 994, 24993
SELECT * FROM users WHERE id = 25061;
SELECT * FROM crm_profiles WHERE crm_configuration_id = 994;
SELECT * FROM crm_profiles WHERE user_id = 25061;
select * from crm_configurations where id = 834;
SELECT * FROM teams WHERE id = 882;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 882 and sa.provider = 'hubspot';
SELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal
SELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 933 and sa.provider = 'hubspot';
SELECT * FROM crm_configurations WHERE provider = 'hubspot' and crm_provider_id = 7270388;
SELECT * FROM contacts where crm_configuration_id = 834;
SELECT * FROM opportunities WHERE team_id = 933
# AND crm_provider_id IN ('20131586060','46017317898','52543911090','53451356564','54101251892','54323768459');
AND id IN (8482561,18352941,19042734,19232139,19445140,19472541);
SELECT * FROM opportunity_contacts
WHERE opportunity_id IN (8482561,18352941,19042734,19232139,19445140,19472541);
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 485; #
SELECT * FROM opportunities WHERE team_id = 933 order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 933 and sa.provider = 'hubspot';
select crm.provider, l.* from leads l join crm_configurations crm on l.crm_configuration_id = crm.id
where crm.provider NOT IN ('salesforce', 'integration-app', 'bullhorn', 'copper')
# and l.converted_at IS NOT NULL
;
# [PASSWORD_DOTS]
SELECT * FROM activities a WHERE type IN ('email-inbound', 'email-outbound')
and opportunity_id IS NULL
order by id desc;
SELECT * FROM teams WHERE id = 604; # 598
SELECT * FROM activities WHERE id = 74410828; # [EMAIL]
SELECT * FROM accounts WHERE id = 20068382;
SELECT * FROM accounts WHERE id = 35186038;
SELECT * FROM contacts WHERE team_id = 852 and updated_at > '2026-01-23 12:30:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 559 and sa.provider = 'hubspot';
SELECT * FROM activities WHERE uuid_to_bin('cb6342b6-a183-401c-b0af-ede92b2ae763') = uuid;
select * from sidekick_settings where team_id = 781;
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 26651871; # Teya
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 7562435;
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8420347; # opflit 2100
SELECT * FROM crm_layouts WHERE crm_configuration_id = 711;
SELECT * FROM activities where crm_configuration_id = 711 and crm_provider_id IS NULL
and is_internal = 0 and status = 'completed'
order by id desc;
SELECT * FROM crm_layout_entities
WHERE crm_layout_id IN (2352, 2353);
;
SELECT * FROM crm_configurations where provider = 'hubspot' and id = 530;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 556 and sa.provider = 'hubspot';
SELECT * FROM activities WHERE uuid_to_bin('c6ca4b22-7738-4563-a95d-b8a9598924ae') = uuid;
SELECT * FROM activities WHERE uuid_to_bin('442abb2b-28bd-4be8-9c25-19e9bf02766d') = uuid;
select * from contacts
where crm_configuration_id = 530
and crm_provider_id = 872252;
select * from activities where crm_configuration_id = 530
and user_id = 14343 and type like '%softphone%'
and created_at between '2026-01-28 15:00:00' and '2026-01-28 15:10:00';
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 25666868; # Teya
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id = 8646335; # Teya
SELECT * FROM crm_configurations where provider = 'hubspot' and crm_provider_id IN (5933397);
SELECT t.name, t.id, t.owner_id, c.id, c.provider, c.crm_base_url FROM teams t
JOIN crm_configurations c ON t.id = c.team_id
WHERE t.status = 'active';
SELECT * FROM teams where id = 1091;
SELECT * FROM crm_configurations where team_id = 1091;
SELECT * FROM activity_providers where team_id = 1091;
SELECT * FROM activities where crm_configuration_id = 1024 and type IN ('softphone', 'softphone-outbound')
and provider NOT IN ('hubspot', 'aircall')
# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'
order by id desc;
SELECT * FROM teams WHERE name LIKE '%Leadventure%';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1091 and sa.provider = 'salesforce';
SELECT * FROM teams WHERE name LIKE '%Wilson%'; # 862, 812
SELECT * FROM teams where id = 862;
SELECT * FROM crm_configurations where team_id = 862;
SELECT * FROM activity_providers where team_id = 862;
SELECT * FROM activities where crm_configuration_id = 812 and type IN ('softphone', 'softphone-outbound')
and provider NOT IN ('hubspot', 'aircall')
# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'
order by id desc;
SELECT t.id, crm.id, crm.provider, ap.* FROM teams t
join crm_configurations crm on t.id = crm.team_id
join activity_providers ap on t.id = ap.team_id
where t.status = 'active' and ap.is_enabled = 1
and crm.provider = 'hubspot'
and ap.provider NOT IN ('hubspot', 'aircall', 'uploader', 'gong', 'twilio', 'zoom-bot', 'google-meet', 'ms-teams',
'outreach', 'close', 'ringcentral', 'dialpad', 'zoom-phone');
SELECT * FROM teams where id = 1068;
SELECT * FROM crm_configurations where team_id = 1068;
SELECT * FROM activity_providers where team_id = 1068;
SELECT * FROM activities a
where crm_configuration_id = 993 and type IN ('softphone', 'softphone-outbound')
and a.provider NOT IN ('hubspot', 'uploader', 'gong', 'twilio', 'google-meet', 'ms-teams','close'
)
# and telephony_provider_id = '019c1131-a22f-4792-b9ea-20adf6a02ed0'
order by a.id desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1068 and sa.provider = 'hubspot';
# [PASSWORD_DOTS]
# [PASSWORD_DOTS]
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 882; # 933 - GoGlobal , portalId: 6017093
SELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 933 and updated_at > '2026-02-06 00:00:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 933 and sa.provider = 'hubspot';
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 834; # 882 - AnyVan , portalId: 5468262
SELECT * FROM contacts WHERE crm_configuration_id = 834 and updated_at > '2026-03-30 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE crm_configuration_id = 834 and updated_at > '2026-03-04 08:00:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 882 and sa.provider = 'hubspot';
select * from crm_layouts where crm_configuration_id = 834;
select * from crm_layout_entities where crm_layout_id = 2780;
select * from crm_fields where id IN (321153,321192,321193,321194);
SELECT * FROM opportunities WHERE crm_configuration_id = 834 and id = 10993426;
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 988; # 1057 - Teya (543ce4f4-168c-4571-91ea-5b35c253f06f) , portalId: 26651871
SELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1057 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1057 and sa.provider = 'hubspot';
SELECT * FROM crm_configurations where id = 533; # 559 - Connectd , portalId: 6710988
SELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 559 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 801; # 852 - Rise Vision , portalId: 2700250
SELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 852 and updated_at > '2026-02-04 00:00:00' order by updated_at desc; # 6th last
SELECT * FROM crm_configurations where id = 962; # 1034 - evergrowth.io , portalId: 143180990
SELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1034 and updated_at > '2026-02-04 00:00:00' order by updated_at desc;
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 1037; # 1102 - Jibble , portalId: 6649755
SELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1102 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 8
SELECT * FROM crm_configurations where id = 1015; # 1049 - Travefy , portalId: 48904401
SELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1049 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 20
SELECT * FROM crm_configurations where id = 64; # 70 - SalaryFinance , portalId: 3404115
SELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 70 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 6th last
SELECT * FROM crm_configurations where id = 802; # 853 - Street Group , portalId: 7658438
SELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 853 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 10
SELECT * FROM crm_configurations where id = 872; # 921 - In Professional Development , portalId: 9238273
SELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 921 and updated_at > '2026-02-04 12:30:00' order by updated_at desc; # 2
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 550; # 576 - SeedLegals , portalId: 3028661
SELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 576 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 989; # 1058 - rtaoutdoor.com , portalId: 22371204
SELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1058 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 896; # 946 - Mintago , portalId: 6621281
SELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 946 and updated_at > '2026-02-05 14:00:00' order by updated_at desc;
SELECT * FROM crm_configurations where id = 617; # 641 - PCS , portalId: 5244937
SELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 641 and updated_at > '2026-02-05 14:00:00' order by updated_at desc; # 7th
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where id = 649; # 670 - Eventeny , portalId: 4492849
SELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-18 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 670 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; #
SELECT * FROM crm_configurations where id = 48; # 51 - CleanCloud , portalId: 4373137
SELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-03-04 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 51 and updated_at > '2026-02-09 08:00:00' order by updated_at desc;
select * from users where team_id = 51; # 7783
SELECT * FROM groups WHERE uuid_to_bin('8a8d2cb6-8b55-4fa3-8b5c-5f0e3d8de59a') = uuid; # 1130
select * from activity_searches where user_id = 7783;
select * from activity_search_filters where activity_search_id IN (32291, 32292);
SELECT asf.activity_search_id, asf.id, asf.value
FROM activity_search_filters asf
WHERE asf.filter = 'group_id'
AND asf.value IN (
SELECT CONCAT(
HEX(SUBSTR(uuid, 5, 4)), '-',
HEX(SUBSTR(uuid, 3, 2)), '-',
HEX(SUBSTR(uuid, 1, 2)), '-',
HEX(SUBSTR(uuid, 9, 2)), '-',
HEX(SUBSTR(uuid, 11))
)
FROM groups
WHERE deleted_at IS NOT NULL
);
SELECT * FROM crm_configurations where id = 272; # 290 - Bonham & Brook , portalId: 5705856
SELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-05 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 290 and updated_at > '2026-02-09 08:00:00' order by updated_at desc; # 6th
# [PASSWORD_DOTS]
SELECT * FROM crm_configurations where provider = 'hubspot';
SELECT * FROM crm_configurations where id = 1056; # 1119 - Chromatic , portalId: 45602133
SELECT * FROM opportunities WHERE team_id = 1119 and remotely_created_at > '2026-02-01 00:00:00' order by updated_at desc;
SELECT * FROM opportunities WHERE team_id = 1119 and updated_at > '2026-02-09 09:00:00' order by updated_at desc; # null
# [PASSWORD_DOTS]
select * from contacts where crm_provider_id = '003Uu00000ojD4NIAU';
select
cp.*
# DISTINCT t.id
# cp.id, cp.user_id, t.id, cp.crm_configuration_id, cp.contact_fields
FROM crm_profiles cp
JOIN crm_configurations crm on crm.id = cp.crm_configuration_id
JOIN users u on u.id = cp.user_id
JOIN teams t ON t.id = crm.team_id
WHERE crm.provider = 'salesforce' and t.status = 'active'
and cp.archived_at IS NULL and u.deleted_at IS NULL
and t.id NOT IN (1093)
and t.id = 2
and cp.contact_fields IS NULL;
# and c.crm_provider_id = '003Uu00000ojD4NIAU';
SELECT * FROM users WHERE id = 26484;
SELECT * FROM crm_profiles WHERE user_id = 26484;
SELECT * FROM social_accounts WHERE sociable_id = 26484;
SELECT * FROM crm_configurations where provider = 'salesforce';
select * from users where id IN (10022, 10403);
select * from users where team_id IN (526);
select * from teams where id IN (526, 532);
select * from crm_configurations where id IN (500, 516);
select * from crm_profiles where crm_configuration_id IN (500, 516) and user_id IN (10022, 10403);
select * from contacts where crm_configuration_id IN (500, 516) and crm_provider_id = '003Uu00000ojD4NIAU';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 526 and sa.provider = 'salesforce';
select * from team_settings where team_id IN (526, 532);
select * from users where id IN (22824);
select * from crm_profiles where crm_configuration_id IN (1026);
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1093 and sa.provider = 'salesforce';
select * from teams where id = 1099;
select * from users where id = 29643
select * from activity_processing_states;
SELECT * FROM teams where name LIKE '%Fare%'; # 233
SELECT * FROM opportunities where crm_configuration_id = 215
# and crm_provider_id = 'oppo_ogESZf2P50nDrd1nGPvKDXeA6sSaTN5v51Lp4ayVzKR'
;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1088 and sa.provider = 'hubspot';
SELECT * FROM teams order by updated_at DESC
SELECT * FROM crm_configurations WHERE id = 1019; # SimpleConsign 1088 - no social account
select * from crm_configurations where provider = 'pipedrive';
select * from teams where id = 957;
select * from crm_configurations where id = 957;
SELECT * FROM teams WHERE name LIKE '%Prolific%'; # 544, 518, 10743
SELECT * FROM opportunities where crm_configuration_id = 518 order by id desc;
select * from users where team_id = 1; # 26726 - Gabriela Dureva
SELECT * FROM opportunities where user_id = 26726; # 16834447 - Prolific
select * from activities where user_id = 26726 order by id desc;
select * from contacts where crm_configuration_id = 1
and email IN ('[EMAIL]', '[EMAIL]'); # 2094416, 2093620
SELECT * FROM contacts WHERE id = 6284931;
SELECT p.* FROM activities a JOIN participants p ON a.id = p.activity_id
WHERE a.user_id = 26726 and p.lead_id IN (2094416, 2093620) and a.created_at > '2026-01-01 00:00:00' order by p.email;
select * from activities where id IN (75509259,75509261,75509261,75511034,75026464,75517602,75517605);
select * from crm_configurations where id = 1;
43801692-1aeb-32ce-acba-5b80a479701a
44c3c9cf-6f5e-75f3-8179-bc9f75dd2b1b
405975c0-b3d0-7aaa-821f-09d59cae6dd1
4caf848d-4bed-2299-b248-7788d41f9fca
49bedc3f-f196-eef3-89c3-dea6a3b4aa63
43420989-a09d-b8f8-9806-c8bbf7a02aac
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1 and sa.provider = 'salesforce';
SELECT * FROM activities WHERE id = 75461988;
SELECT * FROM activities WHERE uuid_to_bin('d6c5052e-e972-49e9-8912-26f2f7d6c5f6') = uuid;
select * from contacts where id = 17900517;
select * from contact_roles cr join crm_configurations crm on cr.crm_configuration_id = crm.id
where crm.provider != 'salesforce';
select * from users where id = 21047;
SELECT * FROM crm_configurations WHERE id = 892;
SELECT * FROM teams WHERE id = 942;
select * from opportunities where team_id = 942 order by updated_at desc;
select * from contacts where team_id = 942 order by updated_at desc;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 942 and sa.provider = 'hubspot';
SELECT * FROM opportunities where team_id = 1 and crm_provider_id IN ('006Pq00000NeH6XIAV', '006Pq000007z8kdIAA'); # 10697889, 6621430
SELECT * FROM crm_configurations WHERE id = 1;
SELECT * FROM teams WHERE crm_id = 1;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1 and sa.provider = 'salesforce';
select id, user_id, opportunity_fields from crm_profiles where crm_configuration_id = 1
SELECT * FROM opportunities where team_id = 1 order by updated_at desc; # 10697889, 6621430
select * from teams where id = 852;
select * from groups where id = 2286;
select * from sidekick_settings where team_id = 852;
select * from default_activity_types where team_id = 852;
SELECT cc.provider, cc.id, p.id, u.*
FROM users u
LEFT JOIN crm_profiles p ON u.id = p.user_id AND p.id IS NULL -- no profile
INNER JOIN teams t ON u.team_id = t.id AND t.status = 'active' -- team is active
INNER JOIN crm_configurations cc ON t.crm_id = cc.id
WHERE u.status = 1 AND u.deleted_at IS NULL
AND u.crm_required = 1
AND u.team_id = 1
ORDER BY u.team_id;
SELECT * FROM crm_profiles cp where cp.crm_configuration_id = 1 and cp.user_id IN (
18481
);
SELECT cc.provider, cc.id, p.id, u.*
FROM users u
LEFT JOIN crm_profiles p ON u.id = p.user_id
INNER JOIN teams t ON u.team_id = t.id AND t.status = 'active'
INNER JOIN crm_configurations cc ON t.crm_id = cc.id
WHERE u.status = 1
AND u.deleted_at IS NULL
AND u.crm_required = 1
# AND u.team_id = 1
AND p.id IS NULL -- Move this condition to WHERE clause
ORDER BY u.team_id;
SELECT * FROM opportunities WHERE id = 20002609;
select * from teams where id = 1122; # Velatir, 29953 - [EMAIL]
select * from crm_configurations where id = 1060;
select * from crm_layouts where crm_configuration_id = 1060;
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 3596;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 1122 and sa.provider = 'hubspot';
select * from opportunities where team_id = 1122 order by updated_at desc;
select * from crm_field_data where object_type = 'contact';
SELECT * FROM activities WHERE uuid_to_bin('374fc8ed-3315-4c9f-9b25-318b7fd2928f') = uuid; # 76584262
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 248 and sa.provider = 'salesforce';
SELECT * FROM crm_profiles where user_id = 24115; # 005QF000002CswMYAS
SELECT * FROM users where id = 24115;
SELECT * FROM accounts where id = 4002896;
SELECT * FROM teams WHERE name LIKE '%adswerve%';
SELECT * FROM opportunities where crm_configuration_id = 230 AND crm_provider_id IN ("0069N000003GIQ9QAO","0061r000019yGP9AAM","0066900001S2KWlAAN","0066900001TDpj2AAD","0066900001b8uEwAAI","0069N000001rQi0QAE","006QF00000KD40mYAD","006QF00000LzpRJYAZ","0069N000002uomtQAA","0069N000002xlMLQAY","0066900001NV6ubAAD","0061r00001HJp45AAD","006QF00000uTlUoYAK","006QF00000v0bZqYAI");
SELECT * FROM opportunities WHERE crm_configuration_id = 230 AND crm_provider_id = '0069N000003GIQ9QAO'; # 6272203
SELECT u.id, u.email, ac.name, a.* FROM activities a
JOIN users u ON a.user_id = u.id
JOIN accounts ac ON a.account_id = ac.id
WHERE
uuid_to_bin('e3269598-b562-44fb-b5e9-9d2694dc63e0') = a.uuid or
uuid_to_bin('66ddc3ab-4e15-45aa-af0c-248c1eece593') = a.uuid or
uuid_to_bin('826bd328-e1cc-4213-b8d8-572454cacc07') = a.uuid;
select * from users where id = 5825;
SELECT * FROM activities WHERE uuid_to_bin('e56aa2e8-231a-421b-ab1f-cb38ed2bf573') = uuid;
select * from activities where uuid_to_bin('91e13b2f-2d1b-45f8-b1fd-1141b6563782') = uuid;
19594, 862
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 862 and sa.provider = 'salesforce';
select * from automated_reports where id = 36;
select ar.frequency, r.*, ar.* from automated_report_results r
join automated_reports ar on r.report_id = ar.id
where ar.frequency != 'one_off';
select s.* from activity_searches s join users u ON s.user_id = u.id where u.team_id = 882;
select * from nudges n where n.activity_search_id
select * from teams where created_at > '2026-03-09';
SELECT * FROM crm_layouts WHERE crm_configuration_id = 1065; # 1065
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 3617;
select * from users where team_id = 1 and name like '%Lukas%'; # 7160
SELECT * FROM teams WHERE id = 575;
select * from opportunities where team_id = 575;
SELECT * FROM teams WHERE name LIKE '%Integrum ESG%'; # 1126, 1065,
select * from opportunities where team_id = 1126;
SELECT * FROM teams WHERE name LIKE '%Base%'; # 1125, 1063,
select * from opportunities where team_id = 1125;
select * from contacts c
where c.team_id = 882;
SELECT * FROM activities WHERE id = 76822967;
SELECT * FROM crm_profiles WHERE user_id = 15440;
SELECT * FROM crm_profiles WHERE crm_configuration_id = 555;
SELECT * FROM crm_configurations WHERE id = 555;
SELECT * FROM users WHERE id = 15440; # team. 581, gr. 15440, pl. 3911, act. field 162182
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 581 and sa.provider = 'salesforce';
SELECT * FROM automated_report_results order by id desc;
select * from features;
select * from team_features where feature_id = 40;
select * from teams where id = 556;
select * from automated_reports;
where id = 54; # 4fdd41f6-dcf0-30d0-b339-7345381b6044 , ["pdf","podcast"]
SELECT * FROM automated_report_results WHERE uuid_to_bin('822fa41b-afd3-43a9-a248-86b0e36f3131') = uuid;
select * from automated_report_results order by id desc;
SELECT * FROM automated_report_results WHERE id = 1919;
select * from automated_report_results WHERE report_id = 54;
select * from opportunities where id = 7594349;
SELECT * FROM teams WHERE name LIKE '%Les%'; # 711, 692, 16067 - [EMAIL]
select * from playbooks where team_id = 711; # event 226147
SELECT * FROM playbook_categories WHERE playbook_id = 5515;
SELECT * FROM crm_fields WHERE crm_configuration_id = 692 and object_type = 'event';
SELECT * FROM crm_fields WHERE id = 226147;
SELECT * FROM crm_field_values WHERE crm_field_id = 226147;
SELECT * FROM crm_configurations WHERE id = 692;
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 711 and sa.provider = 'salesforce';
SELECT * FROM crm_profiles cp JOIN users u on u.id = cp.user_id WHERE u.team_id = 711;
select * from leads;
select * from calendars;
SELECT
t.id AS team_id,
t.name,
LOWER(SUBSTRING_INDEX(c.calendar_provider_id, '@', -1)) AS calendar_domain
FROM teams t
JOIN users u ON u.team_id = t.id
JOIN calendars c ON c.user_id = u.id AND c.status = 'active' AND c.calendar_provider_id LIKE '%@%'
LEFT JOIN team_domains td
ON td.team_id = t.id
AND td.deleted_at IS NULL
AND td.domain = LOWER(SUBSTRING_INDEX(c.calendar_provider_id, '@', -1))
GROUP BY t.id, t.name, calendar_domain
ORDER BY t.name, calendar_domain;
select * from users u join calendars c on c.user_id = u.id
where u.team_id = 882;
select * from activities where id = 74049485; # team 563 crm 537
select * from activities where id = 73272382; # team 563 crm 537
select * from activities where id = 64400389; # team 563 crm 537
select * from activities where id = 58081273; # team 563 crm 537
select * from activities where id = 54520297; # team 563 crm 537
select * from participants where activity_id = 58081273;
select * from activities where crm_configuration_id = 537 and provider = 'aircall'
and account_id = 19003658 order by updated_at desc;
select * from contacts where crm_configuration_id = 537 and id = 35957759;
select * from accounts where crm_configuration_id = 537 and id = 19003658;
select * from automated_report_results where id = 1976;
select * from automated_reports where id = 583;
select * from activity_searches where id = 87714;
select * from activity_search_filters where activity_search_id = 87714;
SELECT * FROM activities WHERE uuid_to_bin('8827f672-202d-4162-9d04-73ff5f0566a9') = uuid
or uuid_to_bin('47842446-af51-4bcb-854f-cc6560290101') = uuid;
Sync Changes
Hide This Notification
Code changed:
Hide
25
4
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Models\Crm;
use Database\Factories\Crm\ConfigurationFactory;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Illuminate\Support\Collection;
use Jiminny\Component\Eloquent\Builder;
use Jiminny\Contracts\Http\RateLimited;
use Jiminny\Models\Account;
use Jiminny\Models\Activity;
use Jiminny\Models\Contact;
use Jiminny\Models\Lead;
use Jiminny\Models\Model;
use Jiminny\Models\Opportunity;
use Jiminny\Models\RateLimit;
use Jiminny\Models\Stage;
use Jiminny\Models\Team;
use Jiminny\Models\User;
use Jiminny\Traits\Enums;
use Jiminny\Traits\RequiresUUID;
/**
* Jiminny\Models\Crm\Configuration
*
* @property int $id
* @property mixed|null $uuid
* @property int $team_id
* @property int|null $notifiable_user_id
* @property string $provider
* @property string|null $edition
* @property string|null $instance
* @property bool $is_sandbox
* @property string|null $version
* @property bool $sync_metadata
* @property bool $sync_objects
* @property bool $auto_sync_activity
* @property string|null $crm_provider_id
* @property string|null $crm_base_url
* @property \Illuminate\Support\Carbon $last_synced_at
* @property \Illuminate\Support\Carbon|null $leads_synced_at
* @property \Illuminate\Support\Carbon|null $accounts_synced_at
* @property \Illuminate\Support\Carbon|null $contacts_synced_at
* @property \Illuminate\Support\Carbon|null $opportunities_synced_at
* @property \Illuminate\Support\Carbon|null $contact_roles_synced_at
* @property \Illuminate\Support\Carbon|null $over_quota_at
* @property \Illuminate\Support\Carbon|null $api_disabled_at
* @property string $opportunity_assignment_rule
* @property string $opportunity_max_value
* @property int $opportunity_max_age
* @property int|null $opportunity_value_field_id
* @property bool $trigger_assignment_rules
* @property bool $store_transcript
* @property bool $softphone_override_prospect
* @property string $default_currency
* @property string|null $installed_app_version
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
*
* @method static \Database\Factories\Crm\ConfigurationFactory factory($count = null, $state = [])
*
* @property-read \Illuminate\Database\Eloquent\Collection<int, Account> $accounts
* @property-read int|null $accounts_count
* @property-read \Illuminate\Database\Eloquent\Collection<int, Activity> $activities
* @property-read int|null $activities_count
* @property-read \Illuminate\Database\Eloquent\Collection<int, \Jiminny\Models\Crm\BusinessProcess> $businessProcesses
* @property-read int|null $business_processes_count
* @property-read \Illuminate\Database\Eloquent\Collection<int, Contact> $contacts
* @property-read int|null $contacts_count
* @property-read \Illuminate\Database\Eloquent\Collection<int, \Jiminny\Models\Crm\Field> $fields
* @property-read int|null $fields_count
* @property-read string $id_string
* @property-read \Illuminate\Database\Eloquent\Collection<int, \Jiminny\Models\Crm\Layout> $layouts
* @property-read int|null $layouts_count
* @property-read \Illuminate\Database\Eloquent\Collection<int, Lead> $leads
* @property-read int|null $leads_count
* @property-read User|null $notifiableUser
* @property-read \Illuminate\Database\Eloquent\Collection<int, Opportunity> $opportunities
* @property-read int|null $opportunities_count
* @property-read \Jiminny\Models\Crm\Field|null $opportunityValueField
* @property-read \Illuminate\Database\Eloquent\Collection<int, \Jiminny\Models\Crm\Profile> $profiles
* @property-read int|null $profiles_count
* @property-read \Illuminate\Database\Eloquent\Collection<int, RateLimit> $rateLimits
* @property-read int|null $rate_limits_count
* @property-read \Illuminate\Database\Eloquent\Collection<int, \Jiminny\Models\Crm\RecordType> $recordTypes
* @property-read int|null $record_types_count
* @property-read \Illuminate\Database\Eloquent\Collection<int, Stage> $stages
* @property-read int|null $stages_count
* @property-read Team $team
* @property-read \Illuminate\Database\Eloquent\Collection<int, \Jiminny\Models\Crm\ContactRole> $contactRoles
* @property-read int|null $contact_roles_count
*
* @method static Builder|Configuration chunkByIdDesc($count, callable $callback, $column = null, $alias = null)
* @method static Builder|Configuration idOrUuId($idOrUuid, bool $first = true)
* @method static Builder|Configuration newModelQuery()
* @method static Builder|Configuration newQuery()
* @method static Builder|Configuration query()
* @method static Builder|Configuration uuid(string $uuid, bool $first = true)
* @method static Builder|Configuration whereApiDisabledAt($value)
* @method static Builder|Configuration whereAutoSyncActivity($value)
* @method static Builder|Configuration whereCreatedAt($value)
* @method static Builder|Configuration whereCrmBaseUrl($value)
* @method static Builder|Configuration whereCrmProviderId($value)
* @method static Builder|Configuration whereDefaultCurrency($value)
* @method static Builder|Configuration whereEdition($value)
* @method static Builder|Configuration whereId($value)
* @method static Builder|Configuration whereInstance($value)
* @method static Builder|Configuration whereIsSandbox($value)
* @method static Builder|Configuration whereLastSyncedAt($value)
* @method static Builder|Configuration whereNotifiableUserId($value)
* @method static Builder|Configuration whereOpportunityAssignmentRule($value)
* @method static Builder|Configuration whereOpportunityMaxAge($value)
* @method static Builder|Configuration whereOpportunityMaxValue($value)
* @method static Builder|Configuration whereOpportunityValueFieldId($value)
* @method static Builder|Configuration whereOverQuotaAt($value)
* @method static Builder|Configuration whereProvider($value)
* @method static Builder|Configuration whereSoftphoneOverrideProspect($value)
* @method static Builder|Configuration whereStoreTranscript($value)
* @method static Builder|Configuration whereSyncMetadata($value)
* @method static Builder|Configuration whereSyncObjects($value)
* @method static Builder|Configuration whereTeamId($value)
* @method static Builder|Configuration whereTriggerAssignmentRules($value)
* @method static Builder|Configuration whereUpdatedAt($value)
* @method static Builder|Configuration whereUuid($value)
* @method static Builder|Configuration whereVersion($value)
*
* @mixin \Eloquent
*/
class Configuration extends Model implements RateLimited
{
use RequiresUUID;
use Enums;
use HasFactory;
public const string PROVIDER_SALESFORCE = 'salesforce';
public const string PROVIDER_HUBSPOT = 'hubspot';
public const string PROVIDER_PIPEDRIVE = 'pipedrive';
public const string PROVIDER_COPPER = 'copper';
public const string PROVIDER_CLOSE = 'close';
public const string PROVIDER_BULLHORN = 'bullhorn';
public const string PROVIDER_INTEGRATION_APP = 'integration-app';
public const string EDITION_DEVELOPER = 'developer';
public const string EDITION_STARTER = 'starter';
public const string EDITION_PROFESSIONAL = 'professional';
public const string EDITION_ENTERPRISE = 'enterprise';
public const string OPP_ASSIGNMENT_ALL_OPEN_RECENTLY_UPDATED = 'open-recently-updated';
public const string OPP_ASSIGNMENT_ALL_OPEN_RECENTLY_CREATED = 'open-recently-created';
public const string OPP_ASSIGNMENT_ALL_RECENTLY_UPDATED = 'recently-updated';
public const string OPP_ASSIGNMENT_ALL_OPEN_OLDEST_CREATED = 'open-oldest-created';
/**
* @var string[]
*/
public static array $enumProviders = [
self::PROVIDER_SALESFORCE,
self::PROVIDER_HUBSPOT,
self::PROVIDER_PIPEDRIVE,
self::PROVIDER_COPPER,
self::PROVIDER_CLOSE,
self::PROVIDER_BULLHORN,
self::PROVIDER_INTEGRATION_APP,
];
/**
* @var string[]
*/
public array $enumOpportunityAssignmentRule = [
self::OPP_ASSIGNMENT_ALL_OPEN_RECENTLY_UPDATED,
self::OPP_ASSIGNMENT_ALL_OPEN_RECENTLY_CREATED,
self::OPP_ASSIGNMENT_ALL_RECENTLY_UPDATED,
self::OPP_ASSIGNMENT_ALL_OPEN_OLDEST_CREATED,
];
protected $table = 'crm_configurations';
protected $fillable = [
'team_id',
'notifiable_user_id',
'provider',
'crm_provider_id',
'crm_base_url',
'is_sandbox',
'edition',
'instance',
'version',
'sync_metadata',
'sync_objects',
'auto_sync_activity',
'last_synced_at',
'leads_synced_at',
'accounts_synced_at',
'contacts_synced_at',
'opportunities_synced_at',
'contact_roles_synced_at',
'over_quota_at',
'api_disabled_at',
'capabilities',
'opportunity_assignment_rule',
'opportunity_max_value',
'opportunity_max_age',
'opportunity_value_field_id',
'default_currency',
'trigger_assignment_rules',
'store_transcript',
'softphone_override_prospect',
'installed_app_version',
'settings',
];
protected $appends = [
'id_string',
];
protected $hidden = [
'uuid',
];
protected function casts(): array
{
return [
'last_synced_at' => 'datetime',
'leads_synced_at' => 'datetime',
'accounts_synced_at' => 'datetime',
'contacts_synced_at' => 'datetime',
'opportunities_synced_at' => 'datetime',
'contact_roles_synced_at' => 'datetime',
'over_quota_at' => 'datetime',
'api_disabled_at' => 'datetime',
'sync_metadata' => 'boolean',
'sync_objects' => 'boolean',
'is_sandbox' => 'boolean',
'opportunity_max_value' => 'decimal:2',
'opportunity_max_age' => 'integer',
'trigger_assignment_rules' => 'boolean',
'store_transcript' => 'boolean',
'softphone_override_prospect' => 'boolean',
'auto_sync_activity' => 'boolean',
'installed_app_version' => 'string',
'settings' => 'array',
];
}
/** @return BelongsTo<Team> */
public function team(): BelongsTo
{
return $this->belongsTo(Team::class);
}
public function notifiableUser(): BelongsTo
{
return $this->belongsTo(User::class);
}
public function opportunityValueField(): BelongsTo
{
return $this->belongsTo(Field::class);
}
public function profiles(): HasMany
{
return $this->hasMany(Profile::class, 'crm_configuration_id');
}
public function fields(): HasMany
{
return $this->hasMany(Field::class, 'crm_configuration_id');
}
public function layouts(): HasMany
{
return $this->hasMany(Layout::class, 'crm_configuration_id');
}
public function leads(): HasMany
{
return $this->hasMany(Lead::class, 'crm_configuration_id');
}
public function accounts(): HasMany
{
return $this->hasMany(Account::class, 'crm_configuration_id');
}
public function opportunities(): HasMany
{
return $this->hasMany(Opportunity::class, 'crm_configuration_id');
}
public function contacts(): HasMany
{
return $this->hasMany(Contact::class, 'crm_configuration_id');
}
public function activities(): HasMany
{
return $this->hasMany(Activity::class, 'crm_configuration_id');
}
public function stages(): HasMany
{
return $this->hasMany(Stage::class, 'crm_configuration_id');
}
public function businessProcesses(): HasMany
{
return $this->hasMany(BusinessProcess::class, 'crm_configuration_id');
}
public function recordTypes(): HasMany
{
return $this->hasMany(RecordType::class, 'crm_configuration_id');
}
public function rateLimits(): MorphMany
{
return $this->morphMany(RateLimit::class, 'limited');
}
public function contactRoles(): HasMany
{
return $this->hasMany(ContactRole::class);
}
/**
* @return Collection<RateLimit>
*/
public function getRateLimits(): Collection
{
return $this->rateLimits;
}
public function getId(): int
{
/** @var int */
return $this->getAttribute('id');
}
public function getOpportunityMaxAge(): int
{
return $this->getAttribute('opportunity_max_age');
}
public function getInstalledAppVersion(): ?string
{
return $this->getAttribute('installed_app_version');
}
public function getOpportunityMaxValue(): float
{
return $this->getAttribute('opportunity_max_value');
}
public function getProviderName(): string
{
return $this->getAttribute('provider');
}
public function isProviderName(string $providerName): bool
{
return $this->getProviderName() === $providerName;
}
public function getCrmProviderId(): ?string
{
return $this->getAttribute('crm_provider_id');
}
public function getTeam(): Team
{
return $this->getAttribute('team');
}
public function getTeamId(): int
{
return $this->getAttribute('team_id');
}
public function getBaseUrl(): ?string
{
return $this->getAttribute('crm_base_url');
}
public function getOpportunityAssignmentRule(): string
{
return $this->getAttribute('opportunity_assignment_rule');
}
public function getDefaultCurrency(): string
{
/** @var ?string $defaultCurrency */
$defaultCurrency = $this->getAttribute('default_currency');
return $defaultCurrency ?? Opportunity::DEFAULT_CURRENCY;
}
public function getDefaultCurrencyField(): ?Field
{
return $this->getAttribute('opportunityValueField');
}
public function hasDefaultCurrencyFieldSet(): bool
{
return $this->getAttribute('opportunityValueField') !== null;
}
/**
* @return Field[]
*/
public function findIndexableTaskFields(): array
{
return $this->fields()
->tasks()
->indexable()
->get()
->all()
;
}
public function findProfileByCrmProviderId(string $crmProviderId): ?Profile
{
return $this->profiles()->where('crm_provider_id', $crmProviderId)->first();
}
public function getSettings(): ?array
{
return $this->getAttribute('settings');
}
public function hasAutoSyncEnabled(): bool
{
return $this->getAttribute('auto_sync_activity') === true;
}
public function getEdition(): ?string
{
return $this->getAttribute('edition');
}
public function getEntitySyncedAt(string $entityType): \Carbon\CarbonInterface
{
$column = $this->getEntitySyncedAtColumn($entityType);
return $this->getAttribute($column) ?? $this->last_synced_at;
}
public function updateEntitySyncedAt(string $entityType, \Carbon\CarbonInterface $syncedAt): void
{
$column = $this->getEntitySyncedAtColumn($entityType);
if ($column !== null) {
$this->update([$column => $syncedAt]);
}
}
private function getEntitySyncedAtColumn(string $entityType): ?string
{
return match ($entityType) {
SyncBatch::ENTITY_TYPE_LEAD => 'leads_synced_at',
SyncBatch::ENTITY_TYPE_ACCOUNT => 'accounts_synced_at',
SyncBatch::ENTITY_TYPE_CONTACT => 'contacts_synced_at',
SyncBatch::ENTITY_TYPE_OPPORTUNITY => 'opportunities_synced_at',
SyncBatch::ENTITY_TYPE_CONTACT_ROLE => 'contact_roles_synced_at',
default => null,
};
}
protected static function newFactory(): Factory
{
return ConfigurationFactory::new();
}
public function getUuid(): string
{
return $this->getAttribute('id_string');
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app
.circleci
.cursor
.github
.sonarlint
.vscode
.windsurf
app, sources root
Actions
Component
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Exceptions, folder
Service, folder
BaseRateLimiter.php, class
EfficientJsonParser.php, class
ProviderRateLimiter.php, class
RateLimiterInstance.php, class
Uuid
Waveform
Webhooks
Workflow
Configuration
Console
Commands
Activities
Analytics...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
4247
|
151
|
21
|
2026-05-07T13:20:48.281567+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778160048281_m1.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-07 13:20:36] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}
[2026-05-07 13:20:36] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}
[2026-05-07 13:20:36] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}
[2026-05-07 13:20:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}
[2026-05-07 13:20:37] local.INFO: [Hubspot] Pagination completed {"team_id":2,"endpoint":"https://api.hubapi.com/crm/v3/objects/contact/search","total_requests":0,"total_records_fetched":0,"total_elapsed_seconds":0.52,"average_seconds_per_request":0} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}
[2026-05-07 13:20:37] local.ERROR: Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned {"exception":"[object] (TypeError(code: 0): Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned at /home/jiminny/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:83)
[stacktrace]
#0 /home/jiminny/app/Services/Crm/Hubspot/Client.php(195): Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService->getPaginatedDataGenerator(Object(Jiminny\\Services\\Crm\\Hubspot\\Client), Array, 'contact', 0, 0, NULL)
#1 /home/jiminny/app/Services/Crm/Hubspot/Client.php(176): Jiminny\\Services\\Crm\\Hubspot\\Client->getPaginatedDataGenerator(Array, 'contact', 0, 0, NULL)
#2 /home/jiminny/app/Services/Crm/Hubspot/Service.php(1203): Jiminny\\Services\\Crm\\Hubspot\\Client->getPaginatedData(Array, 'contact')
#3 /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php(353): Jiminny\\Services\\Crm\\Hubspot\\Service->matchByName('Robot')
#4 /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php(44): Jiminny\\Console\\Commands\\JiminnyDebugCommand->rateLimit()
#5 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Jiminny\\Console\\Commands\\JiminnyDebugCommand->handle(Object(Jiminny\\Jobs\\JobDispatcher), Object(Jiminny\\Services\\Kiosk\\AutomatedReports\\AutomatedReportsService), Object(Jiminny\\Repositories\\AutomatedReportsRepository), Object(Jiminny\\Services\\UserPilot\\UserPilotClient))
#6 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#7 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure(Object(Closure))
#8 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod(Object(Illuminate\\Foundation\\Application), Array, Object(Closure))
#9 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call(Object(Illuminate\\Foundation\\Application), Array, Array, NULL)
#10 /home/jiminny/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call(Array)
#11 /home/jiminny/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Illuminate\\Console\\OutputStyle))
#12 /home/jiminny/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Illuminate\\Console\\OutputStyle))
#13 /home/jiminny/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#14 /home/jiminny/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand(Object(Jiminny\\Console\\Commands\\JiminnyDebugCommand), Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#15 /home/jiminny/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#16 /home/jiminny/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#17 /home/jiminny/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#18 /home/jiminny/artisan(13): Illuminate\\Foundation\\Application->handleCommand(Object(Symfony\\Component\\Console\\Input\\ArgvInput))
#19 {main}
"} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"[2026-05-07 13:20:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}\n[2026-05-07 13:20:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}\n[2026-05-07 13:20:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}\n[2026-05-07 13:20:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}\n[2026-05-07 13:20:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":0,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.52,\"average_seconds_per_request\":0} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}\n[2026-05-07 13:20:37] local.ERROR: Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned {\"exception\":\"[object] (TypeError(code: 0): Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Pagination\\\\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned at /home/jiminny/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:83)\n[stacktrace]\n#0 /home/jiminny/app/Services/Crm/Hubspot/Client.php(195): Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Pagination\\\\HubspotPaginationService->getPaginatedDataGenerator(Object(Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Client), Array, 'contact', 0, 0, NULL)\n#1 /home/jiminny/app/Services/Crm/Hubspot/Client.php(176): Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Client->getPaginatedDataGenerator(Array, 'contact', 0, 0, NULL)\n#2 /home/jiminny/app/Services/Crm/Hubspot/Service.php(1203): Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Client->getPaginatedData(Array, 'contact')\n#3 /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php(353): Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Service->matchByName('Robot')\n#4 /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php(44): Jiminny\\\\Console\\\\Commands\\\\JiminnyDebugCommand->rateLimit()\n#5 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Jiminny\\\\Console\\\\Commands\\\\JiminnyDebugCommand->handle(Object(Jiminny\\\\Jobs\\\\JobDispatcher), Object(Jiminny\\\\Services\\\\Kiosk\\\\AutomatedReports\\\\AutomatedReportsService), Object(Jiminny\\\\Repositories\\\\AutomatedReportsRepository), Object(Jiminny\\\\Services\\\\UserPilot\\\\UserPilotClient))\n#6 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\\\Container\\\\BoundMethod::Illuminate\\\\Container\\\\{closure}()\n#7 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\\\Container\\\\Util::unwrapIfClosure(Object(Closure))\n#8 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\\\Container\\\\BoundMethod::callBoundMethod(Object(Illuminate\\\\Foundation\\\\Application), Array, Object(Closure))\n#9 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\\\Container\\\\BoundMethod::call(Object(Illuminate\\\\Foundation\\\\Application), Array, Array, NULL)\n#10 /home/jiminny/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\\\Container\\\\Container->call(Array)\n#11 /home/jiminny/vendor/symfony/console/Command/Command.php(341): Illuminate\\\\Console\\\\Command->execute(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Illuminate\\\\Console\\\\OutputStyle))\n#12 /home/jiminny/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\\\Component\\\\Console\\\\Command\\\\Command->run(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Illuminate\\\\Console\\\\OutputStyle))\n#13 /home/jiminny/vendor/symfony/console/Application.php(1117): Illuminate\\\\Console\\\\Command->run(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput))\n#14 /home/jiminny/vendor/symfony/console/Application.php(356): Symfony\\\\Component\\\\Console\\\\Application->doRunCommand(Object(Jiminny\\\\Console\\\\Commands\\\\JiminnyDebugCommand), Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput))\n#15 /home/jiminny/vendor/symfony/console/Application.php(195): Symfony\\\\Component\\\\Console\\\\Application->doRun(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput))\n#16 /home/jiminny/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\\\Component\\\\Console\\\\Application->run(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput))\n#17 /home/jiminny/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\\\Foundation\\\\Console\\\\Kernel->handle(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput))\n#18 /home/jiminny/artisan(13): Illuminate\\\\Foundation\\\\Application->handleCommand(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput))\n#19 {main}\n\"} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}","depth":4,"on_screen":true,"value":"[2026-05-07 13:20:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}\n[2026-05-07 13:20:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}\n[2026-05-07 13:20:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}\n[2026-05-07 13:20:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}\n[2026-05-07 13:20:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":0,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.52,\"average_seconds_per_request\":0} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}\n[2026-05-07 13:20:37] local.ERROR: Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned {\"exception\":\"[object] (TypeError(code: 0): Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Pagination\\\\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned at /home/jiminny/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:83)\n[stacktrace]\n#0 /home/jiminny/app/Services/Crm/Hubspot/Client.php(195): Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Pagination\\\\HubspotPaginationService->getPaginatedDataGenerator(Object(Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Client), Array, 'contact', 0, 0, NULL)\n#1 /home/jiminny/app/Services/Crm/Hubspot/Client.php(176): Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Client->getPaginatedDataGenerator(Array, 'contact', 0, 0, NULL)\n#2 /home/jiminny/app/Services/Crm/Hubspot/Service.php(1203): Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Client->getPaginatedData(Array, 'contact')\n#3 /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php(353): Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Service->matchByName('Robot')\n#4 /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php(44): Jiminny\\\\Console\\\\Commands\\\\JiminnyDebugCommand->rateLimit()\n#5 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Jiminny\\\\Console\\\\Commands\\\\JiminnyDebugCommand->handle(Object(Jiminny\\\\Jobs\\\\JobDispatcher), Object(Jiminny\\\\Services\\\\Kiosk\\\\AutomatedReports\\\\AutomatedReportsService), Object(Jiminny\\\\Repositories\\\\AutomatedReportsRepository), Object(Jiminny\\\\Services\\\\UserPilot\\\\UserPilotClient))\n#6 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\\\Container\\\\BoundMethod::Illuminate\\\\Container\\\\{closure}()\n#7 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\\\Container\\\\Util::unwrapIfClosure(Object(Closure))\n#8 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\\\Container\\\\BoundMethod::callBoundMethod(Object(Illuminate\\\\Foundation\\\\Application), Array, Object(Closure))\n#9 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\\\Container\\\\BoundMethod::call(Object(Illuminate\\\\Foundation\\\\Application), Array, Array, NULL)\n#10 /home/jiminny/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\\\Container\\\\Container->call(Array)\n#11 /home/jiminny/vendor/symfony/console/Command/Command.php(341): Illuminate\\\\Console\\\\Command->execute(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Illuminate\\\\Console\\\\OutputStyle))\n#12 /home/jiminny/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\\\Component\\\\Console\\\\Command\\\\Command->run(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Illuminate\\\\Console\\\\OutputStyle))\n#13 /home/jiminny/vendor/symfony/console/Application.php(1117): Illuminate\\\\Console\\\\Command->run(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput))\n#14 /home/jiminny/vendor/symfony/console/Application.php(356): Symfony\\\\Component\\\\Console\\\\Application->doRunCommand(Object(Jiminny\\\\Console\\\\Commands\\\\JiminnyDebugCommand), Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput))\n#15 /home/jiminny/vendor/symfony/console/Application.php(195): Symfony\\\\Component\\\\Console\\\\Application->doRun(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput))\n#16 /home/jiminny/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\\\Component\\\\Console\\\\Application->run(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput))\n#17 /home/jiminny/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\\\Foundation\\\\Console\\\\Kernel->handle(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput))\n#18 /home/jiminny/artisan(13): Illuminate\\\\Foundation\\\\Application->handleCommand(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput))\n#19 {main}\n\"} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6921962725416879589
|
-8161648376329334909
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-07 13:20:36] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}
[2026-05-07 13:20:36] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}
[2026-05-07 13:20:36] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}
[2026-05-07 13:20:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}
[2026-05-07 13:20:37] local.INFO: [Hubspot] Pagination completed {"team_id":2,"endpoint":"https://api.hubapi.com/crm/v3/objects/contact/search","total_requests":0,"total_records_fetched":0,"total_elapsed_seconds":0.52,"average_seconds_per_request":0} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}
[2026-05-07 13:20:37] local.ERROR: Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned {"exception":"[object] (TypeError(code: 0): Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned at /home/jiminny/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:83)
[stacktrace]
#0 /home/jiminny/app/Services/Crm/Hubspot/Client.php(195): Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService->getPaginatedDataGenerator(Object(Jiminny\\Services\\Crm\\Hubspot\\Client), Array, 'contact', 0, 0, NULL)
#1 /home/jiminny/app/Services/Crm/Hubspot/Client.php(176): Jiminny\\Services\\Crm\\Hubspot\\Client->getPaginatedDataGenerator(Array, 'contact', 0, 0, NULL)
#2 /home/jiminny/app/Services/Crm/Hubspot/Service.php(1203): Jiminny\\Services\\Crm\\Hubspot\\Client->getPaginatedData(Array, 'contact')
#3 /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php(353): Jiminny\\Services\\Crm\\Hubspot\\Service->matchByName('Robot')
#4 /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php(44): Jiminny\\Console\\Commands\\JiminnyDebugCommand->rateLimit()
#5 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Jiminny\\Console\\Commands\\JiminnyDebugCommand->handle(Object(Jiminny\\Jobs\\JobDispatcher), Object(Jiminny\\Services\\Kiosk\\AutomatedReports\\AutomatedReportsService), Object(Jiminny\\Repositories\\AutomatedReportsRepository), Object(Jiminny\\Services\\UserPilot\\UserPilotClient))
#6 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#7 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure(Object(Closure))
#8 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod(Object(Illuminate\\Foundation\\Application), Array, Object(Closure))
#9 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call(Object(Illuminate\\Foundation\\Application), Array, Array, NULL)
#10 /home/jiminny/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call(Array)
#11 /home/jiminny/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Illuminate\\Console\\OutputStyle))
#12 /home/jiminny/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Illuminate\\Console\\OutputStyle))
#13 /home/jiminny/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#14 /home/jiminny/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand(Object(Jiminny\\Console\\Commands\\JiminnyDebugCommand), Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#15 /home/jiminny/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#16 /home/jiminny/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#17 /home/jiminny/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#18 /home/jiminny/artisan(13): Illuminate\\Foundation\\Application->handleCommand(Object(Symfony\\Component\\Console\\Input\\ArgvInput))
#19 {main}
"} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
4248
|
152
|
20
|
2026-05-07T13:20:48.392066+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778160048392_m2.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-07 13:20:36] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}
[2026-05-07 13:20:36] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}
[2026-05-07 13:20:36] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}
[2026-05-07 13:20:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}
[2026-05-07 13:20:37] local.INFO: [Hubspot] Pagination completed {"team_id":2,"endpoint":"https://api.hubapi.com/crm/v3/objects/contact/search","total_requests":0,"total_records_fetched":0,"total_elapsed_seconds":0.52,"average_seconds_per_request":0} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}
[2026-05-07 13:20:37] local.ERROR: Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned {"exception":"[object] (TypeError(code: 0): Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned at /home/jiminny/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:83)
[stacktrace]
#0 /home/jiminny/app/Services/Crm/Hubspot/Client.php(195): Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService->getPaginatedDataGenerator(Object(Jiminny\\Services\\Crm\\Hubspot\\Client), Array, 'contact', 0, 0, NULL)
#1 /home/jiminny/app/Services/Crm/Hubspot/Client.php(176): Jiminny\\Services\\Crm\\Hubspot\\Client->getPaginatedDataGenerator(Array, 'contact', 0, 0, NULL)
#2 /home/jiminny/app/Services/Crm/Hubspot/Service.php(1203): Jiminny\\Services\\Crm\\Hubspot\\Client->getPaginatedData(Array, 'contact')
#3 /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php(353): Jiminny\\Services\\Crm\\Hubspot\\Service->matchByName('Robot')
#4 /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php(44): Jiminny\\Console\\Commands\\JiminnyDebugCommand->rateLimit()
#5 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Jiminny\\Console\\Commands\\JiminnyDebugCommand->handle(Object(Jiminny\\Jobs\\JobDispatcher), Object(Jiminny\\Services\\Kiosk\\AutomatedReports\\AutomatedReportsService), Object(Jiminny\\Repositories\\AutomatedReportsRepository), Object(Jiminny\\Services\\UserPilot\\UserPilotClient))
#6 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#7 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure(Object(Closure))
#8 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod(Object(Illuminate\\Foundation\\Application), Array, Object(Closure))
#9 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call(Object(Illuminate\\Foundation\\Application), Array, Array, NULL)
#10 /home/jiminny/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call(Array)
#11 /home/jiminny/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Illuminate\\Console\\OutputStyle))
#12 /home/jiminny/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Illuminate\\Console\\OutputStyle))
#13 /home/jiminny/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#14 /home/jiminny/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand(Object(Jiminny\\Console\\Commands\\JiminnyDebugCommand), Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#15 /home/jiminny/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#16 /home/jiminny/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#17 /home/jiminny/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#18 /home/jiminny/artisan(13): Illuminate\\Foundation\\Application->handleCommand(Object(Symfony\\Component\\Console\\Input\\ArgvInput))
#19 {main}
"} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"[2026-05-07 13:20:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}\n[2026-05-07 13:20:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}\n[2026-05-07 13:20:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}\n[2026-05-07 13:20:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}\n[2026-05-07 13:20:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":0,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.52,\"average_seconds_per_request\":0} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}\n[2026-05-07 13:20:37] local.ERROR: Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned {\"exception\":\"[object] (TypeError(code: 0): Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Pagination\\\\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned at /home/jiminny/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:83)\n[stacktrace]\n#0 /home/jiminny/app/Services/Crm/Hubspot/Client.php(195): Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Pagination\\\\HubspotPaginationService->getPaginatedDataGenerator(Object(Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Client), Array, 'contact', 0, 0, NULL)\n#1 /home/jiminny/app/Services/Crm/Hubspot/Client.php(176): Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Client->getPaginatedDataGenerator(Array, 'contact', 0, 0, NULL)\n#2 /home/jiminny/app/Services/Crm/Hubspot/Service.php(1203): Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Client->getPaginatedData(Array, 'contact')\n#3 /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php(353): Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Service->matchByName('Robot')\n#4 /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php(44): Jiminny\\\\Console\\\\Commands\\\\JiminnyDebugCommand->rateLimit()\n#5 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Jiminny\\\\Console\\\\Commands\\\\JiminnyDebugCommand->handle(Object(Jiminny\\\\Jobs\\\\JobDispatcher), Object(Jiminny\\\\Services\\\\Kiosk\\\\AutomatedReports\\\\AutomatedReportsService), Object(Jiminny\\\\Repositories\\\\AutomatedReportsRepository), Object(Jiminny\\\\Services\\\\UserPilot\\\\UserPilotClient))\n#6 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\\\Container\\\\BoundMethod::Illuminate\\\\Container\\\\{closure}()\n#7 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\\\Container\\\\Util::unwrapIfClosure(Object(Closure))\n#8 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\\\Container\\\\BoundMethod::callBoundMethod(Object(Illuminate\\\\Foundation\\\\Application), Array, Object(Closure))\n#9 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\\\Container\\\\BoundMethod::call(Object(Illuminate\\\\Foundation\\\\Application), Array, Array, NULL)\n#10 /home/jiminny/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\\\Container\\\\Container->call(Array)\n#11 /home/jiminny/vendor/symfony/console/Command/Command.php(341): Illuminate\\\\Console\\\\Command->execute(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Illuminate\\\\Console\\\\OutputStyle))\n#12 /home/jiminny/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\\\Component\\\\Console\\\\Command\\\\Command->run(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Illuminate\\\\Console\\\\OutputStyle))\n#13 /home/jiminny/vendor/symfony/console/Application.php(1117): Illuminate\\\\Console\\\\Command->run(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput))\n#14 /home/jiminny/vendor/symfony/console/Application.php(356): Symfony\\\\Component\\\\Console\\\\Application->doRunCommand(Object(Jiminny\\\\Console\\\\Commands\\\\JiminnyDebugCommand), Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput))\n#15 /home/jiminny/vendor/symfony/console/Application.php(195): Symfony\\\\Component\\\\Console\\\\Application->doRun(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput))\n#16 /home/jiminny/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\\\Component\\\\Console\\\\Application->run(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput))\n#17 /home/jiminny/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\\\Foundation\\\\Console\\\\Kernel->handle(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput))\n#18 /home/jiminny/artisan(13): Illuminate\\\\Foundation\\\\Application->handleCommand(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput))\n#19 {main}\n\"} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}","depth":4,"bounds":{"left":0.41422874,"top":0.09736632,"width":0.58577126,"height":0.8818835},"on_screen":true,"value":"[2026-05-07 13:20:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}\n[2026-05-07 13:20:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}\n[2026-05-07 13:20:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}\n[2026-05-07 13:20:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}\n[2026-05-07 13:20:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":0,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.52,\"average_seconds_per_request\":0} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}\n[2026-05-07 13:20:37] local.ERROR: Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned {\"exception\":\"[object] (TypeError(code: 0): Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Pagination\\\\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned at /home/jiminny/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:83)\n[stacktrace]\n#0 /home/jiminny/app/Services/Crm/Hubspot/Client.php(195): Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Pagination\\\\HubspotPaginationService->getPaginatedDataGenerator(Object(Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Client), Array, 'contact', 0, 0, NULL)\n#1 /home/jiminny/app/Services/Crm/Hubspot/Client.php(176): Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Client->getPaginatedDataGenerator(Array, 'contact', 0, 0, NULL)\n#2 /home/jiminny/app/Services/Crm/Hubspot/Service.php(1203): Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Client->getPaginatedData(Array, 'contact')\n#3 /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php(353): Jiminny\\\\Services\\\\Crm\\\\Hubspot\\\\Service->matchByName('Robot')\n#4 /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php(44): Jiminny\\\\Console\\\\Commands\\\\JiminnyDebugCommand->rateLimit()\n#5 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Jiminny\\\\Console\\\\Commands\\\\JiminnyDebugCommand->handle(Object(Jiminny\\\\Jobs\\\\JobDispatcher), Object(Jiminny\\\\Services\\\\Kiosk\\\\AutomatedReports\\\\AutomatedReportsService), Object(Jiminny\\\\Repositories\\\\AutomatedReportsRepository), Object(Jiminny\\\\Services\\\\UserPilot\\\\UserPilotClient))\n#6 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\\\Container\\\\BoundMethod::Illuminate\\\\Container\\\\{closure}()\n#7 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\\\Container\\\\Util::unwrapIfClosure(Object(Closure))\n#8 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\\\Container\\\\BoundMethod::callBoundMethod(Object(Illuminate\\\\Foundation\\\\Application), Array, Object(Closure))\n#9 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\\\Container\\\\BoundMethod::call(Object(Illuminate\\\\Foundation\\\\Application), Array, Array, NULL)\n#10 /home/jiminny/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\\\Container\\\\Container->call(Array)\n#11 /home/jiminny/vendor/symfony/console/Command/Command.php(341): Illuminate\\\\Console\\\\Command->execute(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Illuminate\\\\Console\\\\OutputStyle))\n#12 /home/jiminny/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\\\Component\\\\Console\\\\Command\\\\Command->run(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Illuminate\\\\Console\\\\OutputStyle))\n#13 /home/jiminny/vendor/symfony/console/Application.php(1117): Illuminate\\\\Console\\\\Command->run(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput))\n#14 /home/jiminny/vendor/symfony/console/Application.php(356): Symfony\\\\Component\\\\Console\\\\Application->doRunCommand(Object(Jiminny\\\\Console\\\\Commands\\\\JiminnyDebugCommand), Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput))\n#15 /home/jiminny/vendor/symfony/console/Application.php(195): Symfony\\\\Component\\\\Console\\\\Application->doRun(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput))\n#16 /home/jiminny/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\\\Component\\\\Console\\\\Application->run(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput))\n#17 /home/jiminny/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\\\Foundation\\\\Console\\\\Kernel->handle(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput), Object(Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput))\n#18 /home/jiminny/artisan(13): Illuminate\\\\Foundation\\\\Application->handleCommand(Object(Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput))\n#19 {main}\n\"} {\"correlation_id\":\"d957f311-f3c3-4899-b7a0-393eb5418938\",\"trace_id\":\"4cee629b-1a78-4aa0-a34a-3bf75220e314\"}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6921962725416879589
|
-8161648376329334909
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-07 13:20:36] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}
[2026-05-07 13:20:36] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}
[2026-05-07 13:20:36] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}
[2026-05-07 13:20:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}
[2026-05-07 13:20:37] local.INFO: [Hubspot] Pagination completed {"team_id":2,"endpoint":"https://api.hubapi.com/crm/v3/objects/contact/search","total_requests":0,"total_records_fetched":0,"total_elapsed_seconds":0.52,"average_seconds_per_request":0} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}
[2026-05-07 13:20:37] local.ERROR: Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned {"exception":"[object] (TypeError(code: 0): Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService::getPaginatedDataGenerator(): Return value must be of type Generator, none returned at /home/jiminny/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:83)
[stacktrace]
#0 /home/jiminny/app/Services/Crm/Hubspot/Client.php(195): Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService->getPaginatedDataGenerator(Object(Jiminny\\Services\\Crm\\Hubspot\\Client), Array, 'contact', 0, 0, NULL)
#1 /home/jiminny/app/Services/Crm/Hubspot/Client.php(176): Jiminny\\Services\\Crm\\Hubspot\\Client->getPaginatedDataGenerator(Array, 'contact', 0, 0, NULL)
#2 /home/jiminny/app/Services/Crm/Hubspot/Service.php(1203): Jiminny\\Services\\Crm\\Hubspot\\Client->getPaginatedData(Array, 'contact')
#3 /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php(353): Jiminny\\Services\\Crm\\Hubspot\\Service->matchByName('Robot')
#4 /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php(44): Jiminny\\Console\\Commands\\JiminnyDebugCommand->rateLimit()
#5 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Jiminny\\Console\\Commands\\JiminnyDebugCommand->handle(Object(Jiminny\\Jobs\\JobDispatcher), Object(Jiminny\\Services\\Kiosk\\AutomatedReports\\AutomatedReportsService), Object(Jiminny\\Repositories\\AutomatedReportsRepository), Object(Jiminny\\Services\\UserPilot\\UserPilotClient))
#6 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#7 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure(Object(Closure))
#8 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod(Object(Illuminate\\Foundation\\Application), Array, Object(Closure))
#9 /home/jiminny/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\\Container\\BoundMethod::call(Object(Illuminate\\Foundation\\Application), Array, Array, NULL)
#10 /home/jiminny/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\\Container\\Container->call(Array)
#11 /home/jiminny/vendor/symfony/console/Command/Command.php(341): Illuminate\\Console\\Command->execute(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Illuminate\\Console\\OutputStyle))
#12 /home/jiminny/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\\Component\\Console\\Command\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Illuminate\\Console\\OutputStyle))
#13 /home/jiminny/vendor/symfony/console/Application.php(1117): Illuminate\\Console\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#14 /home/jiminny/vendor/symfony/console/Application.php(356): Symfony\\Component\\Console\\Application->doRunCommand(Object(Jiminny\\Console\\Commands\\JiminnyDebugCommand), Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#15 /home/jiminny/vendor/symfony/console/Application.php(195): Symfony\\Component\\Console\\Application->doRun(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#16 /home/jiminny/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#17 /home/jiminny/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1235): Illuminate\\Foundation\\Console\\Kernel->handle(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#18 /home/jiminny/artisan(13): Illuminate\\Foundation\\Application->handleCommand(Object(Symfony\\Component\\Console\\Input\\ArgvInput))
#19 {main}
"} {"correlation_id":"d957f311-f3c3-4899-b7a0-393eb5418938","trace_id":"4cee629b-1a78-4aa0-a34a-3bf75220e314"}...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
12778
|
564
|
7
|
2026-05-09T09:29:46.937364+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-09/1778 /Users/lukas/.screenpipe/data/data/2026-05-09/1778318986937_m2.jpg...
|
Firefox
|
Finance Hub — Personal
|
True
|
finance-hub.lakylak.xyz/outpost.goauthentik.io/sig finance-hub.lakylak.xyz/outpost.goauthentik.io/sign_out...
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Pull requests · screenpipe/screenpipe · GitHub
Pul Pull requests · screenpipe/screenpipe · GitHub
Pull requests · screenpipe/screenpipe · GitHub
DNS / Nameservers | Hostinger
DNS / Nameservers | Hostinger
Nginx Proxy Manager
Nginx Proxy Manager
Screenpipe — Archive
Screenpipe — Archive
SQLite Web: archive.db
SQLite Web: archive.db
SQLite Web: db.sqlite
SQLite Web: db.sqlite
screenpipe/.claude/skills at main · screenpipe/screenpipe · GitHub
screenpipe/.claude/skills at main · screenpipe/screenpipe · GitHub
DXP4800PLUS-B5F8
DXP4800PLUS-B5F8
AFFiNE - All In One KnowledgeOS
AFFiNE - All In One KnowledgeOS
All docs · AFFiNE
All docs · AFFiNE
Payments Logger
Payments Logger
Inbox - [EMAIL] - Gmail
Inbox - [EMAIL] - Gmail
(25) Quora
(25) Quora
Location Logger
Location Logger
Finance Hub
Finance Hub
Finance Hub
Finance Hub
Close tab
Select: payments - db - Adminer
Select: payments - db - Adminer
Електронно банкиране ДСК Директ от Банка ДСК
Електронно банкиране ДСК Директ от Банка ДСК
Stop Losing Notes: Pick A Cross-Device App That Syncs | AFFiNE
Stop Losing Notes: Pick A Cross-Device App That Syncs | AFFiNE
VIVACOM
VIVACOM
Смартфони с Unlimited план до 120 € отстъпка | Vivacom
Смартфони с Unlimited план до 120 € отстъпка | Vivacom
VIVACOM
VIVACOM
Смартфон SAMSUNG GALAXY A57 5G 256GB | Vivacom
Смартфон SAMSUNG GALAXY A57 5G 256GB | Vivacom
Claude Code | Claude Platform
Claude Code | Claude Platform
Claude
Claude
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Open history (⇧⌘H)
Open bookmarks (⌘B)
Bitwarden
Finance Hub
Finance Hub
8
transaction
s
Payments
Payments
Upload CSV
Upload CSV
Refresh
Display settings
Sign out
Filters
Filters
Search...
dd
/
mm
/
yyyy
Calendar
dd
/
mm
/
yyyy
Calendar
DATE
RECIPIENT
AMOUNT
TAGS
08 May 2026
POL BALICE Lagardere Travel R KR3
Raw data
5.49 EUR
Send
Send
Skip
Skip
Delete
08 May 2026
BGR SOFIA CBA EKO MARKET
Raw data
5.51 EUR
Groceries
Send
Send
Skip
Skip
Delete
08 May 2026
BGR SOFIYA LIDL BALGARIYA EOOD UL TODOR
Raw data
67.81 EUR
Groceries
Send
Send
Skip
Skip
Delete
08 May 2026
—
Raw data
9.04 EUR
Send
Send
Skip
Skip
Delete
08 May 2026
—
Raw data
15.46 EUR
Send
Send
Skip
Skip
Delete
08 May 2026
—
Raw data
5.02 EUR
Send
Send
Skip
Skip
Delete
08 May 2026, 10:00
DSK ATM, SOFIA, BG
Raw data
200.00 EUR
Send
Send
Skip
Skip
Delete
DATE
08 May 2026
08 May 2026
08 May 2026
08 May 2026
08 May 2026
08 May 2026
08 May 2026, 10:00
RECIPIENT
POL BALICE Lagardere Travel R KR3
Raw data
BGR SOFIA CBA EKO MARKET
Raw data
BGR SOFIYA LIDL BALGARIYA EOOD UL TODOR
Raw data
—
Raw data
—
Raw data
—
Raw data
DSK ATM, SOFIA, BG
Raw data
AMOUNT
5.49 EUR
5.51 EUR
67.81 EUR
9.04 EUR
15.46 EUR
5.02 EUR
200.00 EUR
TAGS
Groceries
Groceries
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Pull requests · screenpipe/screenpipe · GitHub","depth":4,"bounds":{"left":0.0,"top":0.0518755,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · screenpipe/screenpipe · GitHub","depth":5,"bounds":{"left":0.013297873,"top":0.06304868,"width":0.080784574,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"DNS / Nameservers | Hostinger","depth":4,"bounds":{"left":0.0,"top":0.08459697,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"DNS / Nameservers | Hostinger","depth":5,"bounds":{"left":0.013297873,"top":0.09577015,"width":0.053856384,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Nginx Proxy Manager","depth":4,"bounds":{"left":0.0,"top":0.11731844,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Nginx Proxy Manager","depth":5,"bounds":{"left":0.013297873,"top":0.12849163,"width":0.036901597,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Screenpipe — Archive","depth":4,"bounds":{"left":0.0,"top":0.15003991,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Screenpipe — Archive","depth":5,"bounds":{"left":0.013297873,"top":0.16121309,"width":0.037898935,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"SQLite Web: archive.db","depth":4,"bounds":{"left":0.0,"top":0.18276137,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SQLite Web: archive.db","depth":5,"bounds":{"left":0.013297873,"top":0.19393456,"width":0.040724736,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"SQLite Web: db.sqlite","depth":4,"bounds":{"left":0.0,"top":0.21548285,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SQLite Web: db.sqlite","depth":5,"bounds":{"left":0.013297873,"top":0.22665602,"width":0.03756649,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"screenpipe/.claude/skills at main · screenpipe/screenpipe · GitHub","depth":4,"bounds":{"left":0.0,"top":0.2482043,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"screenpipe/.claude/skills at main · screenpipe/screenpipe · GitHub","depth":5,"bounds":{"left":0.013297873,"top":0.25937748,"width":0.11469415,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"DXP4800PLUS-B5F8","depth":4,"bounds":{"left":0.0,"top":0.28092578,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"DXP4800PLUS-B5F8","depth":5,"bounds":{"left":0.013297873,"top":0.29209897,"width":0.036901597,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"AFFiNE - All In One KnowledgeOS","depth":4,"bounds":{"left":0.0,"top":0.31364724,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"AFFiNE - All In One KnowledgeOS","depth":5,"bounds":{"left":0.013297873,"top":0.32482043,"width":0.05851064,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"All docs · AFFiNE","depth":4,"bounds":{"left":0.0,"top":0.3463687,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"All docs · AFFiNE","depth":5,"bounds":{"left":0.013297873,"top":0.3575419,"width":0.029587766,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Payments Logger","depth":4,"bounds":{"left":0.0,"top":0.3790902,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Payments Logger","depth":5,"bounds":{"left":0.013297873,"top":0.39026338,"width":0.030086435,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Inbox - kovaliklukas@gmail.com - Gmail","depth":4,"bounds":{"left":0.0,"top":0.41181165,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Inbox - kovaliklukas@gmail.com - Gmail","depth":5,"bounds":{"left":0.013297873,"top":0.42298484,"width":0.06898271,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"(25) Quora","depth":4,"bounds":{"left":0.0,"top":0.4445331,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"(25) Quora","depth":5,"bounds":{"left":0.013297873,"top":0.4557063,"width":0.018949468,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Location Logger","depth":4,"bounds":{"left":0.0,"top":0.4772546,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Location Logger","depth":5,"bounds":{"left":0.013297873,"top":0.4884278,"width":0.028091755,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Finance Hub","depth":4,"bounds":{"left":0.0,"top":0.509976,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Finance Hub","depth":5,"bounds":{"left":0.013297873,"top":0.5211492,"width":0.021609042,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Finance Hub","depth":4,"bounds":{"left":0.0,"top":0.54269755,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Finance Hub","depth":5,"bounds":{"left":0.013297873,"top":0.55387074,"width":0.021609042,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.10139628,"top":0.54988027,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Select: payments - db - Adminer","depth":4,"bounds":{"left":0.0,"top":0.575419,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Select: payments - db - Adminer","depth":5,"bounds":{"left":0.013297873,"top":0.5865922,"width":0.05651596,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Електронно банкиране ДСК Директ от Банка ДСК","depth":4,"bounds":{"left":0.0,"top":0.60814047,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Електронно банкиране ДСК Директ от Банка ДСК","depth":5,"bounds":{"left":0.013297873,"top":0.61931366,"width":0.09059176,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Stop Losing Notes: Pick A Cross-Device App That Syncs | AFFiNE","depth":4,"bounds":{"left":0.0,"top":0.6408619,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Stop Losing Notes: Pick A Cross-Device App That Syncs | AFFiNE","depth":5,"bounds":{"left":0.013297873,"top":0.6520351,"width":0.113696806,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"VIVACOM","depth":4,"bounds":{"left":0.0,"top":0.6735834,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"VIVACOM","depth":5,"bounds":{"left":0.013297873,"top":0.6847566,"width":0.016788565,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Смартфони с Unlimited план до 120 € отстъпка | Vivacom","depth":4,"bounds":{"left":0.0,"top":0.70630485,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Смартфони с Unlimited план до 120 € отстъпка | Vivacom","depth":5,"bounds":{"left":0.013297873,"top":0.71747804,"width":0.10239362,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"VIVACOM","depth":4,"bounds":{"left":0.0,"top":0.7390263,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"VIVACOM","depth":5,"bounds":{"left":0.013297873,"top":0.7501995,"width":0.016788565,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Смартфон SAMSUNG GALAXY A57 5G 256GB | Vivacom","depth":4,"bounds":{"left":0.0,"top":0.7717478,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Смартфон SAMSUNG GALAXY A57 5G 256GB | Vivacom","depth":5,"bounds":{"left":0.013297873,"top":0.782921,"width":0.098902926,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Claude Code | Claude Platform","depth":4,"bounds":{"left":0.0,"top":0.8044693,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Claude Code | Claude Platform","depth":5,"bounds":{"left":0.013297873,"top":0.8156425,"width":0.053357713,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Claude","depth":4,"bounds":{"left":0.0,"top":0.83719075,"width":0.113696806,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Claude","depth":5,"bounds":{"left":0.013297873,"top":0.84836394,"width":0.012134309,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.0028257978,"top":0.87150836,"width":0.108211435,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.0028257978,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.013796543,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.024933511,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.036070477,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Bitwarden","depth":6,"bounds":{"left":0.04720745,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Finance Hub","depth":8,"bounds":{"left":0.22539894,"top":0.0622506,"width":0.032081116,"height":0.015961692},"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Finance Hub","depth":9,"bounds":{"left":0.22539894,"top":0.06264964,"width":0.032081116,"height":0.015163607},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8","depth":9,"bounds":{"left":0.22539894,"top":0.07861133,"width":0.002493351,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"transaction","depth":9,"bounds":{"left":0.2278923,"top":0.07861133,"width":0.02244016,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"s","depth":9,"bounds":{"left":0.25033244,"top":0.07861133,"width":0.0019946808,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Payments","depth":8,"bounds":{"left":0.37982047,"top":0.06384677,"width":0.036070477,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Payments","depth":10,"bounds":{"left":0.39045876,"top":0.0698324,"width":0.02144282,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Upload CSV","depth":8,"bounds":{"left":0.41655585,"top":0.06384677,"width":0.04105718,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Upload CSV","depth":10,"bounds":{"left":0.42719415,"top":0.0698324,"width":0.02642952,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Refresh","depth":8,"bounds":{"left":0.57978725,"top":0.06384677,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Display settings","depth":8,"bounds":{"left":0.5924202,"top":0.06384677,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Sign out","depth":8,"bounds":{"left":0.6050532,"top":0.06384677,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Filters","depth":8,"bounds":{"left":0.21708776,"top":0.13168396,"width":0.3929521,"height":0.015961692},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Filters","depth":10,"bounds":{"left":0.22506648,"top":0.13288109,"width":0.013630319,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXTextField","text":"Search...","depth":9,"bounds":{"left":0.21708776,"top":0.16759777,"width":0.075465426,"height":0.030327214},"on_screen":true,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"dd","depth":11,"bounds":{"left":0.23038563,"top":0.21588188,"width":0.0056515955,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":10,"bounds":{"left":0.23703457,"top":0.21588188,"width":0.0013297872,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mm","depth":11,"bounds":{"left":0.2393617,"top":0.21588188,"width":0.007978723,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":10,"bounds":{"left":0.24833776,"top":0.21588188,"width":0.0013297872,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"yyyy","depth":11,"bounds":{"left":0.2506649,"top":0.21588188,"width":0.009973404,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Calendar","depth":10,"bounds":{"left":0.40043217,"top":0.21667998,"width":0.006150266,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"dd","depth":11,"bounds":{"left":0.42885637,"top":0.21588188,"width":0.0056515955,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":10,"bounds":{"left":0.43550533,"top":0.21588188,"width":0.0013297872,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mm","depth":11,"bounds":{"left":0.43783244,"top":0.21588188,"width":0.007978723,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":10,"bounds":{"left":0.44680852,"top":0.21588188,"width":0.0013297872,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"yyyy","depth":11,"bounds":{"left":0.44913563,"top":0.21588188,"width":0.009973404,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Calendar","depth":10,"bounds":{"left":0.59890294,"top":0.21667998,"width":0.006150266,"height":0.012370312},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DATE","depth":13,"bounds":{"left":0.21708776,"top":0.27813247,"width":0.011136968,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"RECIPIENT","depth":13,"bounds":{"left":0.28706783,"top":0.27813247,"width":0.023105053,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"AMOUNT","depth":13,"bounds":{"left":0.43001994,"top":0.27813247,"width":0.019281914,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"TAGS","depth":13,"bounds":{"left":0.47706118,"top":0.27813247,"width":0.011469414,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"08 May 2026","depth":13,"bounds":{"left":0.21708776,"top":0.30766162,"width":0.028756648,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"POL BALICE Lagardere Travel R KR3","depth":14,"bounds":{"left":0.28706783,"top":0.30766162,"width":0.07795878,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"bounds":{"left":0.36635637,"top":0.30885875,"width":0.004654255,"height":0.011173184},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"5.49 EUR","depth":13,"bounds":{"left":0.43001994,"top":0.30766162,"width":0.021110373,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Send","depth":13,"bounds":{"left":0.53607047,"top":0.3048683,"width":0.021775266,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"bounds":{"left":0.5447141,"top":0.3084597,"width":0.009807181,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"bounds":{"left":0.55917555,"top":0.30407023,"width":0.020944148,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"bounds":{"left":0.5681516,"top":0.3084597,"width":0.00831117,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"bounds":{"left":0.58144945,"top":0.30407023,"width":0.008643617,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"08 May 2026","depth":13,"bounds":{"left":0.21708776,"top":0.34197924,"width":0.028756648,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"BGR SOFIA CBA EKO MARKET","depth":14,"bounds":{"left":0.28706783,"top":0.34197924,"width":0.0653258,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"bounds":{"left":0.3537234,"top":0.34317636,"width":0.004654255,"height":0.011173184},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"5.51 EUR","depth":13,"bounds":{"left":0.43001994,"top":0.34197924,"width":0.021110373,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Groceries","depth":13,"bounds":{"left":0.47905585,"top":0.34277734,"width":0.01861702,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Send","depth":13,"bounds":{"left":0.53607047,"top":0.33918595,"width":0.021775266,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"bounds":{"left":0.5447141,"top":0.34277734,"width":0.009807181,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"bounds":{"left":0.55917555,"top":0.33838788,"width":0.020944148,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"bounds":{"left":0.5681516,"top":0.34277734,"width":0.00831117,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"bounds":{"left":0.58144945,"top":0.33838788,"width":0.008643617,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"08 May 2026","depth":13,"bounds":{"left":0.21708776,"top":0.37629688,"width":0.028756648,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"BGR SOFIYA LIDL BALGARIYA EOOD UL TODOR","depth":14,"bounds":{"left":0.28706783,"top":0.37629688,"width":0.10322473,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"bounds":{"left":0.39162233,"top":0.377494,"width":0.004654255,"height":0.011173184},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":true,"is_selected":false},{"role":"AXStaticText","text":"67.81 EUR","depth":13,"bounds":{"left":0.43001994,"top":0.37629688,"width":0.024102394,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Groceries","depth":13,"bounds":{"left":0.47905585,"top":0.37709498,"width":0.01861702,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Send","depth":13,"bounds":{"left":0.53607047,"top":0.3735036,"width":0.021775266,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"bounds":{"left":0.5447141,"top":0.37709498,"width":0.009807181,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"bounds":{"left":0.55917555,"top":0.37270552,"width":0.020944148,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"bounds":{"left":0.5681516,"top":0.37709498,"width":0.00831117,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"bounds":{"left":0.58144945,"top":0.37270552,"width":0.008643617,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"08 May 2026","depth":13,"bounds":{"left":0.21708776,"top":0.41061452,"width":0.028756648,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"—","depth":14,"bounds":{"left":0.28706783,"top":0.41061452,"width":0.004155585,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"bounds":{"left":0.2925532,"top":0.41181165,"width":0.004654255,"height":0.011173184},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"9.04 EUR","depth":13,"bounds":{"left":0.43001994,"top":0.41061452,"width":0.021110373,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Send","depth":13,"bounds":{"left":0.53607047,"top":0.40782124,"width":0.021775266,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"bounds":{"left":0.5447141,"top":0.4114126,"width":0.009807181,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"bounds":{"left":0.55917555,"top":0.40702313,"width":0.020944148,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"bounds":{"left":0.5681516,"top":0.4114126,"width":0.00831117,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"bounds":{"left":0.58144945,"top":0.40702313,"width":0.008643617,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"08 May 2026","depth":13,"bounds":{"left":0.21708776,"top":0.44493216,"width":0.028756648,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"—","depth":14,"bounds":{"left":0.28706783,"top":0.44493216,"width":0.004155585,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"bounds":{"left":0.2925532,"top":0.4461293,"width":0.004654255,"height":0.011173184},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"15.46 EUR","depth":13,"bounds":{"left":0.43001994,"top":0.44493216,"width":0.024102394,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Send","depth":13,"bounds":{"left":0.53607047,"top":0.44213888,"width":0.021775266,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"bounds":{"left":0.5447141,"top":0.44573024,"width":0.009807181,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"bounds":{"left":0.55917555,"top":0.44134077,"width":0.020944148,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"bounds":{"left":0.5681516,"top":0.44573024,"width":0.00831117,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"bounds":{"left":0.58144945,"top":0.44134077,"width":0.008643617,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"08 May 2026","depth":13,"bounds":{"left":0.21708776,"top":0.4792498,"width":0.028756648,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"—","depth":14,"bounds":{"left":0.28706783,"top":0.4792498,"width":0.004155585,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"bounds":{"left":0.2925532,"top":0.48044693,"width":0.004654255,"height":0.011173184},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"5.02 EUR","depth":13,"bounds":{"left":0.43001994,"top":0.4792498,"width":0.021110373,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Send","depth":13,"bounds":{"left":0.53607047,"top":0.4764565,"width":0.021775266,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"bounds":{"left":0.5447141,"top":0.48004788,"width":0.009807181,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"bounds":{"left":0.55917555,"top":0.47565842,"width":0.020944148,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"bounds":{"left":0.5681516,"top":0.48004788,"width":0.00831117,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"bounds":{"left":0.58144945,"top":0.47565842,"width":0.008643617,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"08 May 2026, 10:00","depth":13,"bounds":{"left":0.21708776,"top":0.51356745,"width":0.044215426,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"DSK ATM, SOFIA, BG","depth":14,"bounds":{"left":0.28706783,"top":0.51356745,"width":0.04537899,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"bounds":{"left":0.3337766,"top":0.51476455,"width":0.004654255,"height":0.011173184},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"200.00 EUR","depth":13,"bounds":{"left":0.43001994,"top":0.51356745,"width":0.027094414,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Send","depth":13,"bounds":{"left":0.53607047,"top":0.51077414,"width":0.021775266,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"bounds":{"left":0.5447141,"top":0.5143655,"width":0.009807181,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"bounds":{"left":0.55917555,"top":0.509976,"width":0.020944148,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"bounds":{"left":0.5681516,"top":0.5143655,"width":0.00831117,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"bounds":{"left":0.58144945,"top":0.509976,"width":0.008643617,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"DATE","depth":13,"bounds":{"left":0.21708776,"top":0.27813247,"width":0.011136968,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"08 May 2026","depth":13,"bounds":{"left":0.21708776,"top":0.30766162,"width":0.028756648,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"08 May 2026","depth":13,"bounds":{"left":0.21708776,"top":0.34197924,"width":0.028756648,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"08 May 2026","depth":13,"bounds":{"left":0.21708776,"top":0.37629688,"width":0.028756648,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"08 May 2026","depth":13,"bounds":{"left":0.21708776,"top":0.41061452,"width":0.028756648,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"08 May 2026","depth":13,"bounds":{"left":0.21708776,"top":0.44493216,"width":0.028756648,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"08 May 2026","depth":13,"bounds":{"left":0.21708776,"top":0.4792498,"width":0.028756648,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"08 May 2026, 10:00","depth":13,"bounds":{"left":0.21708776,"top":0.51356745,"width":0.044215426,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"RECIPIENT","depth":13,"bounds":{"left":0.28706783,"top":0.27813247,"width":0.023105053,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"POL BALICE Lagardere Travel R KR3","depth":14,"bounds":{"left":0.28706783,"top":0.30766162,"width":0.07795878,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"bounds":{"left":0.36635637,"top":0.30885875,"width":0.004654255,"height":0.011173184},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"BGR SOFIA CBA EKO MARKET","depth":14,"bounds":{"left":0.28706783,"top":0.34197924,"width":0.0653258,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"bounds":{"left":0.3537234,"top":0.34317636,"width":0.004654255,"height":0.011173184},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"BGR SOFIYA LIDL BALGARIYA EOOD UL TODOR","depth":14,"bounds":{"left":0.28706783,"top":0.37629688,"width":0.10322473,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"bounds":{"left":0.39162233,"top":0.377494,"width":0.004654255,"height":0.011173184},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":true,"is_selected":false},{"role":"AXStaticText","text":"—","depth":14,"bounds":{"left":0.28706783,"top":0.41061452,"width":0.004155585,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"bounds":{"left":0.2925532,"top":0.41181165,"width":0.004654255,"height":0.011173184},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"—","depth":14,"bounds":{"left":0.28706783,"top":0.44493216,"width":0.004155585,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"bounds":{"left":0.2925532,"top":0.4461293,"width":0.004654255,"height":0.011173184},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"—","depth":14,"bounds":{"left":0.28706783,"top":0.4792498,"width":0.004155585,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"bounds":{"left":0.2925532,"top":0.48044693,"width":0.004654255,"height":0.011173184},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"DSK ATM, SOFIA, BG","depth":14,"bounds":{"left":0.28706783,"top":0.51356745,"width":0.04537899,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"bounds":{"left":0.3337766,"top":0.51476455,"width":0.004654255,"height":0.011173184},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"AMOUNT","depth":13,"bounds":{"left":0.43001994,"top":0.27813247,"width":0.019281914,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"5.49 EUR","depth":13,"bounds":{"left":0.43001994,"top":0.30766162,"width":0.021110373,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"5.51 EUR","depth":13,"bounds":{"left":0.43001994,"top":0.34197924,"width":0.021110373,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"67.81 EUR","depth":13,"bounds":{"left":0.43001994,"top":0.37629688,"width":0.024102394,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"9.04 EUR","depth":13,"bounds":{"left":0.43001994,"top":0.41061452,"width":0.021110373,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"15.46 EUR","depth":13,"bounds":{"left":0.43001994,"top":0.44493216,"width":0.024102394,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"5.02 EUR","depth":13,"bounds":{"left":0.43001994,"top":0.4792498,"width":0.021110373,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"200.00 EUR","depth":13,"bounds":{"left":0.43001994,"top":0.51356745,"width":0.027094414,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"TAGS","depth":13,"bounds":{"left":0.47706118,"top":0.27813247,"width":0.011469414,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Groceries","depth":13,"bounds":{"left":0.47905585,"top":0.34277734,"width":0.01861702,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Groceries","depth":13,"bounds":{"left":0.47905585,"top":0.37709498,"width":0.01861702,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Send","depth":13,"bounds":{"left":0.53607047,"top":0.3048683,"width":0.021775266,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"bounds":{"left":0.5447141,"top":0.3084597,"width":0.009807181,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"bounds":{"left":0.55917555,"top":0.30407023,"width":0.020944148,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"bounds":{"left":0.5681516,"top":0.3084597,"width":0.00831117,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"bounds":{"left":0.58144945,"top":0.30407023,"width":0.008643617,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Send","depth":13,"bounds":{"left":0.53607047,"top":0.33918595,"width":0.021775266,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"bounds":{"left":0.5447141,"top":0.34277734,"width":0.009807181,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"bounds":{"left":0.55917555,"top":0.33838788,"width":0.020944148,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"bounds":{"left":0.5681516,"top":0.34277734,"width":0.00831117,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"bounds":{"left":0.58144945,"top":0.33838788,"width":0.008643617,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Send","depth":13,"bounds":{"left":0.53607047,"top":0.3735036,"width":0.021775266,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"bounds":{"left":0.5447141,"top":0.37709498,"width":0.009807181,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"bounds":{"left":0.55917555,"top":0.37270552,"width":0.020944148,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"bounds":{"left":0.5681516,"top":0.37709498,"width":0.00831117,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"bounds":{"left":0.58144945,"top":0.37270552,"width":0.008643617,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Send","depth":13,"bounds":{"left":0.53607047,"top":0.40782124,"width":0.021775266,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"bounds":{"left":0.5447141,"top":0.4114126,"width":0.009807181,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"bounds":{"left":0.55917555,"top":0.40702313,"width":0.020944148,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"bounds":{"left":0.5681516,"top":0.4114126,"width":0.00831117,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"bounds":{"left":0.58144945,"top":0.40702313,"width":0.008643617,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Send","depth":13,"bounds":{"left":0.53607047,"top":0.44213888,"width":0.021775266,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"bounds":{"left":0.5447141,"top":0.44573024,"width":0.009807181,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"bounds":{"left":0.55917555,"top":0.44134077,"width":0.020944148,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"bounds":{"left":0.5681516,"top":0.44573024,"width":0.00831117,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"bounds":{"left":0.58144945,"top":0.44134077,"width":0.008643617,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Send","depth":13,"bounds":{"left":0.53607047,"top":0.4764565,"width":0.021775266,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"bounds":{"left":0.5447141,"top":0.48004788,"width":0.009807181,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"bounds":{"left":0.55917555,"top":0.47565842,"width":0.020944148,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"bounds":{"left":0.5681516,"top":0.48004788,"width":0.00831117,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"bounds":{"left":0.58144945,"top":0.47565842,"width":0.008643617,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Send","depth":13,"bounds":{"left":0.53607047,"top":0.51077414,"width":0.021775266,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"bounds":{"left":0.5447141,"top":0.5143655,"width":0.009807181,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"bounds":{"left":0.55917555,"top":0.509976,"width":0.020944148,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"bounds":{"left":0.5681516,"top":0.5143655,"width":0.00831117,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"bounds":{"left":0.58144945,"top":0.509976,"width":0.008643617,"height":0.0207502},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
-6921545842034796187
|
-7061498583283751006
|
visual_change
|
accessibility
|
NULL
|
Pull requests · screenpipe/screenpipe · GitHub
Pul Pull requests · screenpipe/screenpipe · GitHub
Pull requests · screenpipe/screenpipe · GitHub
DNS / Nameservers | Hostinger
DNS / Nameservers | Hostinger
Nginx Proxy Manager
Nginx Proxy Manager
Screenpipe — Archive
Screenpipe — Archive
SQLite Web: archive.db
SQLite Web: archive.db
SQLite Web: db.sqlite
SQLite Web: db.sqlite
screenpipe/.claude/skills at main · screenpipe/screenpipe · GitHub
screenpipe/.claude/skills at main · screenpipe/screenpipe · GitHub
DXP4800PLUS-B5F8
DXP4800PLUS-B5F8
AFFiNE - All In One KnowledgeOS
AFFiNE - All In One KnowledgeOS
All docs · AFFiNE
All docs · AFFiNE
Payments Logger
Payments Logger
Inbox - [EMAIL] - Gmail
Inbox - [EMAIL] - Gmail
(25) Quora
(25) Quora
Location Logger
Location Logger
Finance Hub
Finance Hub
Finance Hub
Finance Hub
Close tab
Select: payments - db - Adminer
Select: payments - db - Adminer
Електронно банкиране ДСК Директ от Банка ДСК
Електронно банкиране ДСК Директ от Банка ДСК
Stop Losing Notes: Pick A Cross-Device App That Syncs | AFFiNE
Stop Losing Notes: Pick A Cross-Device App That Syncs | AFFiNE
VIVACOM
VIVACOM
Смартфони с Unlimited план до 120 € отстъпка | Vivacom
Смартфони с Unlimited план до 120 € отстъпка | Vivacom
VIVACOM
VIVACOM
Смартфон SAMSUNG GALAXY A57 5G 256GB | Vivacom
Смартфон SAMSUNG GALAXY A57 5G 256GB | Vivacom
Claude Code | Claude Platform
Claude Code | Claude Platform
Claude
Claude
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Open history (⇧⌘H)
Open bookmarks (⌘B)
Bitwarden
Finance Hub
Finance Hub
8
transaction
s
Payments
Payments
Upload CSV
Upload CSV
Refresh
Display settings
Sign out
Filters
Filters
Search...
dd
/
mm
/
yyyy
Calendar
dd
/
mm
/
yyyy
Calendar
DATE
RECIPIENT
AMOUNT
TAGS
08 May 2026
POL BALICE Lagardere Travel R KR3
Raw data
5.49 EUR
Send
Send
Skip
Skip
Delete
08 May 2026
BGR SOFIA CBA EKO MARKET
Raw data
5.51 EUR
Groceries
Send
Send
Skip
Skip
Delete
08 May 2026
BGR SOFIYA LIDL BALGARIYA EOOD UL TODOR
Raw data
67.81 EUR
Groceries
Send
Send
Skip
Skip
Delete
08 May 2026
—
Raw data
9.04 EUR
Send
Send
Skip
Skip
Delete
08 May 2026
—
Raw data
15.46 EUR
Send
Send
Skip
Skip
Delete
08 May 2026
—
Raw data
5.02 EUR
Send
Send
Skip
Skip
Delete
08 May 2026, 10:00
DSK ATM, SOFIA, BG
Raw data
200.00 EUR
Send
Send
Skip
Skip
Delete
DATE
08 May 2026
08 May 2026
08 May 2026
08 May 2026
08 May 2026
08 May 2026
08 May 2026, 10:00
RECIPIENT
POL BALICE Lagardere Travel R KR3
Raw data
BGR SOFIA CBA EKO MARKET
Raw data
BGR SOFIYA LIDL BALGARIYA EOOD UL TODOR
Raw data
—
Raw data
—
Raw data
—
Raw data
DSK ATM, SOFIA, BG
Raw data
AMOUNT
5.49 EUR
5.51 EUR
67.81 EUR
9.04 EUR
15.46 EUR
5.02 EUR
200.00 EUR
TAGS
Groceries
Groceries
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
12779
|
563
|
11
|
2026-05-09T09:29:47.506463+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-09/1778 /Users/lukas/.screenpipe/data/data/2026-05-09/1778318987506_m1.jpg...
|
Firefox
|
Finance Hub — Personal
|
True
|
finance-hub.lakylak.xyz/outpost.goauthentik.io/sig finance-hub.lakylak.xyz/outpost.goauthentik.io/sign_out...
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Pull requests · screenpipe/screenpipe · GitHub
Pul Pull requests · screenpipe/screenpipe · GitHub
Pull requests · screenpipe/screenpipe · GitHub
DNS / Nameservers | Hostinger
DNS / Nameservers | Hostinger
Nginx Proxy Manager
Nginx Proxy Manager
Screenpipe — Archive
Screenpipe — Archive
SQLite Web: archive.db
SQLite Web: archive.db
SQLite Web: db.sqlite
SQLite Web: db.sqlite
screenpipe/.claude/skills at main · screenpipe/screenpipe · GitHub
screenpipe/.claude/skills at main · screenpipe/screenpipe · GitHub
DXP4800PLUS-B5F8
DXP4800PLUS-B5F8
AFFiNE - All In One KnowledgeOS
AFFiNE - All In One KnowledgeOS
All docs · AFFiNE
All docs · AFFiNE
Payments Logger
Payments Logger
Inbox - [EMAIL] - Gmail
Inbox - [EMAIL] - Gmail
(25) Quora
(25) Quora
Location Logger
Location Logger
Finance Hub
Finance Hub
Finance Hub
Finance Hub
Close tab
Select: payments - db - Adminer
Select: payments - db - Adminer
Електронно банкиране ДСК Директ от Банка ДСК
Електронно банкиране ДСК Директ от Банка ДСК
Stop Losing Notes: Pick A Cross-Device App That Syncs | AFFiNE
Stop Losing Notes: Pick A Cross-Device App That Syncs | AFFiNE
VIVACOM
VIVACOM
Смартфони с Unlimited план до 120 € отстъпка | Vivacom
Смартфони с Unlimited план до 120 € отстъпка | Vivacom
VIVACOM
VIVACOM
Смартфон SAMSUNG GALAXY A57 5G 256GB | Vivacom
Смартфон SAMSUNG GALAXY A57 5G 256GB | Vivacom
Claude Code | Claude Platform
Claude Code | Claude Platform
Claude
Claude
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Open history (⇧⌘H)
Open bookmarks (⌘B)
Bitwarden
Finance Hub
Finance Hub
8
transaction
s
Payments
Payments
Upload CSV
Upload CSV
Refresh
Display settings
Sign out
Filters
Filters
Search...
dd
/
mm
/
yyyy
Calendar
dd
/
mm
/
yyyy
Calendar
DATE
RECIPIENT
AMOUNT
TAGS
08 May 2026
POL BALICE Lagardere Travel R KR3
Raw data
5.49 EUR
Send
Send
Skip
Skip
Delete
08 May 2026
BGR SOFIA CBA EKO MARKET
Raw data
5.51 EUR
Groceries
Send
Send
Skip
Skip
Delete
08 May 2026
BGR SOFIYA LIDL BALGARIYA EOOD UL TODOR
Raw data
67.81 EUR
Groceries
Send
Send
Skip
Skip
Delete
08 May 2026
—
Raw data
9.04 EUR
Send
Send
Skip
Skip
Delete
08 May 2026
—
Raw data
15.46 EUR
Send
Send
Skip
Skip
Delete
08 May 2026
—
Raw data
5.02 EUR
Send
Send
Skip
Skip
Delete
08 May 2026, 10:00
DSK ATM, SOFIA, BG
Raw data
200.00 EUR
Send
Send
Skip
Skip
Delete
DATE
08 May 2026
08 May 2026
08 May 2026
08 May 2026
08 May 2026
08 May 2026
08 May 2026, 10:00
RECIPIENT
POL BALICE Lagardere Travel R KR3
Raw data
BGR SOFIA CBA EKO MARKET
Raw data
BGR SOFIYA LIDL BALGARIYA EOOD UL TODOR
Raw data
—
Raw data
—
Raw data
—
Raw data
DSK ATM, SOFIA, BG
Raw data
AMOUNT
5.49 EUR
5.51 EUR
67.81 EUR
9.04 EUR
15.46 EUR
5.02 EUR
200.00 EUR
TAGS
Groceries
Groceries
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Pull requests · screenpipe/screenpipe · GitHub","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · screenpipe/screenpipe · GitHub","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"DNS / Nameservers | Hostinger","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"DNS / Nameservers | Hostinger","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Nginx Proxy Manager","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Nginx Proxy Manager","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Screenpipe — Archive","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Screenpipe — Archive","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"SQLite Web: archive.db","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SQLite Web: archive.db","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"SQLite Web: db.sqlite","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SQLite Web: db.sqlite","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"screenpipe/.claude/skills at main · screenpipe/screenpipe · GitHub","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"screenpipe/.claude/skills at main · screenpipe/screenpipe · GitHub","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"DXP4800PLUS-B5F8","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"DXP4800PLUS-B5F8","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"AFFiNE - All In One KnowledgeOS","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"AFFiNE - All In One KnowledgeOS","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"All docs · AFFiNE","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"All docs · AFFiNE","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Payments Logger","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Payments Logger","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Inbox - kovaliklukas@gmail.com - Gmail","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Inbox - kovaliklukas@gmail.com - Gmail","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"(25) Quora","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"(25) Quora","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Location Logger","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Location Logger","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Finance Hub","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Finance Hub","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Finance Hub","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Finance Hub","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"Select: payments - db - Adminer","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Select: payments - db - Adminer","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Електронно банкиране ДСК Директ от Банка ДСК","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Електронно банкиране ДСК Директ от Банка ДСК","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Stop Losing Notes: Pick A Cross-Device App That Syncs | AFFiNE","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Stop Losing Notes: Pick A Cross-Device App That Syncs | AFFiNE","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"VIVACOM","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"VIVACOM","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Смартфони с Unlimited план до 120 € отстъпка | Vivacom","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Смартфони с Unlimited план до 120 € отстъпка | Vivacom","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"VIVACOM","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"VIVACOM","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Смартфон SAMSUNG GALAXY A57 5G 256GB | Vivacom","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Смартфон SAMSUNG GALAXY A57 5G 256GB | Vivacom","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Claude Code | Claude Platform","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Claude Code | Claude Platform","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Claude","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Claude","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Bitwarden","depth":6,"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Finance Hub","depth":8,"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Finance Hub","depth":9,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8","depth":9,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"transaction","depth":9,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"s","depth":9,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Payments","depth":8,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Payments","depth":10,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Upload CSV","depth":8,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Upload CSV","depth":10,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Refresh","depth":8,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Display settings","depth":8,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Sign out","depth":8,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Filters","depth":8,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Filters","depth":10,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXTextField","text":"Search...","depth":9,"on_screen":true,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"dd","depth":11,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":10,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mm","depth":11,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":10,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"yyyy","depth":11,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Calendar","depth":10,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"dd","depth":11,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":10,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mm","depth":11,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":10,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"yyyy","depth":11,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Calendar","depth":10,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DATE","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"RECIPIENT","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"AMOUNT","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"TAGS","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"08 May 2026","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"POL BALICE Lagardere Travel R KR3","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"5.49 EUR","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Send","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"08 May 2026","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"BGR SOFIA CBA EKO MARKET","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"5.51 EUR","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Groceries","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Send","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"08 May 2026","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"BGR SOFIYA LIDL BALGARIYA EOOD UL TODOR","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":true,"is_selected":false},{"role":"AXStaticText","text":"67.81 EUR","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Groceries","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Send","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"08 May 2026","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"—","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"9.04 EUR","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Send","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"08 May 2026","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"—","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"15.46 EUR","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Send","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"08 May 2026","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"—","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"5.02 EUR","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Send","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"08 May 2026, 10:00","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"DSK ATM, SOFIA, BG","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"200.00 EUR","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Send","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"DATE","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"08 May 2026","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"08 May 2026","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"08 May 2026","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"08 May 2026","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"08 May 2026","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"08 May 2026","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"08 May 2026, 10:00","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"RECIPIENT","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"POL BALICE Lagardere Travel R KR3","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"BGR SOFIA CBA EKO MARKET","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"BGR SOFIYA LIDL BALGARIYA EOOD UL TODOR","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":true,"is_selected":false},{"role":"AXStaticText","text":"—","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"—","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"—","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"DSK ATM, SOFIA, BG","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Raw data","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"AMOUNT","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"5.49 EUR","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"5.51 EUR","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"67.81 EUR","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"9.04 EUR","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"15.46 EUR","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"5.02 EUR","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"200.00 EUR","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"TAGS","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Groceries","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Groceries","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Send","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Send","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Send","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Send","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Send","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Send","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Send","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Send","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Skip","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Delete","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
-6921545842034796187
|
-7061498583283751006
|
click
|
accessibility
|
NULL
|
Pull requests · screenpipe/screenpipe · GitHub
Pul Pull requests · screenpipe/screenpipe · GitHub
Pull requests · screenpipe/screenpipe · GitHub
DNS / Nameservers | Hostinger
DNS / Nameservers | Hostinger
Nginx Proxy Manager
Nginx Proxy Manager
Screenpipe — Archive
Screenpipe — Archive
SQLite Web: archive.db
SQLite Web: archive.db
SQLite Web: db.sqlite
SQLite Web: db.sqlite
screenpipe/.claude/skills at main · screenpipe/screenpipe · GitHub
screenpipe/.claude/skills at main · screenpipe/screenpipe · GitHub
DXP4800PLUS-B5F8
DXP4800PLUS-B5F8
AFFiNE - All In One KnowledgeOS
AFFiNE - All In One KnowledgeOS
All docs · AFFiNE
All docs · AFFiNE
Payments Logger
Payments Logger
Inbox - [EMAIL] - Gmail
Inbox - [EMAIL] - Gmail
(25) Quora
(25) Quora
Location Logger
Location Logger
Finance Hub
Finance Hub
Finance Hub
Finance Hub
Close tab
Select: payments - db - Adminer
Select: payments - db - Adminer
Електронно банкиране ДСК Директ от Банка ДСК
Електронно банкиране ДСК Директ от Банка ДСК
Stop Losing Notes: Pick A Cross-Device App That Syncs | AFFiNE
Stop Losing Notes: Pick A Cross-Device App That Syncs | AFFiNE
VIVACOM
VIVACOM
Смартфони с Unlimited план до 120 € отстъпка | Vivacom
Смартфони с Unlimited план до 120 € отстъпка | Vivacom
VIVACOM
VIVACOM
Смартфон SAMSUNG GALAXY A57 5G 256GB | Vivacom
Смартфон SAMSUNG GALAXY A57 5G 256GB | Vivacom
Claude Code | Claude Platform
Claude Code | Claude Platform
Claude
Claude
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Open history (⇧⌘H)
Open bookmarks (⌘B)
Bitwarden
Finance Hub
Finance Hub
8
transaction
s
Payments
Payments
Upload CSV
Upload CSV
Refresh
Display settings
Sign out
Filters
Filters
Search...
dd
/
mm
/
yyyy
Calendar
dd
/
mm
/
yyyy
Calendar
DATE
RECIPIENT
AMOUNT
TAGS
08 May 2026
POL BALICE Lagardere Travel R KR3
Raw data
5.49 EUR
Send
Send
Skip
Skip
Delete
08 May 2026
BGR SOFIA CBA EKO MARKET
Raw data
5.51 EUR
Groceries
Send
Send
Skip
Skip
Delete
08 May 2026
BGR SOFIYA LIDL BALGARIYA EOOD UL TODOR
Raw data
67.81 EUR
Groceries
Send
Send
Skip
Skip
Delete
08 May 2026
—
Raw data
9.04 EUR
Send
Send
Skip
Skip
Delete
08 May 2026
—
Raw data
15.46 EUR
Send
Send
Skip
Skip
Delete
08 May 2026
—
Raw data
5.02 EUR
Send
Send
Skip
Skip
Delete
08 May 2026, 10:00
DSK ATM, SOFIA, BG
Raw data
200.00 EUR
Send
Send
Skip
Skip
Delete
DATE
08 May 2026
08 May 2026
08 May 2026
08 May 2026
08 May 2026
08 May 2026
08 May 2026, 10:00
RECIPIENT
POL BALICE Lagardere Travel R KR3
Raw data
BGR SOFIA CBA EKO MARKET
Raw data
BGR SOFIYA LIDL BALGARIYA EOOD UL TODOR
Raw data
—
Raw data
—
Raw data
—
Raw data
DSK ATM, SOFIA, BG
Raw data
AMOUNT
5.49 EUR
5.51 EUR
67.81 EUR
9.04 EUR
15.46 EUR
5.02 EUR
200.00 EUR
TAGS
Groceries
Groceries
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete
Send
Send
Skip
Skip
Delete...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
24407
|
1018
|
18
|
2026-05-12T09:10:58.132060+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-12/1778 /Users/lukas/.screenpipe/data/data/2026-05-12/1778577058132_m1.jpg...
|
Slack
|
Galya Dimitrova (DM) - Jiminny Inc - 6 new items - Galya Dimitrova (DM) - Jiminny Inc - 6 new items - Slack...
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
1
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
curiosity_lab
engineering
general
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Steliyan Georgiev
Petko Kashinski
Aneliya Angelova
Stefka Stoyanova
Vasil Vasilev
Nikolay Ivanov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Stoyan Tanev
Lukas Kovalik
you
Toast
Jira Cloud
Google Calendar
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Lukas Kovalik
Today at 9:34:43 AM
9:34 AM
ами там не знам от prophet идва без url, може би да го видим после със Стели
Today at 9:35:32 AM
9:35
реално от prophet ни идва response само че pdf_url си е null
(edited)
Galya Dimitrova
Today at 9:36:21 AM
9:36 AM
можеш ли да се чуеш с него и да го видите дали има някакво лесно решение. Примерно още като ви дойде такъв респонс да се счита че е failed и да се ретрайне или нещо подобно
Lukas Kovalik
Today at 9:36:53 AM
9:36 AM
добре ще му пиша днес
Galya Dimitrova
Today at 9:38:32 AM
9:38 AM
мерси
Lukas Kovalik
Today at 9:39:17 AM
9:39 AM
може и за interesт tracking да намправя един тикет
Galya Dimitrova
Today at 9:39:39 AM
9:39 AM
и там ли не работи
Lukas Kovalik
Today at 9:39:56 AM
9:39 AM
Петко ми писа че си пристига нещо му липсваше така че трябва да видя какво да добавя в payload
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 9:40:12 AM
9:40
не знам още какъв точно е проблем
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 9:41:13 AM
9:41 AM
аха. ако можеш направо сега да го гледаш че поради различни проблеми не работи цялата схема с нотификациите и Планхат от както сме пуснали фичъра. И всеки ден след кой го клика за да давам репорти на CS и много ми се иска да подкараме автоматизацията
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Lukas Kovalik
Today at 9:41:53 AM
9:41 AM
добре
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 9:42:07 AM
9:42 AM
мерси
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 9:42:16 AM
9:42
то първо Планхат имаха бъг и ги чаках една седмица да го фикснат
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Lukas Kovalik
Today at 12:08:05 PM
12:08 PM
проверих UP automated reports tracking
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":14,"bounds":{"left":0.20347223,"top":0.08111111,"width":0.025,"height":0.04},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"bounds":{"left":0.19791667,"top":0.14,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"bounds":{"left":0.20555556,"top":0.19222222,"width":0.020833334,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"bounds":{"left":0.19791667,"top":0.21555555,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"bounds":{"left":0.20763889,"top":0.26777777,"width":0.016666668,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"bounds":{"left":0.19791667,"top":0.2911111,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"bounds":{"left":0.20277777,"top":0.34333333,"width":0.027083334,"height":0.015555556},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.20277777,"top":0.34333333,"width":0.0055555557,"height":0.015555556}},{"char_start":1,"char_count":7,"bounds":{"left":0.20763889,"top":0.34333333,"width":0.022222223,"height":0.015555556}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"bounds":{"left":0.19791667,"top":0.36666667,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"bounds":{"left":0.20833333,"top":0.4188889,"width":0.015972223,"height":0.015555556},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.20833333,"top":0.4188889,"width":0.004166667,"height":0.015555556}},{"char_start":1,"char_count":4,"bounds":{"left":0.2125,"top":0.4188889,"width":0.011805556,"height":0.015555556}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"bounds":{"left":0.19791667,"top":0.4422222,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":16,"bounds":{"left":0.20694445,"top":0.49444443,"width":0.018055556,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"bounds":{"left":0.19791667,"top":0.5177778,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":16,"bounds":{"left":0.20694445,"top":0.57,"width":0.01875,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"More unreads","depth":17,"bounds":{"left":0.2736111,"top":0.13444445,"width":0.0875,"height":0.031111112},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Unreads","depth":21,"bounds":{"left":0.26875,"top":0.12777779,"width":0.039583333,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"bounds":{"left":0.26875,"top":0.12777779,"width":0.036805555,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"bounds":{"left":0.26875,"top":0.12777779,"width":0.038194444,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"bounds":{"left":0.26875,"top":0.12777779,"width":0.06111111,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":21,"bounds":{"left":0.37638888,"top":0.12777779,"width":0.0055555557,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"bounds":{"left":0.26875,"top":0.12777779,"width":0.050694443,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":23,"bounds":{"left":0.27986112,"top":0.12777779,"width":0.09166667,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":23,"bounds":{"left":0.27986112,"top":0.12777779,"width":0.093055554,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":23,"bounds":{"left":0.27986112,"top":0.12777779,"width":0.046527777,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":23,"bounds":{"left":0.27986112,"top":0.12777779,"width":0.025694445,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":23,"bounds":{"left":0.27986112,"top":0.12777779,"width":0.038194444,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":23,"bounds":{"left":0.27986112,"top":0.12777779,"width":0.022222223,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":23,"bounds":{"left":0.27986112,"top":0.12777779,"width":0.072222225,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":23,"bounds":{"left":0.27986112,"top":0.12777779,"width":0.057638887,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":23,"bounds":{"left":0.27986112,"top":0.12777779,"width":0.055555556,"height":0.007777778},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":23,"bounds":{"left":0.27986112,"top":0.14666666,"width":0.034027778,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":23,"bounds":{"left":0.27986112,"top":0.17777778,"width":0.048611112,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":23,"bounds":{"left":0.27986112,"top":0.20888889,"width":0.072916664,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.27986112,"top":0.20888889,"width":0.00625,"height":0.02}},{"char_start":1,"char_count":15,"bounds":{"left":0.28611112,"top":0.20888889,"width":0.06666667,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":23,"bounds":{"left":0.27986112,"top":0.24,"width":0.08055556,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":23,"bounds":{"left":0.27986112,"top":0.2711111,"width":0.035416666,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":23,"bounds":{"left":0.27986112,"top":0.30222222,"width":0.036805555,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":23,"bounds":{"left":0.27986112,"top":0.33333334,"width":0.05138889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.27986112,"top":0.33333334,"width":0.0048611113,"height":0.02}},{"char_start":1,"char_count":11,"bounds":{"left":0.2847222,"top":0.33333334,"width":0.045833334,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":23,"bounds":{"left":0.27986112,"top":0.36444443,"width":0.036111113,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":23,"bounds":{"left":0.27986112,"top":0.39555556,"width":0.05138889,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":23,"bounds":{"left":0.27986112,"top":0.42666668,"width":0.094444446,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.27986112,"top":0.42666668,"width":0.004166667,"height":0.02}},{"char_start":1,"char_count":20,"bounds":{"left":0.28402779,"top":0.42666668,"width":0.09861111,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.27986112,"top":0.5,"width":0.07361111,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"bounds":{"left":0.27986112,"top":0.5311111,"width":0.07986111,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":23,"bounds":{"left":0.27986112,"top":0.56222224,"width":0.072222225,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.27986112,"top":0.5933333,"width":0.07847222,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"bounds":{"left":0.27986112,"top":0.6244444,"width":0.079166666,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":23,"bounds":{"left":0.27986112,"top":0.65555555,"width":0.055555556,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.27986112,"top":0.65555555,"width":0.00625,"height":0.02}},{"char_start":1,"char_count":12,"bounds":{"left":0.28611112,"top":0.65555555,"width":0.048611112,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Ivanov","depth":23,"bounds":{"left":0.27986112,"top":0.68666667,"width":0.06736111,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.27986112,"top":0.7177778,"width":0.07847222,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.35833332,"top":0.7177778,"width":0.013194445,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"bounds":{"left":0.36319444,"top":0.7177778,"width":0.029861111,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.36319444,"top":0.7177778,"width":0.008333334,"height":0.02}},{"char_start":1,"char_count":13,"bounds":{"left":0.3715278,"top":0.7177778,"width":0.060416665,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tanev","depth":23,"bounds":{"left":0.27986112,"top":0.7488889,"width":0.060416665,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":23,"bounds":{"left":0.27986112,"top":0.78,"width":0.061805554,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":23,"bounds":{"left":0.3472222,"top":0.78,"width":0.013194445,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.3472222,"top":0.78,"width":0.0048611113,"height":0.02}},{"char_start":1,"char_count":2,"bounds":{"left":0.35208333,"top":0.78,"width":0.011805556,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":23,"bounds":{"left":0.27986112,"top":0.85333335,"width":0.025694445,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":23,"bounds":{"left":0.27986112,"top":0.8844444,"width":0.045833334,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":23,"bounds":{"left":0.27986112,"top":0.91555554,"width":0.06388889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.27986112,"top":0.91555554,"width":0.007638889,"height":0.02}},{"char_start":1,"char_count":14,"bounds":{"left":0.2875,"top":0.91555554,"width":0.06875,"height":0.02}}],"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":17,"bounds":{"left":0.40486112,"top":0.12777779,"width":0.06458333,"height":0.04222222},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":19,"bounds":{"left":0.42430556,"top":0.14,"width":0.039583333,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":17,"bounds":{"left":0.47152779,"top":0.12777779,"width":0.04375,"height":0.04222222},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":19,"bounds":{"left":0.49097222,"top":0.14,"width":0.01875,"height":0.017777778},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.49097222,"top":0.14,"width":0.0055555557,"height":0.017777778}},{"char_start":1,"char_count":4,"bounds":{"left":0.4965278,"top":0.14,"width":0.013194445,"height":0.017777778}}],"role_description":"text"},{"role":"AXRadioButton","text":"Untitled","depth":17,"bounds":{"left":0.51805556,"top":0.12777779,"width":0.06111111,"height":0.04222222},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Untitled","depth":19,"bounds":{"left":0.5375,"top":0.14,"width":0.033333335,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":17,"bounds":{"left":0.58125,"top":0.12777779,"width":0.022916667,"height":0.04222222},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXPopUpButton","text":"Jump to date","depth":22,"bounds":{"left":0.66875,"top":0.17666666,"width":0.05277778,"height":0.031111112},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":23,"bounds":{"left":0.43819445,"top":0.16111112,"width":0.06458333,"height":0.0011111111},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.50277776,"top":0.16111112,"width":0.0055555557,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 9:34:43 AM","depth":23,"bounds":{"left":0.5083333,"top":0.16111112,"width":0.031944446,"height":0.0011111111},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:34 AM","depth":24,"bounds":{"left":0.5083333,"top":0.16111112,"width":0.031944446,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ами там не знам от prophet идва без url, може би да го видим после със Стели","depth":24,"bounds":{"left":0.43819445,"top":0.16111112,"width":0.37916666,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 9:35:32 AM","depth":24,"bounds":{"left":0.41597223,"top":0.16111112,"width":0.016666668,"height":0.0011111111},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:35","depth":25,"bounds":{"left":0.41597223,"top":0.16111112,"width":0.016666668,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"реално от prophet ни идва response само че pdf_url си е null","depth":24,"bounds":{"left":0.43819445,"top":0.16111112,"width":0.28611112,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.72430557,"top":0.16111112,"width":0.0027777778,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"(edited)","depth":24,"bounds":{"left":0.7263889,"top":0.16111112,"width":0.029861111,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":24,"bounds":{"left":0.75625,"top":0.16111112,"width":0.0027777778,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.43819445,"top":0.16111112,"width":0.07638889,"height":0.0011111111},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.5277778,"top":0.16111112,"width":0.0055555557,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 9:36:21 AM","depth":23,"bounds":{"left":0.53333336,"top":0.16111112,"width":0.031944446,"height":0.0011111111},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:36 AM","depth":24,"bounds":{"left":0.53333336,"top":0.16111112,"width":0.031944446,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"можеш ли да се чуеш с него и да го видите дали има някакво лесно решение. Примерно още като ви дойде такъв респонс да се счита че е failed и да се ретрайне или нещо подобно","depth":24,"bounds":{"left":0.43819445,"top":0.16111112,"width":0.5222222,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":23,"bounds":{"left":0.43819445,"top":0.16111112,"width":0.06458333,"height":0.0011111111},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.50277776,"top":0.16111112,"width":0.0055555557,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 9:36:53 AM","depth":23,"bounds":{"left":0.5083333,"top":0.16111112,"width":0.031944446,"height":0.0011111111},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:36 AM","depth":24,"bounds":{"left":0.5083333,"top":0.16111112,"width":0.031944446,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"добре ще му пиша днес","depth":24,"bounds":{"left":0.43819445,"top":0.16111112,"width":0.11597222,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.43819445,"top":0.16111112,"width":0.07638889,"height":0.0011111111},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.5277778,"top":0.16111112,"width":0.0055555557,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 9:38:32 AM","depth":23,"bounds":{"left":0.53333336,"top":0.16111112,"width":0.031944446,"height":0.0011111111},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:38 AM","depth":24,"bounds":{"left":0.53333336,"top":0.16111112,"width":0.031944446,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"мерси","depth":24,"bounds":{"left":0.43819445,"top":0.16111112,"width":0.029861111,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":23,"bounds":{"left":0.43819445,"top":0.16111112,"width":0.06458333,"height":0.0011111111},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.50277776,"top":0.16111112,"width":0.0055555557,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 9:39:17 AM","depth":23,"bounds":{"left":0.5083333,"top":0.16111112,"width":0.031944446,"height":0.0011111111},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:39 AM","depth":24,"bounds":{"left":0.5083333,"top":0.16111112,"width":0.031944446,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"може и за interesт tracking да намправя един тикет","depth":24,"bounds":{"left":0.43819445,"top":0.16111112,"width":0.24513888,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.43819445,"top":0.16111112,"width":0.07638889,"height":0.0011111111},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.5277778,"top":0.16111112,"width":0.0055555557,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 9:39:39 AM","depth":23,"bounds":{"left":0.53333336,"top":0.16111112,"width":0.031944446,"height":0.0011111111},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:39 AM","depth":24,"bounds":{"left":0.53333336,"top":0.16111112,"width":0.031944446,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"и там ли не работи","depth":24,"bounds":{"left":0.43819445,"top":0.16111112,"width":0.09236111,"height":0.007777778},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Lukas Kovalik","depth":23,"bounds":{"left":0.43819445,"top":0.17888889,"width":0.06458333,"height":0.025555555},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.50277776,"top":0.18111111,"width":0.0055555557,"height":0.02111111},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 9:39:56 AM","depth":23,"bounds":{"left":0.5083333,"top":0.18444444,"width":0.031944446,"height":0.016666668},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:39 AM","depth":24,"bounds":{"left":0.5083333,"top":0.18444444,"width":0.031944446,"height":0.016666668},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Петко ми писа че си пристига нещо му липсваше така че трябва да видя какво да добавя в payload","depth":24,"bounds":{"left":0.43819445,"top":0.20555556,"width":0.4763889,"height":0.02111111},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":25,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 9:40:12 AM","depth":24,"bounds":{"left":0.41597223,"top":0.24222222,"width":0.016666668,"height":0.016666668},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:40","depth":25,"bounds":{"left":0.41597223,"top":0.24222222,"width":0.016666668,"height":0.016666668},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"не знам още какъв точно е проблем","depth":24,"bounds":{"left":0.43819445,"top":0.23888889,"width":0.17430556,"height":0.02111111},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":25,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.43819445,"top":0.27,"width":0.07638889,"height":0.025555555},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.5277778,"top":0.27222222,"width":0.0055555557,"height":0.02111111},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 9:41:13 AM","depth":23,"bounds":{"left":0.53333336,"top":0.27555555,"width":0.031944446,"height":0.016666668},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:41 AM","depth":24,"bounds":{"left":0.53333336,"top":0.27555555,"width":0.031944446,"height":0.016666668},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"аха. ако можеш направо сега да го гледаш че поради различни проблеми не работи цялата схема с нотификациите и Планхат от както сме пуснали фичъра. И всеки ден след кой го клика за да давам репорти на CS и много ми се иска да подкараме автоматизацията","depth":24,"bounds":{"left":0.43819445,"top":0.29666665,"width":0.5381944,"height":0.07},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.43819445,"top":0.29666665,"width":0.0055555557,"height":0.02111111}},{"char_start":1,"char_count":249,"bounds":{"left":0.43819445,"top":0.29666665,"width":0.5381944,"height":0.07}}],"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":25,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":23,"bounds":{"left":0.43819445,"top":0.37666667,"width":0.06458333,"height":0.025555555},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.50277776,"top":0.37888888,"width":0.0055555557,"height":0.02111111},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 9:41:53 AM","depth":23,"bounds":{"left":0.5083333,"top":0.38222224,"width":0.031944446,"height":0.016666668},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:41 AM","depth":24,"bounds":{"left":0.5083333,"top":0.38222224,"width":0.031944446,"height":0.016666668},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"добре","depth":24,"bounds":{"left":0.43819445,"top":0.40333334,"width":0.029861111,"height":0.02111111},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":25,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.43819445,"top":0.43444446,"width":0.07638889,"height":0.025555555},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.5277778,"top":0.43666667,"width":0.0055555557,"height":0.02111111},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 9:42:07 AM","depth":23,"bounds":{"left":0.53333336,"top":0.44,"width":0.031944446,"height":0.016666668},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:42 AM","depth":24,"bounds":{"left":0.53333336,"top":0.44,"width":0.031944446,"height":0.016666668},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"мерси","depth":24,"bounds":{"left":0.43819445,"top":0.4611111,"width":0.029861111,"height":0.02111111},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":25,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Today at 9:42:16 AM","depth":24,"bounds":{"left":0.41597223,"top":0.4977778,"width":0.016666668,"height":0.016666668},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"9:42","depth":25,"bounds":{"left":0.41597223,"top":0.4977778,"width":0.016666668,"height":0.016666668},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"то първо Планхат имаха бъг и ги чаках една седмица да го фикснат","depth":24,"bounds":{"left":0.43819445,"top":0.49444443,"width":0.32569444,"height":0.02111111},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":25,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Lukas Kovalik","depth":23,"bounds":{"left":0.43819445,"top":0.52555555,"width":0.06458333,"height":0.025555555},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.50277776,"top":0.5277778,"width":0.0055555557,"height":0.02111111},"on_screen":true,"role_description":"text"},{"role":"AXLink","text":"Today at 12:08:05 PM","depth":23,"bounds":{"left":0.5083333,"top":0.5311111,"width":0.036111113,"height":0.016666668},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12:08 PM","depth":24,"bounds":{"left":0.5083333,"top":0.5311111,"width":0.036111113,"height":0.016666668},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"проверих UP automated reports tracking","depth":24,"bounds":{"left":0.43819445,"top":0.55222225,"width":0.18888889,"height":0.02111111},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"React with white_check_mark","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with eyes","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"React with raised_hands","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Add reaction…","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reply in thread","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Forward message…","depth":25,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Save for later","depth":25,"on_screen":false,"role_description":"toggle button","subrole":"AXToggleButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXPopUpButton","text":"More actions","depth":25,"on_screen":false,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6918744616223438607
|
-5825100622971369390
|
click
|
hybrid
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
More unreads
Unreads
Threads
Huddles
Drafts & sent
1
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
curiosity_lab
engineering
general
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Steliyan Georgiev
Petko Kashinski
Aneliya Angelova
Stefka Stoyanova
Vasil Vasilev
Nikolay Ivanov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Stoyan Tanev
Lukas Kovalik
you
Toast
Jira Cloud
Google Calendar
Messages
Messages
Files
Files
Untitled
Untitled
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Lukas Kovalik
Today at 9:34:43 AM
9:34 AM
ами там не знам от prophet идва без url, може би да го видим после със Стели
Today at 9:35:32 AM
9:35
реално от prophet ни идва response само че pdf_url си е null
(edited)
Galya Dimitrova
Today at 9:36:21 AM
9:36 AM
можеш ли да се чуеш с него и да го видите дали има някакво лесно решение. Примерно още като ви дойде такъв респонс да се счита че е failed и да се ретрайне или нещо подобно
Lukas Kovalik
Today at 9:36:53 AM
9:36 AM
добре ще му пиша днес
Galya Dimitrova
Today at 9:38:32 AM
9:38 AM
мерси
Lukas Kovalik
Today at 9:39:17 AM
9:39 AM
може и за interesт tracking да намправя един тикет
Galya Dimitrova
Today at 9:39:39 AM
9:39 AM
и там ли не работи
Lukas Kovalik
Today at 9:39:56 AM
9:39 AM
Петко ми писа че си пристига нещо му липсваше така че трябва да видя какво да добавя в payload
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 9:40:12 AM
9:40
не знам още какъв точно е проблем
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 9:41:13 AM
9:41 AM
аха. ако можеш направо сега да го гледаш че поради различни проблеми не работи цялата схема с нотификациите и Планхат от както сме пуснали фичъра. И всеки ден след кой го клика за да давам репорти на CS и много ми се иска да подкараме автоматизацията
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Lukas Kovalik
Today at 9:41:53 AM
9:41 AM
добре
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Galya Dimitrova
Today at 9:42:07 AM
9:42 AM
мерси
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 9:42:16 AM
9:42
то първо Планхат имаха бъг и ги чаках една седмица да го фикснат
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Lukas Kovalik
Today at 12:08:05 PM
12:08 PM
проверих UP automated reports tracking
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
SlackFileEditViewGoHistoryDOCKERDOCKER (-zsh)DEVkibanaasticsearch"h:9200/"}["type": "log""@t"data"], "pid" :7, "messkibana{"type" : "log""@tasticsearch","data"],"pid":7,"messkibana1 {"type" : "log","@tugins""licensing"], "pid" :7,"messoasticsearch due to Error:NoLivinkibana1 {"type" : "log""@tticsearch", "data"], "pid" :7, "messagarch elasticsearch: 9200"}kibana1 {"type" : "log""@tasticsearch", "data"], "pid" :7,"messh:9200/"}kibana1 {"type": "log""@tasticsearch", "data"], "pid" :7, "messkibanains"1 {"type": "log""@t,"taskManager""taskManager"],Livingconnections"}kibana{"type" : "log""@tticsearch""data"],"pid" :7, "messagarch elasticsearch:9200*}kibana1 {"type": "log""@tasticsearch", "data"], "pid" :7,"messh:9200/ "3kibana1 {"type" : "log","®tasticsearch", "data"], "pid" :7,"messkibana1 {"type": "log""@tins","taskManager"Living connections"]"taskManager"],kibana1 {"type" : "log""@t)ticsearch","data"], "pid" :7,"messagarchelasticsearch:9200"}kibana1 {"type" : "log""@tasticsearch", "data"],"pid" :7, "messh: 9200/"}kibana1 {"type": "log", "®t)asticsearch", "data"],"pid" :7,"messkibana1 {"type": "log", "®t)ins", "taskManager","taskManager"],Living connections"}unexpected EOFkas@Lukas-Kovaliks-MacBook-Pro-JHomeDMsActivityFilesLaterMore+WindowHelp→Jiminny ...cusuecullls# F More unreads# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of _jimi...• Direct messages. Galya Dimitrova&. Steliyan Georgiev& Petko Kashinskif8. Aneliya AngelovaStefka StoyanovaVasil VasilevNikolay IvanovAneliya Angelova, ...2. Stoyan Tanev iLukas Kovalik y...AppsToastJira CloudGoogle Cale...lahlj Support Daily - in 2 h 50 m100% (8• Tue 12 May 12:10:57Describe what you are looking forGalya Dimitrova• Messages@ Files@ Untitled+Lukas Kovalik 9:39 AMToday ~Петко ми писа че си пристига нещо му липсваше така че трябва да видя какво да добавя в payloadне знам още какъв точно е проблемGalya Dimitrova9:41 AMаха. ако можеш направо сега да го гледаш че поради различни проблеми не работи цялата схема снотификациите и Планхат от както сме пуснали фичъра. И всеки ден след кой го клика за да давам репорти наCS и много ми се иска да подкараме автоматизациятаLukas Kovalik 9:41 AMдобреGalya Dimitrova9:42 AMмерсито пьрво Планхат имаха бъг и ги чаках една седмица да го фикснатLukas Kovalik 12:08 PMпроверих UP automated reports trackingоказа ce false alarm, работи тиGalya Dimitrovaсупер12:08 PMтози Планхат да ти кажа само проблеми с негокаквото и да се пробваш да правишLukas Kovalik 12:09 PMда явно беше cacheтова за sentry при липсващ pdf_url се оказа само един репортсьщия го има като podcast и си работиГоворих със Стели да погледне някаква валидация в самия planhatShift + Return to add a new line...
|
24405
|
NULL
|
NULL
|
NULL
|
|
23234
|
983
|
42
|
2026-05-12T07:39:47.848370+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-12/1778 /Users/lukas/.screenpipe/data/data/2026-05-12/1778571587848_m2.jpg...
|
Slack
|
Toast (DM) - Jiminny Inc - 4 new items - Slack
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
с
с
Clear
Search in
Toast
Recent searches
in:
plat с
с
Clear
Search in
Toast
Recent searches
in:
platform-inner-team
datadog
in:
jiminny-x-integration-app
promise
in:
@Vasil Vasilev
integration-app
Select
Close
Give feedback...
|
[{"role":"AXComboBox","text [{"role":"AXComboBox","text":"с","depth":13,"bounds":{"left":0.15192819,"top":0.025538707,"width":0.1662234,"height":0.030327214},"on_screen":true,"value":"с","role_description":"combo box","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"с","depth":15,"bounds":{"left":0.15192819,"top":0.033519555,"width":0.0023271276,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Clear","depth":11,"bounds":{"left":0.31781915,"top":0.03431764,"width":0.020944148,"height":0.012769354},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Search in","depth":13,"bounds":{"left":0.15192819,"top":0.0726257,"width":0.021609042,"height":0.015961692},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":13,"bounds":{"left":0.18317819,"top":0.0726257,"width":0.012965426,"height":0.015961692},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Recent searches","depth":12,"bounds":{"left":0.13996011,"top":0.11332801,"width":0.030585106,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"in:","depth":13,"bounds":{"left":0.15392287,"top":0.1452514,"width":0.004654255,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":14,"bounds":{"left":0.16256648,"top":0.1452514,"width":0.03956117,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":13,"bounds":{"left":0.20511968,"top":0.14365523,"width":0.0016622341,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"datadog","depth":13,"bounds":{"left":0.20644946,"top":0.14365523,"width":0.019614361,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"in:","depth":13,"bounds":{"left":0.15392287,"top":0.20909816,"width":0.004654255,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":14,"bounds":{"left":0.16256648,"top":0.20909816,"width":0.049534574,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":13,"bounds":{"left":0.21509309,"top":0.207502,"width":0.0016622341,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"promise","depth":13,"bounds":{"left":0.21642287,"top":0.207502,"width":0.019281914,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"in:","depth":13,"bounds":{"left":0.15392287,"top":0.24102154,"width":0.004654255,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"@Vasil Vasilev","depth":14,"bounds":{"left":0.15824468,"top":0.24102154,"width":0.027260639,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":13,"bounds":{"left":0.18849733,"top":0.23942538,"width":0.0016622341,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"integration-app","depth":13,"bounds":{"left":0.18982713,"top":0.23942538,"width":0.036901597,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Select","depth":11,"bounds":{"left":0.15658244,"top":0.31683958,"width":0.011635638,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Close","depth":11,"bounds":{"left":0.34408244,"top":0.032721467,"width":0.0066489363,"height":0.015961692},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Give feedback","depth":11,"bounds":{"left":0.3238032,"top":0.31683958,"width":0.026928192,"height":0.012769354},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6918017809113340525
|
4815949605132182802
|
visual_change
|
hybrid
|
NULL
|
с
с
Clear
Search in
Toast
Recent searches
in:
plat с
с
Clear
Search in
Toast
Recent searches
in:
platform-inner-team
datadog
in:
jiminny-x-integration-app
promise
in:
@Vasil Vasilev
integration-app
Select
Close
Give feedback
ActivityFllesLaterMoreSlackVIewHistoryWindowHelpDescribe what vou are looking forJiminny... ~Search in ToastEh External connectionsHome# StarredÔ jiminny-x-integrati…..& platform-inner-team# Channels# ai-chapter# alerts# backend# bugs# confusion-clinic# curiosity_lab# engineering# general# jiminny-bg# platform-tickets# product_launchesi random# releasessona-otnce# support# thank-vous# the_people_of jimi...^ Direct messages.E. Petko Kashinski. Galya Dimitrova ER. Aneliya AngelovaStefka Stoyanova€. Vasil Vasilev. Nikolay IvanovE Aneliya Angelova, ...2. Stoyan Tanev8. VesFa Lukas Kovalik v.#: Appsf Jira Cloud® Toast@ Google Cale...hoestCohletesReviewin: a platrorm-inner-team datadogAl Reports > Empty page design and promotionApprov#1206€in:@jiminny-x-integration-app promise#120in:@Vasil Vasilev integration-appfrontendSelectAdded by Toast for GitHuboast APP 10:00 AMReviewprophet#507 JY-20361: Add call scores in Panorama35 minutes old • 9 files changed • @Steliyan GeorgievAdded bv Toast for GitHinhapp#12059 Jv 20820 es reindex stream mode hvdration3 days old • 12 files changed • ®Vasil VasilevAdded by Toast for GitHubMergeapp#12066 JY-20725 add HS rate limit handling on activities rematching4 minutes old • 12 hles changediAddod hu Tooct for CitlinhResolve Conflictsape#11443 Test hublets latency5 months old • 20 files changed#11327 JY-19501 webhook based opportunity syncShow moreAdded by Toast for GitHubNeeds Loveapp#12024 JY-20773 fx user nilot tracking ofr automated renort generatec13 days old - 1 file changedAdded by Toast for GitHubMessage Toast+ AatnterGive feedbackQ Search Jiminnyautomated-reports-track-interestvities automated-renorts-track-interesterview Raw Data Tracenmentsdd a commonti07 MayInDAYSVhel"suppont Dally • In 4h 21m100% Lz&• Tue 12 May 10:39:47L. Lukas•• XFilter by Company€ May 05, 2026 - May 11, 202609 Mav11 Mayas aSUMNo groups found+ Show full lictacross comoanies...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
25188
|
1055
|
41
|
2026-05-12T10:47:18.376319+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-12/1778 /Users/lukas/.screenpipe/data/data/2026-05-12/1778582838376_m2.jpg...
|
Slack
|
Toast (DM) - Jiminny Inc - 5 new items - Slack
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
1
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
curiosity_lab
engineering
general
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Steliyan Georgiev
Petko Kashinski
Aneliya Angelova
Stefka Stoyanova...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":14,"bounds":{"left":0.0056515955,"top":0.058260176,"width":0.011968086,"height":0.028731046},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"bounds":{"left":0.0029920214,"top":0.10055866,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"bounds":{"left":0.0066489363,"top":0.13806863,"width":0.009973404,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"bounds":{"left":0.0029920214,"top":0.15482841,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"bounds":{"left":0.0076462766,"top":0.19233839,"width":0.007978723,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"bounds":{"left":0.0029920214,"top":0.20909816,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"bounds":{"left":0.004986702,"top":0.24660814,"width":0.012965426,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.005319149,"top":0.24660814,"width":0.0026595744,"height":0.011173184}},{"char_start":1,"char_count":7,"bounds":{"left":0.0076462766,"top":0.24660814,"width":0.010638298,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"bounds":{"left":0.0029920214,"top":0.26336792,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"bounds":{"left":0.0076462766,"top":0.3008779,"width":0.0076462766,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.007978723,"top":0.3008779,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.009973404,"top":0.3008779,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"bounds":{"left":0.0029920214,"top":0.31763768,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":16,"bounds":{"left":0.00731383,"top":0.35514766,"width":0.008643617,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.00731383,"top":0.35514766,"width":0.0019946808,"height":0.011173184}},{"char_start":1,"char_count":4,"bounds":{"left":0.00930851,"top":0.35514766,"width":0.0066489363,"height":0.011173184}}],"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"bounds":{"left":0.0029920214,"top":0.3719074,"width":0.017287234,"height":0.054269753},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":16,"bounds":{"left":0.006981383,"top":0.4094174,"width":0.008976064,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.00731383,"top":0.4094174,"width":0.0033244682,"height":0.011173184}},{"char_start":1,"char_count":3,"bounds":{"left":0.010638298,"top":0.4094174,"width":0.0056515955,"height":0.011173184}}],"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":21,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":21,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":23,"bounds":{"left":0.042220745,"top":0.09177973,"width":0.025598405,"height":0.0007980846},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":23,"bounds":{"left":0.042220745,"top":0.10055866,"width":0.015957447,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.042220745,"top":0.10055866,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.04488032,"top":0.10055866,"width":0.013297873,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":23,"bounds":{"left":0.042220745,"top":0.12290503,"width":0.022938829,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.042220745,"top":0.12290503,"width":0.0013297872,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.043550532,"top":0.12290503,"width":0.021609042,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":23,"bounds":{"left":0.042220745,"top":0.1452514,"width":0.034906916,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.042220745,"top":0.1452514,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.045212764,"top":0.1452514,"width":0.031914894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":23,"bounds":{"left":0.042220745,"top":0.16759777,"width":0.03856383,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.042220745,"top":0.16759777,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.045212764,"top":0.16759777,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"random","depth":23,"bounds":{"left":0.042220745,"top":0.18994413,"width":0.01662234,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.042220745,"top":0.18994413,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":5,"bounds":{"left":0.044215426,"top":0.18994413,"width":0.014960106,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":23,"bounds":{"left":0.042220745,"top":0.2122905,"width":0.018284574,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.042220745,"top":0.2122905,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":7,"bounds":{"left":0.044215426,"top":0.2122905,"width":0.016289894,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":23,"bounds":{"left":0.042220745,"top":0.23463687,"width":0.024268618,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.042220745,"top":0.23463687,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":11,"bounds":{"left":0.04454787,"top":0.23463687,"width":0.021941489,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":23,"bounds":{"left":0.042220745,"top":0.25698325,"width":0.016954787,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.042220745,"top":0.25698325,"width":0.0023271276,"height":0.014365523}},{"char_start":1,"char_count":6,"bounds":{"left":0.04454787,"top":0.25698325,"width":0.01462766,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":23,"bounds":{"left":0.042220745,"top":0.2793296,"width":0.024268618,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.042220745,"top":0.2793296,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":9,"bounds":{"left":0.044215426,"top":0.2793296,"width":0.022606382,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":23,"bounds":{"left":0.042220745,"top":0.30167598,"width":0.04488032,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.042220745,"top":0.30167598,"width":0.0019946808,"height":0.014365523}},{"char_start":1,"char_count":20,"bounds":{"left":0.044215426,"top":0.30167598,"width":0.04720745,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.042220745,"top":0.35434955,"width":0.034906916,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.042220745,"top":0.35434955,"width":0.003656915,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.045877658,"top":0.35434955,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"bounds":{"left":0.042220745,"top":0.37669593,"width":0.038231384,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.042220745,"top":0.37669593,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":16,"bounds":{"left":0.04488032,"top":0.37669593,"width":0.03557181,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":23,"bounds":{"left":0.042220745,"top":0.3990423,"width":0.034242023,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.042220745,"top":0.3990423,"width":0.0029920214,"height":0.014365523}},{"char_start":1,"char_count":14,"bounds":{"left":0.045212764,"top":0.3990423,"width":0.03158245,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.042220745,"top":0.42138866,"width":0.03756649,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.042220745,"top":0.42138866,"width":0.0033244682,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.045545213,"top":0.42138866,"width":0.034242023,"height":0.014365523}}],"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"bounds":{"left":0.042220745,"top":0.44373503,"width":0.03756649,"height":0.014365523},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.042220745,"top":0.44373503,"width":0.0026595744,"height":0.014365523}},{"char_start":1,"char_count":15,"bounds":{"left":0.04488032,"top":0.44373503,"width":0.03523936,"height":0.014365523}}],"role_description":"text"}]...
|
-6916723036447770793
|
-8129906974997209373
|
click
|
hybrid
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
1
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
curiosity_lab
engineering
general
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Steliyan Georgiev
Petko Kashinski
Aneliya Angelova
Stefka Stoyanova
ActivityFilesSlackHistoryWindowHelpJiminny...Toast# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-officecommented on your PR#12066 JY-20725 add HSfate limit nanaling onYou can wrap this enareDouble-check this linkThe link #12066 JY-20725 add HS ra... is taking you to another site:https://github.com/jiminny/app/pull/12066#discussi.….. Are you sureyou want to continue?• Don't show this againCancelContinue. Nikolay IvanovAneliya Angelova,…..R. Stoyan Tanev. Lukas Kovalik y...#: AppsG Jira Cloud® Toast@ Google Cale."ur-zurrs user Pllot notreceivf. JY-20773 fix user pilot trackins Xo) Pinelines - liminnulanr→ New Ta!commented on your PR#12066 JY-20725 add HSrate limit handling onactivities rematchingOverall good PR. I'veMessage Toast+ Aa ©JY-20773 fix user pilot tracking for automated report generated #12024LakyLak wants to merge 3 commits into master from JY-20773-fix-automated-reports-user-pilot-tracking(*LakyLak changed the title JY-20773 fix user pilot tracking ofr automated report generated JY-20773 fix userpilot tracking tor automated report generated 1/ minutes ago• Ca LakyLak requested review from Vasil-Jiminny, nikolaybiaivanov and yalokin-jiminny 4 minutes agovVasil-Jiminny approved these changes 3 minutes agcView reviewed changes87 @LakyLak enabled auto-merge 1 minute agoo @Merge branch 'master' into JY-20773-fix-automated-reports-user-pilot-- .Verified • 62861fa8 This branch has not been deployedNo deolovmentsChanges approved1 approving review by reviewers with write access.V 1 approval >Q 2 pending reviews>••Some checks naven't comoleted vet1 nendina. 1 in nroaress 1 exnected. 2 successful checksiDisable auto-mergeThis pull request will merge automatically when all requirements are met. Learn more aboutautomaticallv meraina a null recliactStill in nroarece? Convert to draftlAdd a commentlWritePreviewHв»IAdd vour comment here.…Mt Markdown is suoportedl% Paste. droo. or click to add filesRemember, contributions to this repository should follow our GitHub Community Guidelines.9 x Close oull reauestC 40 lll Ol SupportDaily-in1h13m A 100% C/ &• Tue 12 May 13:47:18• Lock conversation...
|
25185
|
NULL
|
NULL
|
NULL
|
|
26999
|
1122
|
64
|
2026-05-12T14:01:09.090009+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-12/1778 /Users/lukas/.screenpipe/data/data/2026-05-12/1778594469090_m1.jpg...
|
Slack
|
Galya Dimitrova (DM) - Jiminny Inc - 4 new items - Galya Dimitrova (DM) - Jiminny Inc - 4 new items - Slack...
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
1
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
curiosity_lab
engineering
general
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Steliyan Georgiev
Petko Kashinski
Aneliya Angelova
Stefka Stoyanova...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":14,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":21,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":21,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"on_screen":true,"role_description":"text"}]...
|
-6916723036447770793
|
-8129906974997209373
|
click
|
hybrid
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
1
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
curiosity_lab
engineering
general
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Steliyan Georgiev
Petko Kashinski
Aneliya Angelova
Stefka Stoyanova
FirefoxFileEditViewHistoryBookmarksProfiles→ToolsWindowHelp$0.(n0]meet.google.com/bdj-nvho-bms?authuser=lukas.kovalik%40jiminny.comRetro - Platform - now100% C8 • Tue 12 May 17:01:08|Pop out this videoSteliyan GeorgievLukas Kovalik5:01 PM | Retro - Platform• 0:41....
|
26998
|
NULL
|
NULL
|
NULL
|
|
27225
|
1127
|
21
|
2026-05-12T14:12:04.918465+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-12/1778 /Users/lukas/.screenpipe/data/data/2026-05-12/1778595124918_m1.jpg...
|
Slack
|
support (Channel) - Jiminny Inc - 4 new items - Sl support (Channel) - Jiminny Inc - 4 new items - Slack...
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
1
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
curiosity_lab
engineering
general
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Steliyan Georgiev
Petko Kashinski
Aneliya Angelova
Stefka Stoyanova...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":14,"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":16,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":21,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":21,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"support","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"on_screen":true,"role_description":"text"}]...
|
-6916723036447770793
|
-8129906974997209373
|
click
|
hybrid
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
1
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
curiosity_lab
engineering
general
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Galya Dimitrova
Steliyan Georgiev
Petko Kashinski
Aneliya Angelova
Stefka Stoyanova
FirefoxFileProfiles• 0(allRetro - Platform • now100% L28•Tue 12 May 17:07:25EditViewHistoryBookmarks→ToolsWindowHelpmeet.google.com/bdj-nvho-bms?authuser=lukas.kovalik%40jiminny.comStefka Stoyanova (Presenting, annotating)8Stefka StoyanovaSpacesPlatfo@ SumQ SealREADY FIStellyan GeorgievNikolay IvanovJIMINNYQ Search• JY-20739 / @ JY-20625|~ ActivityAllCommentsHistoryWork log₴Add a comment…Suggest a reply...Status update…Thanks...Pro tip: press M to commentNikolay Yankov27 April 2026 at 17:23Niki N: 5Niki Y: 5Nikolay YankovNikolay Nikolov+ Create• Details |Story PointsOrganisationsPriorityFix versionsSprintDays $Need QAParentCanny LinksAneliya Angelova• UpgradeAsk Rovo© 2Lukas Kovalik8None= MediumNonePlatform Sprint 3 Q210Add option• Jy-20739 Jiminny MCP ConneOpen Canny Links8 11 =6:57CTOR5:07 PM | Retro - PlatformSộ3...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
23051
|
980
|
10
|
2026-05-12T07:31:17.109483+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-12/1778 /Users/lukas/.screenpipe/data/data/2026-05-12/1778571077109_m1.jpg...
|
QuickTime Player
|
PLanhat Petko interest event 2026-05-11.mp4
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
QuickTime PlayerFileEditViewWindowHelp• 0.(aholSup QuickTime PlayerFileEditViewWindowHelp• 0.(aholSupport Daily - in 4 h 29 m100% C7AIKB• ChatPlayground Al...Jiminny - Calenda….M GMail• My Calendly - Eve...= PH New Ul LoginGet Starting with J...AppsChloe Onboarding….+ CX Journey SMB....Jiminny ~E MetricB DatasetplaybackVisitedContent ExplorerQ, PLAYBACK+ Metric6 nactivities. playbackVisitedData ExplorerNotificationsТугOverviewRaw DataTraceEmail Manager•** More~ Company 2Fiter by Company• Playback Adoption AvgSections -• Playback AdoptionECS Day-to-day•Getting started Guide• Just CS Data* Daily Operations# Weekly prepRenewals and UpsellRisk and Churn AnalyticsEndUser• JUsers Playback AdoptionCal• Playback Adoption (Last 7 days)Cal• Playback AdoptionCalplaybackVisitedUsImplementation -Impl ProjectsTrial Opps (Under Review)Stoyan's clientsw1 2026NQ 2026#3 2026W4 2026N5 2026WEEKSMINLeadershipSystem ReportsLeadership OperationsPortfolio Overview (Dashbo….NPS Report - GregClient Engagement OverviewRevenue AnalyticsNo groups found+ Show fus listAdd a commentE. Petko6 Feb 11, 2026 - May 10, 2026w11 2026w13 2026Al Notes: Off8• Tue 12 May 10:31:16• PLanhat Petko interest event 2026-05-11.mp4Screen snareChromeFileEditViewHistoryBookmarksProfilesTabWindowHelp*Q8• Mon 11 May 12:19Gree!Scoreandre• wilsoCall AJiminM Inbox=N=Apps@ Buildu Usery§ New: | u User; | +Cws.planhat.com/jiminny/home/data-explorer/usagemetricdef?preview=UsageMetricDef.674543e45a4792694fe994e5G WorkPetko ...reen ...74*)01:5304:55...
|
NULL
|
-6916688443671981168
|
NULL
|
click
|
ocr
|
NULL
|
QuickTime PlayerFileEditViewWindowHelp• 0.(aholSup QuickTime PlayerFileEditViewWindowHelp• 0.(aholSupport Daily - in 4 h 29 m100% C7AIKB• ChatPlayground Al...Jiminny - Calenda….M GMail• My Calendly - Eve...= PH New Ul LoginGet Starting with J...AppsChloe Onboarding….+ CX Journey SMB....Jiminny ~E MetricB DatasetplaybackVisitedContent ExplorerQ, PLAYBACK+ Metric6 nactivities. playbackVisitedData ExplorerNotificationsТугOverviewRaw DataTraceEmail Manager•** More~ Company 2Fiter by Company• Playback Adoption AvgSections -• Playback AdoptionECS Day-to-day•Getting started Guide• Just CS Data* Daily Operations# Weekly prepRenewals and UpsellRisk and Churn AnalyticsEndUser• JUsers Playback AdoptionCal• Playback Adoption (Last 7 days)Cal• Playback AdoptionCalplaybackVisitedUsImplementation -Impl ProjectsTrial Opps (Under Review)Stoyan's clientsw1 2026NQ 2026#3 2026W4 2026N5 2026WEEKSMINLeadershipSystem ReportsLeadership OperationsPortfolio Overview (Dashbo….NPS Report - GregClient Engagement OverviewRevenue AnalyticsNo groups found+ Show fus listAdd a commentE. Petko6 Feb 11, 2026 - May 10, 2026w11 2026w13 2026Al Notes: Off8• Tue 12 May 10:31:16• PLanhat Petko interest event 2026-05-11.mp4Screen snareChromeFileEditViewHistoryBookmarksProfilesTabWindowHelp*Q8• Mon 11 May 12:19Gree!Scoreandre• wilsoCall AJiminM Inbox=N=Apps@ Buildu Usery§ New: | u User; | +Cws.planhat.com/jiminny/home/data-explorer/usagemetricdef?preview=UsageMetricDef.674543e45a4792694fe994e5G WorkPetko ...reen ...74*)01:5304:55...
|
23048
|
/Volumes/Work/2026/PLanhat Petko interest event 20 /Volumes/Work/2026/PLanhat Petko interest event 2026-05-11.mp4...
|
NULL
|
NULL
|
|
23856
|
1002
|
36
|
2026-05-12T08:28:44.685094+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-12/1778 /Users/lukas/.screenpipe/data/data/2026-05-12/1778574524685_m1.jpg...
|
PhpStorm
|
faVsco.js – console [PROD]
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
FirefoxFileEditViewHistoryBookmarksProfilesToolsWi FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelpPRODIDOCKERDOCKER (-zsh)₴81DEV (-zsh)О 882APP (-zsh)883-zshasticsearch"{"type" : "log""@timestamp": "2026-05-11T19:54:53Z","tags" : ["warning""el,"data"], "pid" :7,'"message" : "Unable torevive connection: [URL_WITH_CREDENTIALS] : "2026-05-11T19:54:53Z"["warning"D"elasticsearch", "data"],"pid":7,"message": "No livingconnections "}I {"type" : "log", "@timestamp" : "2026-05-11T19:54:53Z""licensing"], "pid" :7,"message" : "License informationcould not be obtained from Elasticsearch due to Error: No Livingconnectionskibana1 {"type" : "log","@timestamp": "2026-05-11T19:54:54Z""tags" : ["error"ticsearch", "data"], "pid" :7, "message" : "[ConnectionError]: getaddrinfo ENOTFOUND elasticsearch elasticsearch: 9200"}kibana1 {"type" : "log","@timestamp": "2026-05-11T19:54:54Z", "tags" : ["warning", "elasticsearch", "data"],"pid" :7,"message":"Unable to reviveconnection: [URL_WITH_CREDENTIALS] "2026-05-11T19:54:54Z", "tags" : ["warning", "elasticsearch", "data"],"pid":7,"message"• "No livingconnections"}kibana1 {"type": "1og","@timestamp":"2026-05-11T19:54:54Z","tags": ["error","plugins", "taskManager""taskManager"], "pid":7, "message": "Failed to poll for work: Error: NoLiving connections"}kibana1 {"type": "log", "@timestamp": "2026-05-11T19:54:57Z", "tags" : ["error", "elasticsearch".,"data"], "pid" :7, "message" :"[ConnectionError]: getaddrinfo ENOTFOUND elasticsearch elasticsearch:9200*}kibana1 {"type" : "Log","@timestamp" : "2026-05-11T19:54:57Z", "tags" : ["warning", "elasticsearch", "data"], "pid" :7, "message": "Unable to revive connection: [URL_WITH_CREDENTIALS] : "2026-05-11T19:54:57Z", "tags" : ["warning", "elasticsearch", "data"], "pid" :7, "message": "No living connections"}kibanaI {"type" : "log", "@timestamp" : "2026-05-11T19:54:57Z", "tags" : ["error"ins", "taskManager", "taskManager"], "pid" :7, "message" : "Failed to pollfor work: Error: NoLiving connections"}I {"type" : "log", "@timestamp" : "2026-05-11T19:54:59Z","tags" : ["error", "elasticsearch", "data"], "pid" :7, "message" : "[ConnectionError]: getaddrinfo ENOTFOUND elasticsearch elasticsearch:9200"}1 {"type" : "log","@timestamp": "2026-05-11T19:55: 00Z","tags" : ["warning"asticsearch", "data"], "pid" :7, "message": "Unable to revive connection: [URL_WITH_CREDENTIALS] : "2026-05-11T19:55 :00Z", "tags" : ["warning", "elasticsearch", "data"], "pid" :7,"message": "No living connections"}1 {"type": "log", "@timestamp" : "2026-05-11T19:55:00Z""tags" : ["error", "plug, "taskManager",, "taskManager"], "pid" :7, "message" : "Failed to poll for work: Error: NoLiving connections"}unexpected EOFkas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/infrastructure/dev/docker (develop) $HomeDMsActivityFilesLaterMorelthlSupport Daily • in 3 h 32 m100% C73• Tue 12 May 11:28:44→Describe what you are looking forJiminny ...eam+ More unreadsChannels# ai-chapter# alerts# backend# bugs# confusion-clinic# curiosity_lab# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi..0 Direct messagesPetko KashinskiR. Steliyan Georgiev®. Galya Dimitrova8. Aneliya Angelova&. Stefka Stoyanova€. Vasil VasilevNikolay IvanovSteliyan Georgiev6 0Messagest Add canvasO Files+AutomaTodayPreview in wawnStatusBacklogPriority= MediumAssigneeUnassignedAs of today at 10:46 AM RefreshOpen in JiraSummariseпроблем беше че няма pdf_url сега ще серазровя за конкретен репорти идеята е на РНР да не го пробваме през час ноГаля попита за регенериранепредполагам че е нещо случайно най-вероятносамо един репортза бъдеще може да в самия пропхет има липроверка дали има всичко преди да върнеresponse, или пак от РНР да се провери предипращане и да се пусне отновоSteliyan Georgiev 10:51 AMможе да направя профет ако няма pdf_url, даврьща грешка за пхп?Lukas Kovalik 10:51 AMпо-скоро да се регенерираMessage Steliyan Georgiev+...
|
NULL
|
-6915123991341104681
|
NULL
|
click
|
ocr
|
NULL
|
FirefoxFileEditViewHistoryBookmarksProfilesToolsWi FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelpPRODIDOCKERDOCKER (-zsh)₴81DEV (-zsh)О 882APP (-zsh)883-zshasticsearch"{"type" : "log""@timestamp": "2026-05-11T19:54:53Z","tags" : ["warning""el,"data"], "pid" :7,'"message" : "Unable torevive connection: [URL_WITH_CREDENTIALS] : "2026-05-11T19:54:53Z"["warning"D"elasticsearch", "data"],"pid":7,"message": "No livingconnections "}I {"type" : "log", "@timestamp" : "2026-05-11T19:54:53Z""licensing"], "pid" :7,"message" : "License informationcould not be obtained from Elasticsearch due to Error: No Livingconnectionskibana1 {"type" : "log","@timestamp": "2026-05-11T19:54:54Z""tags" : ["error"ticsearch", "data"], "pid" :7, "message" : "[ConnectionError]: getaddrinfo ENOTFOUND elasticsearch elasticsearch: 9200"}kibana1 {"type" : "log","@timestamp": "2026-05-11T19:54:54Z", "tags" : ["warning", "elasticsearch", "data"],"pid" :7,"message":"Unable to reviveconnection: [URL_WITH_CREDENTIALS] "2026-05-11T19:54:54Z", "tags" : ["warning", "elasticsearch", "data"],"pid":7,"message"• "No livingconnections"}kibana1 {"type": "1og","@timestamp":"2026-05-11T19:54:54Z","tags": ["error","plugins", "taskManager""taskManager"], "pid":7, "message": "Failed to poll for work: Error: NoLiving connections"}kibana1 {"type": "log", "@timestamp": "2026-05-11T19:54:57Z", "tags" : ["error", "elasticsearch".,"data"], "pid" :7, "message" :"[ConnectionError]: getaddrinfo ENOTFOUND elasticsearch elasticsearch:9200*}kibana1 {"type" : "Log","@timestamp" : "2026-05-11T19:54:57Z", "tags" : ["warning", "elasticsearch", "data"], "pid" :7, "message": "Unable to revive connection: [URL_WITH_CREDENTIALS] : "2026-05-11T19:54:57Z", "tags" : ["warning", "elasticsearch", "data"], "pid" :7, "message": "No living connections"}kibanaI {"type" : "log", "@timestamp" : "2026-05-11T19:54:57Z", "tags" : ["error"ins", "taskManager", "taskManager"], "pid" :7, "message" : "Failed to pollfor work: Error: NoLiving connections"}I {"type" : "log", "@timestamp" : "2026-05-11T19:54:59Z","tags" : ["error", "elasticsearch", "data"], "pid" :7, "message" : "[ConnectionError]: getaddrinfo ENOTFOUND elasticsearch elasticsearch:9200"}1 {"type" : "log","@timestamp": "2026-05-11T19:55: 00Z","tags" : ["warning"asticsearch", "data"], "pid" :7, "message": "Unable to revive connection: [URL_WITH_CREDENTIALS] : "2026-05-11T19:55 :00Z", "tags" : ["warning", "elasticsearch", "data"], "pid" :7,"message": "No living connections"}1 {"type": "log", "@timestamp" : "2026-05-11T19:55:00Z""tags" : ["error", "plug, "taskManager",, "taskManager"], "pid" :7, "message" : "Failed to poll for work: Error: NoLiving connections"}unexpected EOFkas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/infrastructure/dev/docker (develop) $HomeDMsActivityFilesLaterMorelthlSupport Daily • in 3 h 32 m100% C73• Tue 12 May 11:28:44→Describe what you are looking forJiminny ...eam+ More unreadsChannels# ai-chapter# alerts# backend# bugs# confusion-clinic# curiosity_lab# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi..0 Direct messagesPetko KashinskiR. Steliyan Georgiev®. Galya Dimitrova8. Aneliya Angelova&. Stefka Stoyanova€. Vasil VasilevNikolay IvanovSteliyan Georgiev6 0Messagest Add canvasO Files+AutomaTodayPreview in wawnStatusBacklogPriority= MediumAssigneeUnassignedAs of today at 10:46 AM RefreshOpen in JiraSummariseпроблем беше че няма pdf_url сега ще серазровя за конкретен репорти идеята е на РНР да не го пробваме през час ноГаля попита за регенериранепредполагам че е нещо случайно най-вероятносамо един репортза бъдеще може да в самия пропхет има липроверка дали има всичко преди да върнеresponse, или пак от РНР да се провери предипращане и да се пусне отновоSteliyan Georgiev 10:51 AMможе да направя профет ако няма pdf_url, даврьща грешка за пхп?Lukas Kovalik 10:51 AMпо-скоро да се регенерираMessage Steliyan Georgiev+...
|
23852
|
NULL
|
NULL
|
NULL
|
|
22918
|
978
|
30
|
2026-05-12T07:26:58.104090+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-12/1778 /Users/lukas/.screenpipe/data/data/2026-05-12/1778570818104_m1.jpg...
|
QuickTime Player
|
PLanhat Petko interest event 2026-05-11.mp4
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
rewind
play/pause
fast forward
mute
More Controls
rewind
play/pause
fast forward
mute
More Controls
toggle full screen
show external playback menu
show external playback menu
show media selection menu
toggle picture-in-picture playback
show action menu
share
show chapter menu
zoom
zoom
playback speed
03:44
toggle elapsed time, timecode and framecount
04:55
toggle duration and remaining time
document actions
PLanhat Petko interest event 2026-05-11.mp4...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"rewind","depth":1,"bounds":{"left":0.77569443,"top":0.9266667,"width":0.017361112,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXCheckBox","text":"play/pause","depth":1,"bounds":{"left":0.8003472,"top":0.9172222,"width":0.02013889,"height":0.037777778},"on_screen":true,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":true},{"role":"AXButton","text":"fast forward","depth":1,"bounds":{"left":0.828125,"top":0.9266667,"width":0.017361112,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"mute","depth":1,"bounds":{"left":0.65868056,"top":0.9266667,"width":0.015625,"height":0.016666668},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"More Controls","depth":1,"bounds":{"left":0.9496528,"top":0.9261111,"width":0.0125,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXCheckBox","text":"toggle full screen","depth":1,"bounds":{"left":0.89340276,"top":0.93222225,"width":0.013888889,"height":0.022222223},"on_screen":true,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"show external playback menu","depth":1,"bounds":{"left":0.89340276,"top":0.9261111,"width":0.013888889,"height":0.022222223},"on_screen":true,"role_description":"button","is_focused":false},{"role":"AXButton","text":"show external playback menu","depth":2,"bounds":{"left":0.89340276,"top":0.9261111,"width":0.013888889,"height":0.022222223},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"show media selection menu","depth":1,"bounds":{"left":0.89340276,"top":0.93222225,"width":0.015277778,"height":0.022222223},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"toggle picture-in-picture playback","depth":1,"bounds":{"left":0.89340276,"top":0.92444444,"width":0.017361112,"height":0.022222223},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"show action menu","depth":1,"bounds":{"left":0.89340276,"top":0.9316667,"width":0.014583333,"height":0.023333333},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"share","depth":1,"bounds":{"left":0.9232639,"top":0.9211111,"width":0.013541667,"height":0.025555555},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"show chapter menu","depth":1,"bounds":{"left":0.89340276,"top":0.935,"width":0.014583333,"height":0.016666668},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXCheckBox","text":"zoom","depth":1,"bounds":{"left":0.89340276,"top":0.93,"width":0.013888889,"height":0.026666667},"on_screen":true,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXCheckBox","text":"zoom","depth":1,"bounds":{"left":0.89340276,"top":0.93277776,"width":0.017361112,"height":0.02111111},"on_screen":true,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"playback speed","depth":1,"bounds":{"left":0.89340276,"top":0.93277776,"width":0.013194445,"height":0.02111111},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXStaticText","text":"03:44","depth":1,"bounds":{"left":0.65868056,"top":0.9633333,"width":0.02638889,"height":0.016666668},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"toggle elapsed time, timecode and framecount","depth":1,"bounds":{"left":0.66006947,"top":0.9633333,"width":0.023611112,"height":0.016666668},"on_screen":true,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXStaticText","text":"04:55","depth":1,"bounds":{"left":0.9305556,"top":0.9633333,"width":0.031597223,"height":0.016666668},"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"toggle duration and remaining time","depth":1,"bounds":{"left":0.93194443,"top":0.9633333,"width":0.028819444,"height":0.016666668},"on_screen":true,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXMenuButton","text":"document actions","depth":1,"bounds":{"left":0.6097222,"top":0.04,"width":0.0069444445,"height":0.017777778},"on_screen":true,"role_description":"menu button","is_enabled":false,"is_focused":false},{"role":"AXStaticText","text":"PLanhat Petko interest event 2026-05-11.mp4","depth":1,"bounds":{"left":0.3986111,"top":0.04,"width":0.21111111,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
-6914568849628132377
|
5926497231244626550
|
click
|
hybrid
|
NULL
|
rewind
play/pause
fast forward
mute
More Controls
rewind
play/pause
fast forward
mute
More Controls
toggle full screen
show external playback menu
show external playback menu
show media selection menu
toggle picture-in-picture playback
show action menu
share
show chapter menu
zoom
zoom
playback speed
03:44
toggle elapsed time, timecode and framecount
04:55
toggle duration and remaining time
document actions
PLanhat Petko interest event 2026-05-11.mp4
QuickTime PlayerFileEditViewWindowHelp(abl• PLanhat Petko interest event 2026-05-11.mp4j Support Daily - in 4h 34 mA100% (8• Tue 12 May 10:26:57Screen snareChromeFileEditViewHistoryBookmarksProfilesTabWindowHelp*GreetScoreandre@ wilsoCall AJiminM Inbox=N=AppsBuildQ8• Mon 11 May 12:21User§ New: | u User | +ws.planhat.com/jiminny/home/data-explorer/usagemetricdef?preview=UsageMetricDef.674543e45a4792694fe994e5WorkAIKB• ChatPlayground Al...Chloe Onboarding….+ CX Journey SMB...Jiminny ~Content ExplorerData ExplorerNotificationsEmail ManagerMoreSections +CS Day-to-day•Getting started Guide• Just CS Data+ Daily Operations# Weekty prepERenewals and UpsellRisk and Churn AnalyticsImplementation -Impl ProjectsTrial Opps (Under Review)Stoyan's clientsLeadershipSystem ReportsLeadership OperationsPortfolio Overview (Dashbo….NPS Report - GregClient Engagement OverviewRevenue AnalyticsJiminny - Calenda….M GMail• My Calendly - Eve..= PH New Ul LoginGet Starting with J...Apps8 Metric -B DatasetplaybackVisitedQ playback+ Metricactivities. playbackVisitedТугOverviewTracel- Company 2Raw Data•Playback Adoption AvgCal• Playback AdoptionComparyAnyVan.comEndUserJUsers Playback AdoptionPlayback Adoption (Last 7 days)• Playback AdoptionplaybackVisitedCalCalCaUsBrowzwearMoxsoBT Local Business Oxford & BucksTHRIVETHRIVEBT Local Business SevernsideSafe and Secure Home InsuranceBT Local Business SevernsideStreet GroupSafe and Secure Home InsuranceConnectdTHRIVEUserMarcus PJonatht MacaulayKatarzyna NowakowskaBen CopelinLouise CameronLouise CameronCharlie DoddJess SykesCharlie DoddAndy FisherJess SykesTom ZiniBen CopelinLouise CameronEventplaybackVisitedplaybackVisitedplaybackVisitedplaybackVisitedplaybackVisitedplaybackVisitedplaybackVisitedplaybackVisitedplaybackVisitedplaybackVisitedplaybackVisitedplaybackVisitedplaybackVisitedplaybackVisitednishsrMielalPetkoFilter by CompanyTimeMay 11, 2026 09-20:47Ingestion AtMay 11, 2026 09:20:51May 11, 2026 09:20:45May 11, 2026 09:20:51May 11, 2026 09-20:32May 11, 2026 09:20:39May 11, 2026 09-20:14May 11, 2026 09:20:13May 11, 2026 09:20:24May 11, 2026 09:20:24May 11, 2026 09:19:53May 11, 2026 09:20:07May 11, 2026 09:19:52May 11, 2026 09:19:41May 11, 2026 09:19:39May 11, 2026 09:19-34May 11, 2026 09-19:34May 11, 2026 09:19:54May 11, 2026 09:19:54May 11May 114= Al Notes: OffMay 11, 2026 09-19-26May 11, 2026 09:19:16May 11, 2026 09:19:11May 11,May 11,May 11May T1Petko ...een .ГА03:4304:55ve...
|
22917
|
/Volumes/Work/2026/PLanhat Petko interest event 20 /Volumes/Work/2026/PLanhat Petko interest event 2026-05-11.mp4...
|
NULL
|
NULL
|
|
22919
|
979
|
13
|
2026-05-12T07:26:58.102405+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-12/1778 /Users/lukas/.screenpipe/data/data/2026-05-12/1778570818102_m2.jpg...
|
QuickTime Player
|
PLanhat Petko interest event 2026-05-11.mp4
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
rewind
play/pause
fast forward
mute
More Controls
rewind
play/pause
fast forward
mute
More Controls
toggle full screen
show external playback menu
show external playback menu
show media selection menu
toggle picture-in-picture playback
show action menu
share
show chapter menu
zoom
zoom
playback speed
03:44
toggle elapsed time, timecode and framecount
04:55
toggle duration and remaining time
document actions
PLanhat Petko interest event 2026-05-11.mp4...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"rewind","depth":1,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXCheckBox","text":"play/pause","depth":1,"on_screen":true,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":true},{"role":"AXButton","text":"fast forward","depth":1,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"mute","depth":1,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"More Controls","depth":1,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXCheckBox","text":"toggle full screen","depth":1,"on_screen":true,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"show external playback menu","depth":1,"on_screen":true,"role_description":"button","is_focused":false},{"role":"AXButton","text":"show external playback menu","depth":2,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"show media selection menu","depth":1,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"toggle picture-in-picture playback","depth":1,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"show action menu","depth":1,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"share","depth":1,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"show chapter menu","depth":1,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXCheckBox","text":"zoom","depth":1,"on_screen":true,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXCheckBox","text":"zoom","depth":1,"on_screen":true,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXButton","text":"playback speed","depth":1,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false},{"role":"AXStaticText","text":"03:44","depth":1,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"toggle elapsed time, timecode and framecount","depth":1,"on_screen":true,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXStaticText","text":"04:55","depth":1,"on_screen":true,"role_description":"text"},{"role":"AXCheckBox","text":"toggle duration and remaining time","depth":1,"on_screen":true,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false},{"role":"AXMenuButton","text":"document actions","depth":1,"bounds":{"left":0.5621675,"top":1.0,"width":0.0033244682,"height":-0.028730989},"on_screen":true,"role_description":"menu button","is_enabled":false,"is_focused":false},{"role":"AXStaticText","text":"PLanhat Petko interest event 2026-05-11.mp4","depth":1,"bounds":{"left":0.46110374,"top":1.0,"width":0.10106383,"height":-0.028730989},"on_screen":true,"role_description":"text"}]...
|
-6914568849628132377
|
5926497231244626550
|
click
|
hybrid
|
NULL
|
rewind
play/pause
fast forward
mute
More Controls
rewind
play/pause
fast forward
mute
More Controls
toggle full screen
show external playback menu
show external playback menu
show media selection menu
toggle picture-in-picture playback
show action menu
share
show chapter menu
zoom
zoom
playback speed
03:44
toggle elapsed time, timecode and framecount
04:55
toggle duration and remaining time
document actions
PLanhat Petko interest event 2026-05-11.mp4
PnostormIavicatecode10019FV faVsco.js?9 JY-20725-handle-HS-search-rate-limitProjectyC) AutomatedReportGenerated.ong© PlaybackController.php(1) MatchDomainBvEmail© OpportunityActivityMa© OpportunitySyncStrate© OpportunitySyncStrate© ProspectCache.php€ ProspectSearchScope© ProspectSearchStrate© ProspectSearchStratec Providerkegistry.pnp€ RecordSelector.phpkesolvecompanyNamc) limererioaiterator.phaImoonuInternal0 Kioskv AutomatedReportsC) ActivitvivoeServiceC) AskJiminnvReportA(C) AutomatedRenortsiC) AutomatedRenorts.(C) DealStadesServiceC) RecioientsService.rE) ReportSort.ohrE) RenortSortDirection(C) KioskService.oho1M Mailom MeptinaGenerator1 NotificationM0Auth2M PecallAm SecurityD StrategyD Streaming_ leamD TelephonvD UserPilot0 Webhook© AbstractService.php© ActivityProviderFactorv.p© ActivitvService.php(C) AoiResoonseService.oho© ConferenceService.ohn(C)InsiahtSeatService.oho(C)InstantMeetinaService.oh(C)IntercomService.oho@ InapiClient.php©) IoaniService.ohr@ DarticinantShareService r 1201(@) PlanhatService nhr@ DlavhackService nhnYC) PlavhackViden@nlvServic 127(C) DlavbaskCotoaan.c.ndPlanhatService.php x:12 v.19 ^= laravel.l0gA SF (jiminny@localhost]4 HS_local [jiminny@localhost]# console [PRol)A console [STAGING][2026-05-07 14:21:15] local.INF0: [Hubspot] DEBUG Getting headers {"neaders.?"Vace".L"Inu,or May 2020 14.21.15 bMl"J,"Transter-Encodinq":"chunked").& console [EU]>0 lll 0supoont Dally • In 41 341cascadePlanhat Event PlaybacThoughtsSearched planhat in ~/iminnylappThoughtsSearched olavback *visitedivisited."olavback in ~/fiminnvlaoo.100% 5• lue 1z may 10-20:0,+0 ..find planhat event playback visitedreaconly class Plannatservicepublic function -_constructtprivate Rolestatsrepository srolestatsrepository.) (...7/** othrows Guzzle xception */oubuc function trackuser suser strind Sevent, arrav soavload = : vord1f @ Sthis-›servicelsAvailable(Suser->getTeamO->qetPartnerido0)«return:Susen->inadld relations: "team!)Sdata =fInamel => Susen->aetNameollemaili = Susen->aptFmailAddnecs0ll'externalId' => $user->getUuid.'companyExternalId' => Suser->getTeam->getUuidaction = sevent,'info' => $payload.SplanhatResponse = Http::planhatAnaluticsApiO->post url:'analytics/'. confia( key:'services.planhat.tenantUuid'). Sdata):Sthis->loqFailedResponses(SplanhatResponse.message: METHOD"body => solanhatresponse->sonlo'status' => $planhatResponse->status@'data' => Sdatal** athrows Guzzesycention */nublic function meten(lisen Suser. string Sdimension. strina Svalue)• voidf...?** Athrows GuzzleSycention */public function upsertCompany(Team Steam): voidi...}* Athnowe Guz>leSycontion* @throws BindingResolutionExceptionpublic function upsertUser(User Suser): void{...}СОЛРРВРДВВВВВВВВВВВВВВВО"CF-Ray": ["9f80deb8db60dc3a-SOF"]."Strict-Transport-Security":["max-aqe=31536000: includeSubDomains: preload"]."server-timing": ["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\","x-content-tvoe-ootions":"nosniff"."x-hubsoot-correlation-id":"019e02d0-6fd8-7812-bdba-885b7ccb3ee3"7."Set-Cookie":["__cf_bm=StUrtdQgXVnik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfW07-May-26 14:51:15 GMT; domain=.hubapi.com; Http0nly; Secure; SameSite=None"),"Renont-To".f"s"endnoints".'\"url\":"https:\V/\V/a.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIx\"group\":\"cf-nel\",\"max_age\":604800}"],"NEL":["{\"success_fraction\":0.01,report to. "cr-nel,|"max agel ":604800}"]"Server": ["cloudflare"]}} {"correlation 1d":"95256555-ec98-4541-b9za-adta/sboyeab"."trace_10":"C/A8565-905t-4604-9405-0e5b551e5545',Soarched pl.Searched visited in aprThouahtslFound it in PlaybackController.php :Read DlavbackController.nhn #| 85-114Location:Plavbackcontroller.0no:95-168oho.*Cendina InlavbackVicitedl event to Planhat without clowina +hedeferlfn = Sthis->olanhatService-strack(user. Suserpay load:'activityld' = Sactivity->getId(),activitvluid' = sactivity-saetluido.-salwavs@)Contovt. Collod in tha niavhaak nado controllor wronnod in doforl to firo tha Dlanhat avant scunchronduely aftor thoHTTP response is sent to avoid slowina down the user experience.Oal ***Jed daily usage quota is exhausted. Purchase extra usage to continue usina premium models. Quota resets May 12, 11:00"AN CUTYAsk anvthina (84L)÷ @Code SWF-1.620-17JUTE.Afo 4 spaces...
|
NULL
|
/Volumes/Work/2026/PLanhat Petko interest event 20 /Volumes/Work/2026/PLanhat Petko interest event 2026-05-11.mp4...
|
NULL
|
NULL
|
|
26000
|
1082
|
34
|
2026-05-12T11:58:39.016356+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-12/1778 /Users/lukas/.screenpipe/data/data/2026-05-12/1778587119016_m1.jpg...
|
Firefox
|
CloudWatch | us-east-2 — Work
|
True
|
us-east-2.console.aws.amazon.com/cloudwatch/home?r us-east-2.console.aws.amazon.com/cloudwatch/home?region=us-east-2#logsV2:logs-insights$3FqueryDetail$3D~(end~0~start~-43200~timeType~'RELATIVE~tz~'UTC~unit~'seconds~editorString~'fields*20*40timestamp*2c*20*40message*2c*20*40logStream*2c*20*40log*0a*7c*20filter*20*40message*20like*20*2f40c52b41-aa01-4bfb-8dcd-9ee814fcd4b6*2f*20*0a*7c*20filter*20*40message*20not*20like*20*2fAnalytic*2f*20*7c*20filter*20*40message*20not*20like*20*2fTranscript*2f*0a*7c*20filter*20*40message*20not*20like*20*2fWebhook*2f*20*7c*20filter*20*40message*20not*20like*20*2fMeetingBot*2f*20*0a*7c*20limit*2010000~queryId~'0551e814-f51a-4339-8372-80d7ba4cef27~source~(~'*2a)~lang~'CWLI~logClass~'STANDARD~accountIDs~(~'All)~queryBy~'allLogGroups)...
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Unnamed Group
TypeError: League\Flysystem\Filesyst Unnamed Group
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
CloudWatch | us-east-2
CloudWatch | us-east-2
Close tab
test (885333) - jiminny/app
test (885333) - jiminny/app
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
[JY-20773] User Pilot not receiving events on report generated - Jira
[JY-20773] User Pilot not receiving events on report generated - Jira
JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app
JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app
[JY-20776] Automated report - sentry - Jira
[JY-20776] Automated report - sentry - Jira
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
Platform Team - Backlog - Jira
Platform Team - Backlog - Jira
Userpilot | Events
Userpilot | Events
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AWS Console Home
Skip to Main Content
Skip to Main Content
Amazon Q
Services
Search
Ask Amazon Q
[Option+S]
CloudShell
Notifications (none available)
Help & support
Settings
United States (Ohio)
United States (Ohio)
PROD
Account ID: 4103-4619-5943
PROD...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Unnamed Group","depth":4,"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"TypeError: League\\Flysystem\\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"TypeError: League\\Flysystem\\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"test (885333) - jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"test (885333) - jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20773] User Pilot not receiving events on report generated - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20773] User Pilot not receiving events on report generated - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20776] Automated report - sentry - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20776] Automated report - sentry - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Platform Team - Backlog - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Team - Backlog - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Userpilot | Events","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Userpilot | Events","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"AWS Console Home","depth":13,"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to Main Content","depth":13,"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to Main Content","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Amazon Q","depth":14,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Services","depth":13,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXComboBox","text":"Search","depth":16,"on_screen":true,"role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Ask Amazon Q","depth":15,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[Option+S]","depth":16,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"CloudShell","depth":14,"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Notifications (none available)","depth":15,"on_screen":true,"help_text":"Notifications","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Help & support","depth":15,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Settings","depth":15,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXComboBox","text":"United States (Ohio)","depth":15,"on_screen":true,"value":"United States (Ohio)","help_text":"United States (Ohio)","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"United States (Ohio)","depth":17,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"PROD","depth":15,"on_screen":true,"help_text":"Production_View_Only @ jiminny","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Account ID: 4103-4619-5943","depth":19,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"PROD","depth":18,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-6912174078634558888
|
-2580190213590910812
|
click
|
accessibility
|
NULL
|
Unnamed Group
TypeError: League\Flysystem\Filesyst Unnamed Group
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
CloudWatch | us-east-2
CloudWatch | us-east-2
Close tab
test (885333) - jiminny/app
test (885333) - jiminny/app
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
[JY-20773] User Pilot not receiving events on report generated - Jira
[JY-20773] User Pilot not receiving events on report generated - Jira
JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app
JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app
[JY-20776] Automated report - sentry - Jira
[JY-20776] Automated report - sentry - Jira
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
Platform Team - Backlog - Jira
Platform Team - Backlog - Jira
Userpilot | Events
Userpilot | Events
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AWS Console Home
Skip to Main Content
Skip to Main Content
Amazon Q
Services
Search
Ask Amazon Q
[Option+S]
CloudShell
Notifications (none available)
Help & support
Settings
United States (Ohio)
United States (Ohio)
PROD
Account ID: 4103-4619-5943
PROD...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
26001
|
1083
|
45
|
2026-05-12T11:58:39.014027+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-12/1778 /Users/lukas/.screenpipe/data/data/2026-05-12/1778587119014_m2.jpg...
|
Firefox
|
CloudWatch | us-east-2 — Work
|
True
|
us-east-2.console.aws.amazon.com/cloudwatch/home?r us-east-2.console.aws.amazon.com/cloudwatch/home?region=us-east-2#logsV2:logs-insights$3FqueryDetail$3D~(end~0~start~-43200~timeType~'RELATIVE~tz~'UTC~unit~'seconds~editorString~'fields*20*40timestamp*2c*20*40message*2c*20*40logStream*2c*20*40log*0a*7c*20filter*20*40message*20like*20*2f40c52b41-aa01-4bfb-8dcd-9ee814fcd4b6*2f*20*0a*7c*20filter*20*40message*20not*20like*20*2fAnalytic*2f*20*7c*20filter*20*40message*20not*20like*20*2fTranscript*2f*0a*7c*20filter*20*40message*20not*20like*20*2fWebhook*2f*20*7c*20filter*20*40message*20not*20like*20*2fMeetingBot*2f*20*0a*7c*20limit*2010000~queryId~'0551e814-f51a-4339-8372-80d7ba4cef27~source~(~'*2a)~lang~'CWLI~logClass~'STANDARD~accountIDs~(~'All)~queryBy~'allLogGroups)...
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Unnamed Group
TypeError: League\Flysystem\Filesyst Unnamed Group
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
CloudWatch | us-east-2
CloudWatch | us-east-2
Close tab
test (885333) - jiminny/app
test (885333) - jiminny/app
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
[JY-20773] User Pilot not receiving events on report generated - Jira
[JY-20773] User Pilot not receiving events on report generated - Jira
JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app
JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app
[JY-20776] Automated report - sentry - Jira
[JY-20776] Automated report - sentry - Jira
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
Platform Team - Backlog - Jira
Platform Team - Backlog - Jira
Userpilot | Events
Userpilot | Events
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AWS Console Home
Skip to Main Content
Skip to Main Content
Amazon Q
Services
Search
Ask Amazon Q
[Option+S]
CloudShell
Notifications (none available)
Help & support
Settings
United States (Ohio)
United States (Ohio)
PROD
Account ID: 4103-4619-5943
PROD...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Unnamed Group","depth":4,"bounds":{"left":0.0028257978,"top":0.057063047,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"TypeError: League\\Flysystem\\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app","depth":4,"bounds":{"left":0.0028257978,"top":0.08060654,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"TypeError: League\\Flysystem\\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app","depth":5,"bounds":{"left":0.015957447,"top":0.09217877,"width":0.40492022,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"bounds":{"left":0.0028257978,"top":0.11332801,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"bounds":{"left":0.015957447,"top":0.12490024,"width":0.04138963,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.06732048,"top":0.12051077,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"test (885333) - jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.14604948,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"test (885333) - jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.15762171,"width":0.048038565,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira","depth":4,"bounds":{"left":0.0,"top":0.17877094,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.19034317,"width":0.16140293,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.21149242,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.22306465,"width":0.18816489,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20773] User Pilot not receiving events on report generated - Jira","depth":4,"bounds":{"left":0.0,"top":0.2442139,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20773] User Pilot not receiving events on report generated - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.25578612,"width":0.1200133,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.27693537,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.28850758,"width":0.1931516,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20776] Automated report - sentry - Jira","depth":4,"bounds":{"left":0.0,"top":0.30965683,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20776] Automated report - sentry - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.32122904,"width":0.07646277,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.3423783,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.35395053,"width":0.18816489,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":4,"bounds":{"left":0.0,"top":0.37509975,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.386672,"width":0.09524601,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Platform Team - Backlog - Jira","depth":4,"bounds":{"left":0.0,"top":0.40782124,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Team - Backlog - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.41939345,"width":0.053025264,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Userpilot | Events","depth":4,"bounds":{"left":0.0,"top":0.4405427,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Userpilot | Events","depth":5,"bounds":{"left":0.013297873,"top":0.4521149,"width":0.030418882,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.0028257978,"top":0.47486034,"width":0.07413564,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.0028257978,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.013796543,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.024933511,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.036070477,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.04720745,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"AWS Console Home","depth":13,"bounds":{"left":0.07962101,"top":0.055067837,"width":0.021609042,"height":0.03830806},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to Main Content","depth":13,"bounds":{"left":0.079288565,"top":0.054269753,"width":0.0013297872,"height":0.0015961692},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to Main Content","depth":14,"bounds":{"left":0.079953454,"top":0.055067837,"width":0.01662234,"height":0.051476456},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Amazon Q","depth":14,"bounds":{"left":0.1015625,"top":0.055067837,"width":0.01662234,"height":0.03830806},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Services","depth":13,"bounds":{"left":0.11818484,"top":0.055067837,"width":0.01662234,"height":0.03830806},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXComboBox","text":"Search","depth":16,"bounds":{"left":0.13480718,"top":0.0622506,"width":0.17952128,"height":0.023942538},"on_screen":true,"role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Ask Amazon Q","depth":15,"bounds":{"left":0.30103058,"top":0.06464485,"width":0.009973404,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[Option+S]","depth":16,"bounds":{"left":0.27942154,"top":0.06743815,"width":0.023271276,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"CloudShell","depth":14,"bounds":{"left":0.8128325,"top":0.055067837,"width":0.015957447,"height":0.03830806},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Notifications (none available)","depth":15,"bounds":{"left":0.8287899,"top":0.058260176,"width":0.01662234,"height":0.031923383},"on_screen":true,"help_text":"Notifications","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Help & support","depth":15,"bounds":{"left":0.84541225,"top":0.055067837,"width":0.01662234,"height":0.03830806},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Settings","depth":15,"bounds":{"left":0.86203456,"top":0.055067837,"width":0.01662234,"height":0.03830806},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXComboBox","text":"United States (Ohio)","depth":15,"bounds":{"left":0.8786569,"top":0.055067837,"width":0.053690158,"height":0.03830806},"on_screen":true,"value":"United States (Ohio)","help_text":"United States (Ohio)","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"United States (Ohio)","depth":17,"bounds":{"left":0.8843085,"top":0.06823623,"width":0.03706782,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"PROD","depth":15,"bounds":{"left":0.93234706,"top":0.055067837,"width":0.067652926,"height":0.03830806},"on_screen":true,"help_text":"Production_View_Only @ jiminny","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Account ID: 4103-4619-5943","depth":19,"bounds":{"left":0.9353391,"top":0.057063047,"width":0.05435505,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"PROD","depth":18,"bounds":{"left":0.98204786,"top":0.075418994,"width":0.010638298,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-6912174078634558888
|
-2580190213590910812
|
click
|
accessibility
|
NULL
|
Unnamed Group
TypeError: League\Flysystem\Filesyst Unnamed Group
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
CloudWatch | us-east-2
CloudWatch | us-east-2
Close tab
test (885333) - jiminny/app
test (885333) - jiminny/app
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
[JY-20773] User Pilot not receiving events on report generated - Jira
[JY-20773] User Pilot not receiving events on report generated - Jira
JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app
JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app
[JY-20776] Automated report - sentry - Jira
[JY-20776] Automated report - sentry - Jira
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
Platform Team - Backlog - Jira
Platform Team - Backlog - Jira
Userpilot | Events
Userpilot | Events
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AWS Console Home
Skip to Main Content
Skip to Main Content
Amazon Q
Services
Search
Ask Amazon Q
[Option+S]
CloudShell
Notifications (none available)
Help & support
Settings
United States (Ohio)
United States (Ohio)
PROD
Account ID: 4103-4619-5943
PROD...
|
25999
|
NULL
|
NULL
|
NULL
|
|
20693
|
900
|
8
|
2026-05-11T16:11:51.389247+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778515911389_m1.jpg...
|
Firefox
|
DXP4800PLUS-B5F8 — Personal
|
True
|
nas.lakylak.xyz/desktop/#/
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
New Tab
New Tab
Screenpipe — Archive
Screenpipe — New Tab
New Tab
Screenpipe — Archive
Screenpipe — Archive
All docs · AFFiNE
All docs · AFFiNE
DXP4800PLUS-B5F8
DXP4800PLUS-B5F8
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Open history (⇧⌘H)
Open bookmarks (⌘B)
Bitwarden
1.8
KB/s
264
B/s
Files
Control Panel
Storage
App Center
Logs
Support
Task Manager
Music
Cloud Drives
Theater
Photos
Online Office
TextEdit
Virtual Machine
Downloads
DLNA
File Version Explorer
Security
Jellyfin-HT
SAN Manager
Vault
Snapshot
Comics
Sync & Backup
UGREEN AI
Recycle Bin
Notifications
Settings
Clear all
2
App Center
12:32
17 apps can be updated. Learn more
2
Control Panel
Sat. 17:43
Successfully updated to version 1.15.1.0127
Storage
Sat. 17:38
Detected 2 unused hard drive
SAN Manager
04-14 14:50
There is a LUN in Damaged status. Please take action promptly
Docker
03-01 10:52
Updated the "tailscale" container. Go to view
View all
Notifications...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"New Tab","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"New Tab","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Screenpipe — Archive","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Screenpipe — Archive","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"All docs · AFFiNE","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"All docs · AFFiNE","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"DXP4800PLUS-B5F8","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"DXP4800PLUS-B5F8","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"New Tab","depth":4,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.48576388,"top":0.0,"width":0.022222223,"height":0.035555556},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.5086806,"top":0.0,"width":0.022222223,"height":0.035555556},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.53194445,"top":0.0,"width":0.022222223,"height":0.035555556},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.5552083,"top":0.0,"width":0.022222223,"height":0.035555556},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Bitwarden","depth":6,"bounds":{"left":0.5784722,"top":0.0,"width":0.022222223,"height":0.035555556},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"","depth":18,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1.8","depth":16,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"KB/s","depth":16,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"264","depth":16,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"B/s","depth":16,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Files","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Control Panel","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Storage","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"App Center","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Logs","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Support","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Task Manager","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Music","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Cloud Drives","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Theater","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Photos","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Online Office","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"TextEdit","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Virtual Machine","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Downloads","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"DLNA","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"File Version Explorer","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Security","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jellyfin-HT","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SAN Manager","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Vault","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Snapshot","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Comics","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Sync & Backup","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"UGREEN AI","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Recycle Bin","depth":13,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Notifications","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Settings","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Clear all","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"App Center","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"12:32","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"17 apps can be updated. Learn more","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Control Panel","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Sat. 17:43","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Successfully updated to version 1.15.1.0127","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Storage","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Sat. 17:38","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Detected 2 unused hard drive","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SAN Manager","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"04-14 14:50","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"There is a LUN in Damaged status. Please take action promptly","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Docker","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"03-01 10:52","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated the \"tailscale\" container. Go to view","depth":16,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"View all","depth":15,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Notifications","depth":9,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-6910970210571555511
|
-4376997345335453475
|
click
|
accessibility
|
NULL
|
New Tab
New Tab
Screenpipe — Archive
Screenpipe — New Tab
New Tab
Screenpipe — Archive
Screenpipe — Archive
All docs · AFFiNE
All docs · AFFiNE
DXP4800PLUS-B5F8
DXP4800PLUS-B5F8
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Open history (⇧⌘H)
Open bookmarks (⌘B)
Bitwarden
1.8
KB/s
264
B/s
Files
Control Panel
Storage
App Center
Logs
Support
Task Manager
Music
Cloud Drives
Theater
Photos
Online Office
TextEdit
Virtual Machine
Downloads
DLNA
File Version Explorer
Security
Jellyfin-HT
SAN Manager
Vault
Snapshot
Comics
Sync & Backup
UGREEN AI
Recycle Bin
Notifications
Settings
Clear all
2
App Center
12:32
17 apps can be updated. Learn more
2
Control Panel
Sat. 17:43
Successfully updated to version 1.15.1.0127
Storage
Sat. 17:38
Detected 2 unused hard drive
SAN Manager
04-14 14:50
There is a LUN in Damaged status. Please take action promptly
Docker
03-01 10:52
Updated the "tailscale" container. Go to view
View all
Notifications...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
20694
|
901
|
10
|
2026-05-11T16:11:51.357620+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778515911357_m2.jpg...
|
Firefox
|
DXP4800PLUS-B5F8 — Personal
|
True
|
nas.lakylak.xyz/desktop/#/
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
New Tab
New Tab
Screenpipe — Archive
Screenpipe — New Tab
New Tab
Screenpipe — Archive
Screenpipe — Archive
All docs · AFFiNE
All docs · AFFiNE
DXP4800PLUS-B5F8
DXP4800PLUS-B5F8
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Open history (⇧⌘H)
Open bookmarks (⌘B)
Bitwarden
1.8
KB/s
264
B/s
Files
Control Panel
Storage
App Center
Logs
Support
Task Manager
Music
Cloud Drives
Theater
Photos
Online Office
TextEdit
Virtual Machine
Downloads
DLNA
File Version Explorer
Security
Jellyfin-HT
SAN Manager
Vault
Snapshot
Comics
Sync & Backup
UGREEN AI
Recycle Bin
Notifications
Settings
Clear all
2
App Center
12:32
17 apps can be updated. Learn more
2
Control Panel
Sat. 17:43
Successfully updated to version 1.15.1.0127
Storage
Sat. 17:38
Detected 2 unused hard drive
SAN Manager
04-14 14:50
There is a LUN in Damaged status. Please take action promptly
Docker
03-01 10:52
Updated the "tailscale" container. Go to view
View all
Notifications...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"New Tab","depth":4,"bounds":{"left":0.5,"top":0.0518755,"width":0.06881649,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"New Tab","depth":5,"bounds":{"left":0.51329786,"top":0.06304868,"width":0.014960106,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Screenpipe — Archive","depth":4,"bounds":{"left":0.5,"top":0.08459697,"width":0.06881649,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Screenpipe — Archive","depth":5,"bounds":{"left":0.51329786,"top":0.09577015,"width":0.037898935,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"All docs · AFFiNE","depth":4,"bounds":{"left":0.5,"top":0.11731844,"width":0.06881649,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"All docs · AFFiNE","depth":5,"bounds":{"left":0.51329786,"top":0.12849163,"width":0.029587766,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"DXP4800PLUS-B5F8","depth":4,"bounds":{"left":0.5,"top":0.15003991,"width":0.06881649,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"DXP4800PLUS-B5F8","depth":5,"bounds":{"left":0.51329786,"top":0.16121309,"width":0.036901597,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.55651593,"top":0.15722266,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.5028258,"top":0.18435754,"width":0.06333112,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.5028258,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.51379657,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.5249335,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.53607047,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Bitwarden","depth":6,"bounds":{"left":0.5472075,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"","depth":18,"bounds":{"left":0.97706115,"top":0.06304868,"width":0.0066489363,"height":0.015961692},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1.8","depth":16,"bounds":{"left":0.92669547,"top":0.06264964,"width":0.0051529254,"height":0.008379889},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"KB/s","depth":16,"bounds":{"left":0.9318484,"top":0.06304868,"width":0.005984043,"height":0.0075818035},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"264","depth":16,"bounds":{"left":0.92669547,"top":0.07222666,"width":0.005984043,"height":0.008379889},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"B/s","depth":16,"bounds":{"left":0.93267953,"top":0.0726257,"width":0.0039893617,"height":0.0075818035},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Files","depth":13,"bounds":{"left":0.59175533,"top":0.1707901,"width":0.009973404,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Control Panel","depth":13,"bounds":{"left":0.58261305,"top":0.2697526,"width":0.02825798,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Storage","depth":13,"bounds":{"left":0.58859706,"top":0.36871508,"width":0.016289894,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"App Center","depth":13,"bounds":{"left":0.58494014,"top":0.46767756,"width":0.023603724,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Logs","depth":13,"bounds":{"left":0.59175533,"top":0.5666401,"width":0.009973404,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Support","depth":13,"bounds":{"left":0.58859706,"top":0.66560256,"width":0.016289894,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Task Manager","depth":13,"bounds":{"left":0.58211434,"top":0.76456505,"width":0.02925532,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Music","depth":13,"bounds":{"left":0.5905917,"top":0.86352754,"width":0.012300532,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Cloud Drives","depth":13,"bounds":{"left":0.6313165,"top":0.1707901,"width":0.026595745,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Theater","depth":13,"bounds":{"left":0.63663566,"top":0.2697526,"width":0.015957447,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Photos","depth":13,"bounds":{"left":0.63730055,"top":0.36871508,"width":0.01462766,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Online Office","depth":13,"bounds":{"left":0.63115025,"top":0.46767756,"width":0.026928192,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"TextEdit","depth":13,"bounds":{"left":0.6363032,"top":0.5666401,"width":0.01662234,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Virtual Machine","depth":13,"bounds":{"left":0.6286569,"top":0.66560256,"width":0.031914894,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Downloads","depth":13,"bounds":{"left":0.633145,"top":0.76456505,"width":0.022938829,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"DLNA","depth":13,"bounds":{"left":0.6384641,"top":0.86352754,"width":0.012300532,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"File Version Explorer","depth":13,"bounds":{"left":0.6710439,"top":0.1707901,"width":0.04288564,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Security","depth":13,"bounds":{"left":0.6840093,"top":0.2697526,"width":0.016954787,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Jellyfin-HT","depth":13,"bounds":{"left":0.68151593,"top":0.36871508,"width":0.021941489,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SAN Manager","depth":13,"bounds":{"left":0.67785907,"top":0.46767756,"width":0.02925532,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Vault","depth":13,"bounds":{"left":0.68733376,"top":0.5666401,"width":0.010305851,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Snapshot","depth":13,"bounds":{"left":0.68267953,"top":0.66560256,"width":0.019614361,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Comics","depth":13,"bounds":{"left":0.6846742,"top":0.76456505,"width":0.015625,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Sync & Backup","depth":13,"bounds":{"left":0.67669547,"top":0.86352754,"width":0.03158245,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"UGREEN AI","depth":13,"bounds":{"left":0.72755986,"top":0.1707901,"width":0.025598405,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Recycle Bin","depth":13,"bounds":{"left":0.7280585,"top":0.2697526,"width":0.024601065,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Notifications","depth":14,"bounds":{"left":1.0,"top":0.10694334,"width":-0.0014959574,"height":0.018355945},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Settings","depth":15,"bounds":{"left":1.0,"top":0.11053472,"width":-0.08261299,"height":0.011173184},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Clear all","depth":15,"bounds":{"left":1.0,"top":0.11053472,"width":-0.09458113,"height":0.011173184},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":18,"bounds":{"left":1.0,"top":0.14884278,"width":-0.013962746,"height":0.009177973},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"App Center","depth":17,"bounds":{"left":1.0,"top":0.15003991,"width":-0.020279288,"height":0.012769354},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"12:32","depth":17,"bounds":{"left":1.0,"top":0.15083799,"width":-0.0871011,"height":0.011173184},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"17 apps can be updated. Learn more","depth":18,"bounds":{"left":1.0,"top":0.1660016,"width":-0.020279288,"height":0.011173184},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":18,"bounds":{"left":1.0,"top":0.22266561,"width":-0.013962746,"height":0.009177973},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Control Panel","depth":17,"bounds":{"left":1.0,"top":0.21827614,"width":-0.020279288,"height":0.012769354},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Sat. 17:43","depth":17,"bounds":{"left":1.0,"top":0.21907422,"width":-0.07895613,"height":0.011173184},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Successfully updated to version 1.15.1.0127","depth":18,"bounds":{"left":1.0,"top":0.23423783,"width":-0.020279288,"height":0.022745412},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Storage","depth":17,"bounds":{"left":1.0,"top":0.29768556,"width":-0.020279288,"height":0.012769354},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Sat. 17:38","depth":17,"bounds":{"left":1.0,"top":0.29848364,"width":-0.07895613,"height":0.011173184},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Detected 2 unused hard drive","depth":18,"bounds":{"left":1.0,"top":0.3140463,"width":-0.020279288,"height":0.011173184},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"SAN Manager","depth":16,"bounds":{"left":1.0,"top":0.3639266,"width":-0.020112991,"height":0.012769354},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"04-14 14:50","depth":16,"bounds":{"left":1.0,"top":0.36472467,"width":-0.07596409,"height":0.011173184},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"There is a LUN in Damaged status. Please take action promptly","depth":16,"bounds":{"left":1.0,"top":0.37988827,"width":-0.020112991,"height":0.025538707},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Docker","depth":16,"bounds":{"left":1.0,"top":0.43256184,"width":-0.020112991,"height":0.012769354},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"03-01 10:52","depth":16,"bounds":{"left":1.0,"top":0.43335995,"width":-0.07596409,"height":0.011173184},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Updated the \"tailscale\" container. Go to view","depth":16,"bounds":{"left":1.0,"top":0.44852355,"width":-0.020112991,"height":0.025538707},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"View all","depth":15,"bounds":{"left":1.0,"top":0.06584198,"width":-0.044547915,"height":0.011173184},"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Notifications","depth":9,"bounds":{"left":0.95827794,"top":0.090183556,"width":0.021775266,"height":0.011173184},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-6910970210571555511
|
-4376997345335453475
|
click
|
accessibility
|
NULL
|
New Tab
New Tab
Screenpipe — Archive
Screenpipe — New Tab
New Tab
Screenpipe — Archive
Screenpipe — Archive
All docs · AFFiNE
All docs · AFFiNE
DXP4800PLUS-B5F8
DXP4800PLUS-B5F8
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Open history (⇧⌘H)
Open bookmarks (⌘B)
Bitwarden
1.8
KB/s
264
B/s
Files
Control Panel
Storage
App Center
Logs
Support
Task Manager
Music
Cloud Drives
Theater
Photos
Online Office
TextEdit
Virtual Machine
Downloads
DLNA
File Version Explorer
Security
Jellyfin-HT
SAN Manager
Vault
Snapshot
Comics
Sync & Backup
UGREEN AI
Recycle Bin
Notifications
Settings
Clear all
2
App Center
12:32
17 apps can be updated. Learn more
2
Control Panel
Sat. 17:43
Successfully updated to version 1.15.1.0127
Storage
Sat. 17:38
Detected 2 unused hard drive
SAN Manager
04-14 14:50
There is a LUN in Damaged status. Please take action promptly
Docker
03-01 10:52
Updated the "tailscale" container. Go to view
View all
Notifications...
|
20692
|
NULL
|
NULL
|
NULL
|
|
5064
|
181
|
22
|
2026-05-07T14:49:21.431993+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-07/1778 /Users/lukas/.screenpipe/data/data/2026-05-07/1778165361431_m1.jpg...
|
Firefox
|
Jiminny — Work
|
True
|
app.staging.jiminny.com/dashboard
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 3 Q2 - Platform Team - Scrum Board Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
Service-Desk - Queues - Platform team - Service space - Jira
Service-Desk - Queues - Platform team - Service space - Jira
Jy 20807 check various issues with stages by nikolaybiaivanov · Pull Request #12041 · jiminny/app
Jy 20807 check various issues with stages by nikolaybiaivanov · Pull Request #12041 · jiminny/app
Illuminate\Queue\MaxAttemptsExceededException: Jiminny\Jobs\Activity\DeleteTeamChurnData has been attempted too many times. — jiminny — app
Illuminate\Queue\MaxAttemptsExceededException: Jiminny\Jobs\Activity\DeleteTeamChurnData has been attempted too many times. — jiminny — app
Pull requests · jiminny/app
Pull requests · jiminny/app
Userpilot | Ask Jiminny Report Generated
Userpilot | Ask Jiminny Report Generated
JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app
JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app
Problem loading page
Problem loading page
Search the CRM - HubSpot docs
Search the CRM - HubSpot docs
Jiminny
Jiminny
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
JY-20733-autoloader-optimization ■ 876223
75
75
My Recordings
My Recordings
Everyone's Recordings
Everyone's Recordings
No Recordings
Schedule
Schedule
Invite Notetaker
This Week
This Week
Everyone's Schedule
Everyone's Schedule
Unknown Customer
Stefka / James Weekly
Tomorrow, 3:15 PM
Trending this month
Trending this month
Sort by Sort by: Most played
Sort by
Sort by:
Most played
Unknown Customer
Notetaker added by Veselin Kulov
Notetaker added by Veselin Kulov
2
times played
Unknown Customer
Notetaker added by Veselin Kulov
Notetaker added by Veselin Kulov
1
times played
Unknown Customer
Notetaker added by Veselin Kulov
Notetaker added by Veselin Kulov
1
times played
Unknown Customer
Processing tickets review
Processing tickets review
0
times played
Unknown Customer
Daily - Processing
Daily - Processing
0
times played
Unknown Customer
Planing - Processing
Planing - Processing
0
times played
Unknown Customer
Daily - Processing
Daily - Processing
0
times played
Unknown Customer
Refinement - Processing
Refinement - Processing
0
times played
Unknown Customer
2026-04-08-call-to-[CREDIT_CARD]-04-08-call-to-441173692222
0
times played
Unknown Customer
Daily - Processing
Daily - Processing
0
times played
Unknown Customer
Daily - Processing
Daily - Processing
0
times played
Unknown Customer
Notetaker added by Todor Stamatov
Notetaker added by Todor Stamatov
0
times played
Unknown Customer
Stefka / James Weekly
Stefka / James Weekly
0
times played
Unknown Customer
Daily - Processing
Daily - Processing
0
times played
Robinson Crusoe Cruises Limited
Sprint Review
Sprint Review
0
times played
Unknown Customer
Discuss the Desktop app design
Discuss the Desktop app design
0
times played
Unknown Customer
Daily - Processing
Daily - Processing
0
times played
Unknown Customer
Daily - Processing
Daily - Processing
0
times played
Unknown Customer
Daily - Processing
Daily - Processing
0
times played
Robinson Crusoe Cruises Limited
Sprint Review
Sprint Review
0
times played
Unknown Customer
Daily - Processing
Daily - Processing
0
times played
Unknown Customer
Refinement - Processing
Refinement - Processing
0
times played
Unknown Customer
Notetaker added by Mihail Mihaylov
Notetaker added by Mihail Mihaylov
0
times played
Unknown Customer
Planing - Processing
Planing - Processing
0
times played
Unknown Customer
Kara / James
Kara / James
0
times played
Live Feed
Live Feed
Veselin Kulov...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Service-Desk - Queues - Platform team - Service space - Jira","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Service-Desk - Queues - Platform team - Service space - Jira","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jy 20807 check various issues with stages by nikolaybiaivanov · Pull Request #12041 · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jy 20807 check various issues with stages by nikolaybiaivanov · Pull Request #12041 · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Illuminate\\Queue\\MaxAttemptsExceededException: Jiminny\\Jobs\\Activity\\DeleteTeamChurnData has been attempted too many times. — jiminny — app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Illuminate\\Queue\\MaxAttemptsExceededException: Jiminny\\Jobs\\Activity\\DeleteTeamChurnData has been attempted too many times. — jiminny — app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Userpilot | Ask Jiminny Report Generated","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Userpilot | Ask Jiminny Report Generated","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Problem loading page","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Problem loading page","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Search the CRM - HubSpot docs","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Search the CRM - HubSpot docs","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Jiminny","depth":5,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"New Tab","depth":4,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.16770834,"top":0.0,"width":0.022222223,"height":0.035555556},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.190625,"top":0.0,"width":0.022222223,"height":0.035555556},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.21388888,"top":0.0,"width":0.022222223,"height":0.035555556},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.23715279,"top":0.0,"width":0.022222223,"height":0.035555556},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.26041666,"top":0.0,"width":0.022222223,"height":0.035555556},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20733-autoloader-optimization ■ 876223","depth":9,"bounds":{"left":0.32951388,"top":0.0,"width":0.18194444,"height":0.017777778},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"75","depth":12,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"75","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"My Recordings","depth":14,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"My Recordings","depth":15,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Everyone's Recordings","depth":14,"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Everyone's Recordings","depth":15,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No Recordings","depth":17,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Schedule","depth":13,"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Schedule","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Invite Notetaker","depth":14,"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXComboBox","text":"This Week","depth":14,"on_screen":true,"value":"This Week","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"This Week","depth":17,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Everyone's Schedule","depth":14,"on_screen":true,"value":"Everyone's Schedule","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Everyone's Schedule","depth":17,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Stefka / James Weekly","depth":17,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Tomorrow, 3:15 PM","depth":16,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Trending this month","depth":13,"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Trending this month","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Sort by Sort by: Most played","depth":13,"on_screen":true,"value":"Sort by Sort by: Most played","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Sort by","depth":14,"on_screen":false,"help_text":"","role_description":"text field","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Sort by:","depth":15,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Most played","depth":15,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Notetaker added by Veselin Kulov","depth":15,"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Notetaker added by Veselin Kulov","depth":16,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":16,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Notetaker added by Veselin Kulov","depth":15,"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Notetaker added by Veselin Kulov","depth":16,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1","depth":16,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Notetaker added by Veselin Kulov","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Notetaker added by Veselin Kulov","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Processing tickets review","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Processing tickets review","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Daily - Processing","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Daily - Processing","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Planing - Processing","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Planing - Processing","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Daily - Processing","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Daily - Processing","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Refinement - Processing","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Refinement - Processing","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"2026-04-08-call-to-441173692222","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"2026-04-08-call-to-441173692222","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Daily - Processing","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Daily - Processing","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Daily - Processing","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Daily - Processing","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Notetaker added by Todor Stamatov","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Notetaker added by Todor Stamatov","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Stefka / James Weekly","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Stefka / James Weekly","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Daily - Processing","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Daily - Processing","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Robinson Crusoe Cruises Limited","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Sprint Review","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Sprint Review","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Discuss the Desktop app design","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Discuss the Desktop app design","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Daily - Processing","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Daily - Processing","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Daily - Processing","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Daily - Processing","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Daily - Processing","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Daily - Processing","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Robinson Crusoe Cruises Limited","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Sprint Review","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Sprint Review","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Daily - Processing","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Daily - Processing","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Refinement - Processing","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Refinement - Processing","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Notetaker added by Mihail Mihaylov","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Notetaker added by Mihail Mihaylov","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Planing - Processing","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Planing - Processing","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Unknown Customer","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Kara / James","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Kara / James","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"times played","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Live Feed","depth":13,"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Live Feed","depth":14,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Veselin Kulov","depth":18,"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-6910927560612739810
|
1319142716177738112
|
visual_change
|
accessibility
|
NULL
|
Platform Sprint 3 Q2 - Platform Team - Scrum Board Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
Service-Desk - Queues - Platform team - Service space - Jira
Service-Desk - Queues - Platform team - Service space - Jira
Jy 20807 check various issues with stages by nikolaybiaivanov · Pull Request #12041 · jiminny/app
Jy 20807 check various issues with stages by nikolaybiaivanov · Pull Request #12041 · jiminny/app
Illuminate\Queue\MaxAttemptsExceededException: Jiminny\Jobs\Activity\DeleteTeamChurnData has been attempted too many times. — jiminny — app
Illuminate\Queue\MaxAttemptsExceededException: Jiminny\Jobs\Activity\DeleteTeamChurnData has been attempted too many times. — jiminny — app
Pull requests · jiminny/app
Pull requests · jiminny/app
Userpilot | Ask Jiminny Report Generated
Userpilot | Ask Jiminny Report Generated
JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app
JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app
Problem loading page
Problem loading page
Search the CRM - HubSpot docs
Search the CRM - HubSpot docs
Jiminny
Jiminny
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
JY-20733-autoloader-optimization ■ 876223
75
75
My Recordings
My Recordings
Everyone's Recordings
Everyone's Recordings
No Recordings
Schedule
Schedule
Invite Notetaker
This Week
This Week
Everyone's Schedule
Everyone's Schedule
Unknown Customer
Stefka / James Weekly
Tomorrow, 3:15 PM
Trending this month
Trending this month
Sort by Sort by: Most played
Sort by
Sort by:
Most played
Unknown Customer
Notetaker added by Veselin Kulov
Notetaker added by Veselin Kulov
2
times played
Unknown Customer
Notetaker added by Veselin Kulov
Notetaker added by Veselin Kulov
1
times played
Unknown Customer
Notetaker added by Veselin Kulov
Notetaker added by Veselin Kulov
1
times played
Unknown Customer
Processing tickets review
Processing tickets review
0
times played
Unknown Customer
Daily - Processing
Daily - Processing
0
times played
Unknown Customer
Planing - Processing
Planing - Processing
0
times played
Unknown Customer
Daily - Processing
Daily - Processing
0
times played
Unknown Customer
Refinement - Processing
Refinement - Processing
0
times played
Unknown Customer
2026-04-08-call-to-[CREDIT_CARD]-04-08-call-to-441173692222
0
times played
Unknown Customer
Daily - Processing
Daily - Processing
0
times played
Unknown Customer
Daily - Processing
Daily - Processing
0
times played
Unknown Customer
Notetaker added by Todor Stamatov
Notetaker added by Todor Stamatov
0
times played
Unknown Customer
Stefka / James Weekly
Stefka / James Weekly
0
times played
Unknown Customer
Daily - Processing
Daily - Processing
0
times played
Robinson Crusoe Cruises Limited
Sprint Review
Sprint Review
0
times played
Unknown Customer
Discuss the Desktop app design
Discuss the Desktop app design
0
times played
Unknown Customer
Daily - Processing
Daily - Processing
0
times played
Unknown Customer
Daily - Processing
Daily - Processing
0
times played
Unknown Customer
Daily - Processing
Daily - Processing
0
times played
Robinson Crusoe Cruises Limited
Sprint Review
Sprint Review
0
times played
Unknown Customer
Daily - Processing
Daily - Processing
0
times played
Unknown Customer
Refinement - Processing
Refinement - Processing
0
times played
Unknown Customer
Notetaker added by Mihail Mihaylov
Notetaker added by Mihail Mihaylov
0
times played
Unknown Customer
Planing - Processing
Planing - Processing
0
times played
Unknown Customer
Kara / James
Kara / James
0
times played
Live Feed
Live Feed
Veselin Kulov...
|
5063
|
NULL
|
NULL
|
NULL
|
|
23393
|
989
|
1
|
2026-05-12T07:50:38.620725+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-12/1778 /Users/lukas/.screenpipe/data/data/2026-05-12/1778572238620_m2.jpg...
|
Firefox
|
[JY-20776] Automated report - sentry - Jira — Work
|
True
|
jiminny.atlassian.net/browse/JY-20776
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
New Tab
New Tab
Jy 20820 es reindex stream model h New Tab
New Tab
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
Pipelines - jiminny/app
Pipelines - jiminny/app
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20773] User Pilot not receiving events on report generated - Jira
[JY-20773] User Pilot not receiving events on report generated - Jira
JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app
JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app
[JY-20776] Automated report - sentry - Jira
[JY-20776] Automated report - sentry - Jira
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app
JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app
Data Explorer
Data Explorer
[JY-20776] Automated report - sentry - Jira
[JY-20776] Automated report - sentry - Jira
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to:
Sidebar
Sidebar
Top Bar
Top Bar
Main Content
Main Content
Collapse sidebar [
Collapse sidebar [
Switch sites or apps
Switch sites or apps
Go to your Jira homepage
Search, press enter to navigate to advanced search with your text query
Create
Create
Rovo Ask Rovo
Ask Rovo
Notifications
Notifications
Help
Help
Settings
Settings
[EMAIL]
[EMAIL]
For you
For you
Recent
Recent
Starred
Starred
Apps
Apps
More actions for Apps
More actions for Apps
Spaces
Spaces
Create space
Create space
More actions for spaces
More actions for spaces
Recent
Jiminny (New)
Jiminny (New)
Jiminny (New)
Create board
Create board
More actions for Jiminny (New)
More actions for Jiminny (New)
Platform Team
Platform Team
Board actions
Board actions
Capture Team
Capture Team
Board actions
Board actions
Enterprise Stability Issues 🤕
Enterprise Stability Issues 🤕
Board actions
Board actions
Processing Team
Processing Team
Board actions
Board actions
SE Kanban
SE Kanban
Board actions
Board actions
Service-Desk
Service-Desk
More actions for Service-Desk
More actions for Service-Desk
More spaces
More spaces
Filters
Filters
More actions for Filters
More actions for Filters
Dashboards
Dashboards
Create dashboard
Create dashboard
More actions for Dashboards
More actions for Dashboards
Operations
Operations
More actions for Operations
More actions for Operations
Confluence , (opens new window)
Confluence
, (opens new window)
Teams , (opens new window)
Teams
, (opens new window)
open menu
open menu
Customise sidebar
Customise sidebar
Resize side navigation panel
Spaces
Spaces
/
Jiminny (New) Jiminny (New)
Jiminny (New)
/
Epic - Change parent
JY-18631
JY-18631
/
Bug - Change work type
JY-20776
JY-20776
Copy link
Automated report - sentry- Summary, edit
Automated report - sentry
Automated report - sentry
Add or create work related to this Bug
Add or create work related to this Bug
View app actions
View app actions
Collapse Key details Key details...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"New Tab","depth":4,"bounds":{"left":0.0,"top":0.0518755,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"New Tab","depth":5,"bounds":{"left":0.013297873,"top":0.06304868,"width":0.014960106,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.08459697,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.09577015,"width":0.16888298,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira","depth":4,"bounds":{"left":0.0,"top":0.11731844,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.12849163,"width":0.16140293,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.15003991,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.16121309,"width":0.18816489,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.18276137,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pipelines - jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.19393456,"width":0.039228722,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.21548285,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.22665602,"width":0.04537899,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20773] User Pilot not receiving events on report generated - Jira","depth":4,"bounds":{"left":0.0,"top":0.2482043,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20773] User Pilot not receiving events on report generated - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.25937748,"width":0.1200133,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.28092578,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.29209897,"width":0.19331782,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20776] Automated report - sentry - Jira","depth":4,"bounds":{"left":0.0,"top":0.31364724,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20776] Automated report - sentry - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.32482043,"width":0.07646277,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"TypeError: League\\Flysystem\\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app","depth":4,"bounds":{"left":0.0,"top":0.3463687,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"TypeError: League\\Flysystem\\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app","depth":5,"bounds":{"left":0.013297873,"top":0.3575419,"width":0.40475398,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.0,"top":0.3790902,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.39026338,"width":0.10106383,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.41181165,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.42298484,"width":0.15159574,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Data Explorer","depth":4,"bounds":{"left":0.0,"top":0.4445331,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Data Explorer","depth":5,"bounds":{"left":0.013297873,"top":0.4557063,"width":0.0234375,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20776] Automated report - sentry - Jira","depth":4,"bounds":{"left":0.0,"top":0.4772546,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"[JY-20776] Automated report - sentry - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.4884278,"width":0.07646277,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.06732048,"top":0.48443735,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.0028257978,"top":0.51157224,"width":0.07413564,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.0028257978,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.013796543,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.024933511,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.036070477,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.04720745,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to:","depth":9,"bounds":{"left":0.090259306,"top":0.07861133,"width":0.016954787,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Sidebar","depth":10,"bounds":{"left":0.090259306,"top":0.097765364,"width":0.016954787,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Sidebar","depth":11,"bounds":{"left":0.090259306,"top":0.097765364,"width":0.016954787,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Top Bar","depth":10,"bounds":{"left":0.090259306,"top":0.11691939,"width":0.016954787,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Top Bar","depth":11,"bounds":{"left":0.090259306,"top":0.11691939,"width":0.016954787,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Main Content","depth":10,"bounds":{"left":0.090259306,"top":0.13607343,"width":0.029421542,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Main Content","depth":11,"bounds":{"left":0.090259306,"top":0.13607343,"width":0.029421542,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Collapse sidebar [","depth":9,"bounds":{"left":0.08361037,"top":0.057861134,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Collapse sidebar [","depth":11,"bounds":{"left":0.0887633,"top":0.06344773,"width":0.039727394,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Switch sites or apps","depth":10,"bounds":{"left":0.095578454,"top":0.057861134,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Switch sites or apps","depth":12,"bounds":{"left":0.10073138,"top":0.06344773,"width":0.044215426,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Go to your Jira homepage","depth":9,"bounds":{"left":0.10887633,"top":0.057861134,"width":0.029421542,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXComboBox","text":"Search, press enter to navigate to advanced search with your text query","depth":11,"bounds":{"left":0.40475398,"top":0.06264964,"width":0.24268617,"height":0.015961692},"on_screen":true,"help_text":"","placeholder":"Search","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Create","depth":10,"bounds":{"left":0.65575135,"top":0.057861134,"width":0.030086435,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Create","depth":12,"bounds":{"left":0.66705453,"top":0.06384677,"width":0.014793883,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Rovo Ask Rovo","depth":12,"bounds":{"left":0.91223407,"top":0.057861134,"width":0.035904255,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Ask Rovo","depth":14,"bounds":{"left":0.92353725,"top":0.06384677,"width":0.020611702,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Notifications","depth":12,"bounds":{"left":0.9494681,"top":0.057861134,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Notifications","depth":14,"bounds":{"left":0.954621,"top":0.06344773,"width":0.027759308,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Help","depth":12,"bounds":{"left":0.96143615,"top":0.057861134,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Help","depth":14,"bounds":{"left":0.9665891,"top":0.06344773,"width":0.010139627,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Settings","depth":12,"bounds":{"left":0.9734042,"top":0.057861134,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Settings","depth":14,"bounds":{"left":0.97855717,"top":0.06344773,"width":0.017952127,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"lukas.kovalik@jiminny.com","depth":12,"bounds":{"left":0.98537236,"top":0.057861134,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"lukas.kovalik@jiminny.com","depth":14,"bounds":{"left":0.99052525,"top":0.06344773,"width":0.009474754,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"For you","depth":12,"bounds":{"left":0.08361037,"top":0.09976058,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"For you","depth":15,"bounds":{"left":0.09424867,"top":0.10574621,"width":0.01662234,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Recent","depth":12,"bounds":{"left":0.08361037,"top":0.12529927,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Recent","depth":15,"bounds":{"left":0.09424867,"top":0.13128492,"width":0.015458777,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Starred","depth":12,"bounds":{"left":0.08361037,"top":0.15083799,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Starred","depth":15,"bounds":{"left":0.09424867,"top":0.15682362,"width":0.016456118,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Apps","depth":12,"bounds":{"left":0.08361037,"top":0.1763767,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Apps","depth":15,"bounds":{"left":0.09424867,"top":0.18236233,"width":0.011635638,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Apps","depth":13,"bounds":{"left":0.15309176,"top":0.17956904,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Apps","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Spaces","depth":12,"bounds":{"left":0.08361037,"top":0.2019154,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"Spaces","depth":15,"bounds":{"left":0.09424867,"top":0.20790103,"width":0.016456118,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Create space","depth":13,"bounds":{"left":0.13646941,"top":0.20510775,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Create space","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for spaces","depth":13,"bounds":{"left":0.14577793,"top":0.20510775,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for spaces","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Recent","depth":16,"bounds":{"left":0.08959442,"top":0.23423783,"width":0.013464096,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Jiminny (New)","depth":17,"bounds":{"left":0.08759973,"top":0.2529928,"width":0.0674867,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny (New)","depth":20,"bounds":{"left":0.09823803,"top":0.25897846,"width":0.032081116,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Jiminny (New)","depth":18,"bounds":{"left":0.08892952,"top":0.25618514,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXMenuButton","text":"Create board","depth":18,"bounds":{"left":0.13646941,"top":0.25618514,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Create board","depth":20,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Jiminny (New)","depth":18,"bounds":{"left":0.14577793,"top":0.25618514,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Jiminny (New)","depth":20,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Platform Team","depth":19,"bounds":{"left":0.09158909,"top":0.27853152,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Team","depth":22,"bounds":{"left":0.1022274,"top":0.28451717,"width":0.032247342,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.15309176,"top":0.28172386,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Capture Team","depth":19,"bounds":{"left":0.09158909,"top":0.30407023,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Capture Team","depth":22,"bounds":{"left":0.1022274,"top":0.31005585,"width":0.03125,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.15309176,"top":0.30726257,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Enterprise Stability Issues 🤕","depth":19,"bounds":{"left":0.09158909,"top":0.32960895,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Enterprise Stability Issues 🤕","depth":22,"bounds":{"left":0.1022274,"top":0.33559456,"width":0.050531916,"height":0.030726258},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.15309176,"top":0.33280128,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Processing Team","depth":19,"bounds":{"left":0.09158909,"top":0.35514766,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Processing Team","depth":22,"bounds":{"left":0.1022274,"top":0.36113328,"width":0.038231384,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.15309176,"top":0.35834,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"SE Kanban","depth":19,"bounds":{"left":0.09158909,"top":0.38068634,"width":0.06349734,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SE Kanban","depth":22,"bounds":{"left":0.1022274,"top":0.386672,"width":0.024102394,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Board actions","depth":20,"bounds":{"left":0.15309176,"top":0.38387868,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Board actions","depth":22,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Service-Desk","depth":17,"bounds":{"left":0.08759973,"top":0.40622506,"width":0.0674867,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Service-Desk","depth":20,"bounds":{"left":0.09823803,"top":0.4122107,"width":0.03025266,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Service-Desk","depth":18,"bounds":{"left":0.15442154,"top":0.4094174,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Service-Desk","depth":20,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"More spaces","depth":17,"bounds":{"left":0.08759973,"top":0.43176377,"width":0.0674867,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More spaces","depth":20,"bounds":{"left":0.09823803,"top":0.43774942,"width":0.028756648,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Filters","depth":12,"bounds":{"left":0.08361037,"top":0.45730248,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Filters","depth":15,"bounds":{"left":0.09424867,"top":0.4632881,"width":0.013796543,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Filters","depth":13,"bounds":{"left":0.15309176,"top":0.46049482,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Filters","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dashboards","depth":12,"bounds":{"left":0.08361037,"top":0.4828412,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Dashboards","depth":15,"bounds":{"left":0.09424867,"top":0.4888268,"width":0.026761968,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Create dashboard","depth":13,"bounds":{"left":0.15508644,"top":0.48603353,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Create dashboard","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Dashboards","depth":13,"bounds":{"left":0.16240026,"top":0.48603353,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Dashboards","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Operations","depth":12,"bounds":{"left":0.08361037,"top":0.5083799,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Operations","depth":15,"bounds":{"left":0.09424867,"top":0.5143655,"width":0.02443484,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"More actions for Operations","depth":13,"bounds":{"left":0.15309176,"top":0.51157224,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More actions for Operations","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Confluence , (opens new window)","depth":13,"bounds":{"left":0.08361037,"top":0.5434956,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Confluence","depth":17,"bounds":{"left":0.09424867,"top":0.5494813,"width":0.025764627,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", (opens new window)","depth":15,"bounds":{"left":0.08361037,"top":0.55706304,"width":0.04837101,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Teams , (opens new window)","depth":13,"bounds":{"left":0.08361037,"top":0.56903434,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Teams","depth":17,"bounds":{"left":0.09424867,"top":0.57501996,"width":0.014793883,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", (opens new window)","depth":15,"bounds":{"left":0.08361037,"top":0.5826017,"width":0.04837101,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"open menu","depth":14,"bounds":{"left":0.14378324,"top":0.57222664,"width":0.0039893617,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"open menu","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Customise sidebar","depth":12,"bounds":{"left":0.08361037,"top":0.60415006,"width":0.071476065,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Customise sidebar","depth":15,"bounds":{"left":0.09424867,"top":0.6101357,"width":0.04155585,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Resize side navigation panel","depth":13,"bounds":{"left":0.2109375,"top":0.0981644,"width":0.062333778,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Spaces","depth":15,"bounds":{"left":0.27260637,"top":0.10933759,"width":0.013962766,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Spaces","depth":17,"bounds":{"left":0.27260637,"top":0.11292897,"width":0.013962766,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":15,"bounds":{"left":0.2883976,"top":0.11173184,"width":0.0016622341,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Jiminny (New) Jiminny (New)","depth":15,"bounds":{"left":0.29388297,"top":0.10933759,"width":0.034408245,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny (New)","depth":17,"bounds":{"left":0.3011968,"top":0.11292897,"width":0.027094414,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":15,"bounds":{"left":0.33011967,"top":0.11173184,"width":0.0016622341,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Epic - Change parent","depth":15,"bounds":{"left":0.3336104,"top":0.10933759,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"JY-18631","depth":15,"bounds":{"left":0.3415891,"top":0.10933759,"width":0.017121011,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-18631","depth":17,"bounds":{"left":0.3415891,"top":0.11292897,"width":0.017121011,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":15,"bounds":{"left":0.36053857,"top":0.11173184,"width":0.0016622341,"height":0.01396648},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Bug - Change work type","depth":15,"bounds":{"left":0.36402926,"top":0.10933759,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"JY-20776","depth":15,"bounds":{"left":0.37200797,"top":0.10933759,"width":0.018284574,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20776","depth":17,"bounds":{"left":0.37200797,"top":0.11292897,"width":0.018284574,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy link","depth":16,"bounds":{"left":0.38896278,"top":0.11213089,"width":0.005319149,"height":0.012769354},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Automated report - sentry- Summary, edit","depth":11,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Automated report - sentry","depth":11,"bounds":{"left":0.27327126,"top":0.1396648,"width":0.09823803,"height":0.022346368},"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Automated report - sentry","depth":12,"bounds":{"left":0.27327126,"top":0.13926576,"width":0.09823803,"height":0.023543496},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Add or create work related to this Bug","depth":12,"bounds":{"left":0.27260637,"top":0.17158818,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add or create work related to this Bug","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"View app actions","depth":12,"bounds":{"left":0.28590426,"top":0.17158818,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"View app actions","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Collapse Key details Key details","depth":11,"bounds":{"left":0.26462767,"top":0.20989625,"width":0.38314494,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"}]...
|
-6908621892286028360
|
-3021542469666901850
|
click
|
accessibility
|
NULL
|
New Tab
New Tab
Jy 20820 es reindex stream model h New Tab
New Tab
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
Pipelines - jiminny/app
Pipelines - jiminny/app
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20773] User Pilot not receiving events on report generated - Jira
[JY-20773] User Pilot not receiving events on report generated - Jira
JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app
JY-20773 fix user pilot tracking ofr automated report generated by LakyLak · Pull Request #12024 · jiminny/app
[JY-20776] Automated report - sentry - Jira
[JY-20776] Automated report - sentry - Jira
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app
JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app
Data Explorer
Data Explorer
[JY-20776] Automated report - sentry - Jira
[JY-20776] Automated report - sentry - Jira
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to:
Sidebar
Sidebar
Top Bar
Top Bar
Main Content
Main Content
Collapse sidebar [
Collapse sidebar [
Switch sites or apps
Switch sites or apps
Go to your Jira homepage
Search, press enter to navigate to advanced search with your text query
Create
Create
Rovo Ask Rovo
Ask Rovo
Notifications
Notifications
Help
Help
Settings
Settings
[EMAIL]
[EMAIL]
For you
For you
Recent
Recent
Starred
Starred
Apps
Apps
More actions for Apps
More actions for Apps
Spaces
Spaces
Create space
Create space
More actions for spaces
More actions for spaces
Recent
Jiminny (New)
Jiminny (New)
Jiminny (New)
Create board
Create board
More actions for Jiminny (New)
More actions for Jiminny (New)
Platform Team
Platform Team
Board actions
Board actions
Capture Team
Capture Team
Board actions
Board actions
Enterprise Stability Issues 🤕
Enterprise Stability Issues 🤕
Board actions
Board actions
Processing Team
Processing Team
Board actions
Board actions
SE Kanban
SE Kanban
Board actions
Board actions
Service-Desk
Service-Desk
More actions for Service-Desk
More actions for Service-Desk
More spaces
More spaces
Filters
Filters
More actions for Filters
More actions for Filters
Dashboards
Dashboards
Create dashboard
Create dashboard
More actions for Dashboards
More actions for Dashboards
Operations
Operations
More actions for Operations
More actions for Operations
Confluence , (opens new window)
Confluence
, (opens new window)
Teams , (opens new window)
Teams
, (opens new window)
open menu
open menu
Customise sidebar
Customise sidebar
Resize side navigation panel
Spaces
Spaces
/
Jiminny (New) Jiminny (New)
Jiminny (New)
/
Epic - Change parent
JY-18631
JY-18631
/
Bug - Change work type
JY-20776
JY-20776
Copy link
Automated report - sentry- Summary, edit
Automated report - sentry
Automated report - sentry
Add or create work related to this Bug
Add or create work related to this Bug
View app actions
View app actions
Collapse Key details Key details...
|
23391
|
NULL
|
NULL
|
NULL
|
|
19048
|
817
|
21
|
2026-05-11T12:13:56.271365+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778501636271_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 22 pending changes
22
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
M...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 22 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"22","depth":22,"bounds":{"left":0.007978723,"top":0.1452514,"width":0.0039893617,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.007978723,"top":0.14604948,"width":0.0023271276,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0019946808,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"M","depth":27,"bounds":{"left":0.10638298,"top":0.16360734,"width":0.003656915,"height":0.011173184},"on_screen":true,"role_description":"text"}]...
|
-6908163125109290695
|
8248368289252311298
|
click
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 22 pending changes
22
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
M...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
16365
|
735
|
11
|
2026-05-11T08:46:33.967966+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778489193967_m2.jpg...
|
PhpStorm
|
faVsco.js – _ide_helper.php
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Built-in Preview
Chrome
Firefox
Safari
Sync Changes
Hide This Notification
Code changed:
Hide
Analyzing…
<?php
/* @noinspection ALL */
// @formatter:off
// phpcs:ignoreFile
/**
* A helper file for Laravel, to provide autocomplete information to your IDE
* Generated for Laravel 12.33.0.
*
* This file should not be included in your code, only analyzed by your IDE!
*
* @author Barry vd. Heuvel <[EMAIL]>
* @see [URL_WITH_CREDENTIALS] string
* @static
*/
public static function inferBasePath()
{
return \Illuminate\Foundation\Application::inferBasePath();
}
/**
* Get the version number of the application.
*
* @return string
* @static
*/
public static function version()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->version();
}
/**
* Run the given array of bootstrap classes.
*
* @param string[] $bootstrappers
* @return void
* @static
*/
public static function bootstrapWith($bootstrappers)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->bootstrapWith($bootstrappers);
}
/**
* Register a callback to run after loading the environment.
*
* @param \Closure $callback
* @return void
* @static
*/
public static function afterLoadingEnvironment($callback)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->afterLoadingEnvironment($callback);
}
/**
* Register a callback to run before a bootstrapper.
*
* @param string $bootstrapper
* @param \Closure $callback
* @return void
* @static
*/
public static function beforeBootstrapping($bootstrapper, $callback)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->beforeBootstrapping($bootstrapper, $callback);
}
/**
* Register a callback to run after a bootstrapper.
*
* @param string $bootstrapper
* @param \Closure $callback
* @return void
* @static
*/
public static function afterBootstrapping($bootstrapper, $callback)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->afterBootstrapping($bootstrapper, $callback);
}
/**
* Determine if the application has been bootstrapped before.
*
* @return bool
* @static
*/
public static function hasBeenBootstrapped()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->hasBeenBootstrapped();
}
/**
* Set the base path for the application.
*
* @param string $basePath
* @return \Illuminate\Foundation\Application
* @static
*/
public static function setBasePath($basePath)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->setBasePath($basePath);
}
/**
* Get the path to the application "app" directory.
*
* @param string $path
* @return string
* @static
*/
public static function path($path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->path($path);
}
/**
* Set the application directory.
*
* @param string $path
* @return \Illuminate\Foundation\Application
* @static
*/
public static function useAppPath($path)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->useAppPath($path);
}
/**
* Get the base path of the Laravel installation.
*
* @param string $path
* @return string
* @static
*/
public static function basePath($path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->basePath($path);
}
/**
* Get the path to the bootstrap directory.
*
* @param string $path
* @return string
* @static
*/
public static function bootstrapPath($path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->bootstrapPath($path);
}
/**
* Get the path to the service provider list in the bootstrap directory.
*
* @return string
* @static
*/
public static function getBootstrapProvidersPath()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getBootstrapProvidersPath();
}
/**
* Set the bootstrap file directory.
*
* @param string $path
* @return \Illuminate\Foundation\Application
* @static
*/
public static function useBootstrapPath($path)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->useBootstrapPath($path);
}
/**
* Get the path to the application configuration files.
*
* @param string $path
* @return string
* @static
*/
public static function configPath($path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->configPath($path);
}
/**
* Set the configuration directory.
*
* @param string $path
* @return \Illuminate\Foundation\Application
* @static
*/
public static function useConfigPath($path)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->useConfigPath($path);
}
/**
* Get the path to the database directory.
*
* @param string $path
* @return string
* @static
*/
public static function databasePath($path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->databasePath($path);
}
/**
* Set the database directory.
*
* @param string $path
* @return \Illuminate\Foundation\Application
* @static
*/
public static function useDatabasePath($path)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->useDatabasePath($path);
}
/**
* Get the path to the language files.
*
* @param string $path
* @return string
* @static
*/
public static function langPath($path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->langPath($path);
}
/**
* Set the language file directory.
*
* @param string $path
* @return \Illuminate\Foundation\Application
* @static
*/
public static function useLangPath($path)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->useLangPath($path);
}
/**
* Get the path to the public / web directory.
*
* @param string $path
* @return string
* @static
*/
public static function publicPath($path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->publicPath($path);
}
/**
* Set the public / web directory.
*
* @param string $path
* @return \Illuminate\Foundation\Application
* @static
*/
public static function usePublicPath($path)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->usePublicPath($path);
}
/**
* Get the path to the storage directory.
*
* @param string $path
* @return string
* @static
*/
public static function storagePath($path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->storagePath($path);
}
/**
* Set the storage directory.
*
* @param string $path
* @return \Illuminate\Foundation\Application
* @static
*/
public static function useStoragePath($path)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->useStoragePath($path);
}
/**
* Get the path to the resources directory.
*
* @param string $path
* @return string
* @static
*/
public static function resourcePath($path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->resourcePath($path);
}
/**
* Get the path to the views directory.
*
* This method returns the first configured path in the array of view paths.
*
* @param string $path
* @return string
* @static
*/
public static function viewPath($path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->viewPath($path);
}
/**
* Join the given paths together.
*
* @param string $basePath
* @param string $path
* @return string
* @static
*/
public static function joinPaths($basePath, $path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->joinPaths($basePath, $path);
}
/**
* Get the path to the environment file directory.
*
* @return string
* @static
*/
public static function environmentPath()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->environmentPath();
}
/**
* Set the directory for the environment file.
*
* @param string $path
* @return \Illuminate\Foundation\Application
* @static
*/
public static function useEnvironmentPath($path)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->useEnvironmentPath($path);
}
/**
* Set the environment file to be loaded during bootstrapping.
*
* @param string $file
* @return \Illuminate\Foundation\Application
* @static
*/
public static function loadEnvironmentFrom($file)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->loadEnvironmentFrom($file);
}
/**
* Get the environment file the application is using.
*
* @return string
* @static
*/
public static function environmentFile()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->environmentFile();
}
/**
* Get the fully qualified path to the environment file.
*
* @return string
* @static
*/
public static function environmentFilePath()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->environmentFilePath();
}
/**
* Get or check the current application environment.
*
* @param string|array $environments
* @return string|bool
* @static
*/
public static function environment(...$environments)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->environment(...$environments);
}
/**
* Determine if the application is in the local environment.
*
* @return bool
* @static
*/
public static function isLocal()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->isLocal();
}
/**
* Determine if the application is in the production environment.
*
* @return bool
* @static
*/
public static function isProduction()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->isProduction();
}
/**
* Detect the application's current environment.
*
* @param \Closure $callback
* @return string
* @static
*/
public static function detectEnvironment($callback)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->detectEnvironment($callback);
}
/**
* Determine if the application is running in the console.
*
* @return bool
* @static
*/
public static function runningInConsole()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->runningInConsole();
}
/**
* Determine if the application is running any of the given console commands.
*
* @param string|array $commands
* @return bool
* @static
*/
public static function runningConsoleCommand(...$commands)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->runningConsoleCommand(...$commands);
}
/**
* Determine if the application is running unit tests.
*
* @return bool
* @static
*/
public static function runningUnitTests()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->runningUnitTests();
}
/**
* Determine if the application is running with debug mode enabled.
*
* @return bool
* @static
*/
public static function hasDebugModeEnabled()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->hasDebugModeEnabled();
}
/**
* Register a new registered listener.
*
* @param callable $callback
* @return void
* @static
*/
public static function registered($callback)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->registered($callback);
}
/**
* Register all of the configured providers.
*
* @return void
* @static
*/
public static function registerConfiguredProviders()
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->registerConfiguredProviders();
}
/**
* Register a service provider with the application.
*
* @param \Illuminate\Support\ServiceProvider|string $provider
* @param bool $force
* @return \Illuminate\Support\ServiceProvider
* @static
*/
public static function register($provider, $force = false)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->register($provider, $force);
}
/**
* Get the registered service provider instance if it exists.
*
* @param \Illuminate\Support\ServiceProvider|string $provider
* @return \Illuminate\Support\ServiceProvider|null
* @static
*/
public static function getProvider($provider)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getProvider($provider);
}
/**
* Get the registered service provider instances if any exist.
*
* @param \Illuminate\Support\ServiceProvider|string $provider
* @return array
* @static
*/
public static function getProviders($provider)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getProviders($provider);
}
/**
* Resolve a service provider instance from the class name.
*
* @param string $provider
* @return \Illuminate\Support\ServiceProvider
* @static
*/
public static function resolveProvider($provider)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->resolveProvider($provider);
}
/**
* Load and boot all of the remaining deferred providers.
*
* @return void
* @static
*/
public static function loadDeferredProviders()
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->loadDeferredProviders();
}
/**
* Load the provider for a deferred service.
*
* @param string $service
* @return void
* @static
*/
public static function loadDeferredProvider($service)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->loadDeferredProvider($service);
}
/**
* Register a deferred provider and service.
*
* @param string $provider
* @param string|null $service
* @return void
* @static
*/
public static function registerDeferredProvider($provider, $service = null)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->registerDeferredProvider($provider, $service);
}
/**
* Resolve the given type from the container.
*
* @template TClass of object
* @param string|class-string<TClass> $abstract
* @param array $parameters
* @return ($abstract is class-string<TClass> ? TClass : mixed)
* @throws \Illuminate\Contracts\Container\BindingResolutionException
* @static
*/
public static function make($abstract, $parameters = [])
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->make($abstract, $parameters);
}
/**
* Determine if the given abstract type has been bound.
*
* @param string $abstract
* @return bool
* @static
*/
public static function bound($abstract)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->bound($abstract);
}
/**
* Determine if the application has booted.
*
* @return bool
* @static
*/
public static function isBooted()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->isBooted();
}
/**
* Boot the application's service providers.
*
* @return void
* @static
*/
public static function boot()
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->boot();
}
/**
* Register a new boot listener.
*
* @param callable $callback
* @return void
* @static
*/
public static function booting($callback)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->booting($callback);
}
/**
* Register a new "booted" listener.
*
* @param callable $callback
* @return void
* @static
*/
public static function booted($callback)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->booted($callback);
}
/**
* {@inheritdoc}
*
* @return \Symfony\Component\HttpFoundation\Response
* @static
*/
public static function handle($request, $type = 1, $catch = true)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->handle($request, $type, $catch);
}
/**
* Handle the incoming HTTP request and send the response to the browser.
*
* @param \Illuminate\Http\Request $request
* @return void
* @static
*/
public static function handleRequest($request)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->handleRequest($request);
}
/**
* Handle the incoming Artisan command.
*
* @param \Symfony\Component\Console\Input\InputInterface $input
* @return int
* @static
*/
public static function handleCommand($input)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->handleCommand($input);
}
/**
* Determine if the framework's base configuration should be merged.
*
* @return bool
* @static
*/
public static function shouldMergeFrameworkConfiguration()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->shouldMergeFrameworkConfiguration();
}
/**
* Indicate that the framework's base configuration should not be merged.
*
* @return \Illuminate\Foundation\Application
* @static
*/
public static function dontMergeFrameworkConfiguration()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->dontMergeFrameworkConfiguration();
}
/**
* Determine if middleware has been disabled for the application.
*
* @return bool
* @static
*/
public static function shouldSkipMiddleware()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->shouldSkipMiddleware();
}
/**
* Get the path to the cached services.php file.
*
* @return string
* @static
*/
public static function getCachedServicesPath()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getCachedServicesPath();
}
/**
* Get the path to the cached packages.php file.
*
* @return string
* @static
*/
public static function getCachedPackagesPath()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getCachedPackagesPath();
}
/**
* Determine if the application configuration is cached.
*
* @return bool
* @static
*/
public static function configurationIsCached()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->configurationIsCached();
}
/**
* Get the path to the configuration cache file.
*
* @return string
* @static
*/
public static function getCachedConfigPath()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getCachedConfigPath();
}
/**
* Determine if the application routes are cached.
*
* @return bool
* @static
*/
public static function routesAreCached()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->routesAreCached();
}
/**
* Get the path to the routes cache file.
*
* @return string
* @static
*/
public static function getCachedRoutesPath()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getCachedRoutesPath();
}
/**
* Determine if the application events are cached.
*
* @return bool
* @static
*/
public static function eventsAreCached()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->eventsAreCached();
}
/**
* Get the path to the events cache file.
*
* @return string
* @static
*/
public static function getCachedEventsPath()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getCachedEventsPath();
}
/**
* Add new prefix to list of absolute path prefixes.
*
* @param string $prefix
* @return \Illuminate\Foundation\Application
* @static
*/
public static function addAbsoluteCachePathPrefix($prefix)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->addAbsoluteCachePathPrefix($prefix);
}
/**
* Get an instance of the maintenance mode manager implementation.
*
* @return \Illuminate\Contracts\Foundation\MaintenanceMode
* @static
*/
public static function maintenanceMode()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->maintenanceMode();
}
/**
* Determine if the application is currently down for maintenance.
*
* @return bool
* @static
*/
public static function isDownForMaintenance()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->isDownForMaintenance();
}
/**
* Throw an HttpException with the given data.
*
* @param int $code
* @param string $message
* @param array $headers
* @return never
* @throws \Symfony\Component\HttpKernel\Exception\HttpException
* @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
* @static
*/
public static function abort($code, $message = '', $headers = [])
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->abort($code, $message, $headers);
}
/**
* Register a terminating callback with the application.
*
* @param callable|string $callback
* @return \Illuminate\Foundation\Application
* @static
*/
public static function terminating($callback)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->terminating($callback);
}
/**
* Terminate the application.
*
* @return void
* @static
*/
public static function terminate()
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->terminate();
}
/**
* Get the service providers that have been loaded.
*
* @return array<string, bool>
* @static
*/
public static function getLoadedProviders()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getLoadedProviders();
}
/**
* Determine if the given service provider is loaded.
*
* @param string $provider
* @return bool
* @static
*/
public static function providerIsLoaded($provider)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->providerIsLoaded($provider);
}
/**
* Get the application's deferred services.
*
* @return array
* @static
*/
public static function getDeferredServices()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getDeferredServices();
}
/**
* Set the application's deferred services.
*
* @param array $services
* @return void
* @static
*/
public static function setDeferredServices($services)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->setDeferredServices($services);
}
/**
* Determine if the given service is a deferred service.
*
* @param string $service
* @return bool
* @static
*/
public static function isDeferredService($service)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->isDeferredService($service);
}
/**
* Add an array of services to the application's deferred services.
*
* @param array $services
* @return void
* @static
*/
public static function addDeferredServices($services)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->addDeferredServices($services);
}
/**
* Remove an array of services from the application's deferred services.
*
* @param array $services
* @return void
* @static
*/
public static function removeDeferredServices($services)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->removeDeferredServices($services);
}
/**
* Configure the real-time facade namespace.
*
* @param string $namespace
* @return void
* @static
*/
public static function provideFacades($namespace)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->provideFacades($namespace);
}
/**
* Get the current application locale.
*
* @return string
* @static
*/
public static function getLocale()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getLocale();
}
/**
* Get the current application locale.
*
* @return string
* @static
*/
public static function currentLocale()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->currentLocale();
}
/**
* Get the current application fallback locale.
*
* @return string
* @static
*/
public static function getFallbackLocale()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getFallbackLocale();
}
/**
* Set the current application locale.
*
* @param string $locale
* @return void
* @static
*/
public static function setLocale($locale)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->setLocale($locale);
}
/**
* Set the current application fallback locale.
*
* @param string $fallbackLocale
* @return void
* @static
*/
public static function setFallbackLocale($fallbackLocale)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->setFallbackLocale($fallbackLocale);
}
/**
* Determine if the application locale is the given locale.
*
* @param string $locale
* @return bool
* @static
*/
public static function isLocale($locale)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->isLocale($locale);
}
/**
* Register the core class aliases in the container.
*
* @return void
* @static
*/
public static function registerCoreContainerAliases()
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->registerCoreContainerAliases();
}
/**
* Flush the container of all bindings and resolved instances.
*
* @return void
* @static
*/
public static function flush()
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->flush();
}
/**
* Get the application namespace.
*
* @return string
* @throws \RuntimeException
* @static
*/
public static function getNamespace()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getNamespace();
}
/**
* Define a contextual binding.
*
* @param array|string $concrete
* @return \Illuminate\Contracts\Container\ContextualBindingBuilder
* @static
*/
public static function when($concrete)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->when($concrete);
}
/**
* Define a contextual binding based on an attribute.
*
* @param string $attribute
* @param \Closure $handler
* @return void
* @static
*/
public static function whenHasAttribute($attribute, $handler)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->whenHasAttribute($attribute, $handler);
}
/**
* Returns true if the container can return an entry for the given identifier.
*
* Returns false otherwise.
*
* `has($id)` returning true does not mean that `get($id)` will not throw an exception.
* It does however mean that `get($id)` will not throw a `NotFoundExceptionInterface`.
*
* @return bool
* @param string $id Identifier of the entry to look for.
* @return bool
* @static
*/
public static function has($id)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->has($id);
}
/**
* Determine if the given abstract type has been resolved.
*
* @param string $abstract
* @return bool
* @static
*/
public static function resolved($abstract)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->resolved($abstract);
}
/**
* Determine if a given type is shared.
*
* @param string $abstract
* @return bool
* @static
*/
public static function isShared($abstract)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->isShared($abstract);
}
/**
* Determine if a given string is an alias.
*
* @param string $name
* @return bool
* @static
*/
public static function isAlias($name)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->isAlias($name);
}
/**
* Register a binding with the container.
*
* @param \Closure|string $abstract
* @param \Closure|string|null $concrete
* @param bool $shared
* @return void
* @throws \TypeError
* @throws ReflectionException
* @static
*/
public static function bind($abstract, $concrete = null, $shared = false)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->bind($abstract, $concrete, $shared);
}
/**
* Determine if the container has a method binding.
*
* @param string $method
* @return bool
* @static
*/
public static function hasMethodBinding($method)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->hasMethodBinding($method);
}
/**
* Bind a callback to resolve with Container::call.
*
* @param array|string $method
* @param \Closure $callback
* @return void
* @static
*/
public static function bindMethod($method, $callback)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->bindMethod($method, $callback);
}
/**
* Get the method binding for the given method.
*
* @param string $method
* @param mixed $instance
* @return mixed
* @static
*/
public static function callMethodBinding($method, $instance)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->callMethodBinding($method, $instance);
}
/**
* Add a contextual binding to the container.
*
* @param string $concrete
* @param \Closure|string $abstract
* @param \Closure|string $implementation
* @return void
* @static
*/
public static function addContextualBinding($concrete, $abstract, $implementation)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->addContextualBinding($concrete, $abstract, $implementation);
}
/**
* Register a binding if it hasn't already been registered.
*
* @param \Closure|string $abstract
* @param \Closure|string|null $concrete
* @param bool $shared
* @return void
* @static
*/
public static function bindIf($abstract, $concrete = null, $shared = false)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->bindIf($abstract, $concrete, $shared);
}
/**
* Register a shared binding in the container.
*
* @param \Closure|string $abstract
* @param \Closure|string|null $concrete
* @return void
* @static
*/
public static function singleton($abstract, $concrete = null)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->singleton($abstract, $concrete);
}
/**
* Register a shared binding if it hasn't already been registered.
*
* @param \Closure|string $abstract
* @param \Closure|string|null $concrete
* @return void
* @static
*/
public static function singletonIf($abstract, $concrete = null)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->singletonIf($abstract, $concrete);
}
/**
* Register a scoped binding in the container.
*
* @param \Closure|string $abstract
* @param \Closure|string|null $concrete
* @return void
* @static
*/
public static function scoped($abstract, $concrete = null)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->scoped($abstract, $concrete);
}
/**
* Register a scoped binding if it hasn't already been registered.
*
* @param \Closure|string $abstract
* @param \Closure|string|null $concrete
* @return void
* @static
*/
public static function scopedIf($abstract, $concrete = null)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->scopedIf($abstract, $concrete);
}
/**
* "Extend" an abstract type in the container.
*
* @param string $abstract
* @param \Closure $closure
* @return void
* @throws \InvalidArgumentException
* @static
*/
public static function extend($abstract, $closure)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->extend($abstract, $closure);
}
/**
* Register an existing instance as shared in the container.
*
* @template TInstance of mixed
* @param string $abstract
* @param TInstance $instance
* @return TInstance
* @static
*/
public static function instance($abstract, $instance)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->instance($abstract, $instance);
}
/**
* Assign a set of tags to a given binding.
*
* @param array|string $abstracts
* @param mixed $tags
* @return void
* @static
*/
public static function tag($abstracts, $tags)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->tag($abstracts, $tags);
}
/**
* Resolve all of the bindings for a given tag.
*
* @param string $tag
* @return iterable
* @static
*/
public static function tagged($tag)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->tagged($tag);
}
/**
* Alias a type to a different name.
*
* @param string $abstract
* @param string $alias
* @return void
* @throws \LogicException
* @static
*/
public static function alias($abstract, $alias)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->alias($abstract, $alias);
}
/**
* Bind a new callback to an abstract's rebind event.
*
* @param string $abstract
* @param \Closure $callback
* @return mixed
* @static
*/
public static function rebinding($abstract, $callback)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->rebinding($abstract, $callback);
}
/**
* Refresh an instance on the given target and method.
*
* @param string $abstract
* @param mixed $target
* @param string $method
* @return mixed
* @static
*/
public static function refresh($abstract, $target, $method)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->refresh($abstract, $target, $method);
}
/**
* Wrap the given closure such that its dependencies will be injected when executed.
*
* @param \Closure $callback
* @param array $parameters
* @return \Closure
* @static
*/
public static function wrap($callback, $parameters = [])
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->wrap($callback, $parameters);
}
/**
* Call the given Closure / class@method and inject its dependencies.
*
* @param callable|string $callback
* @param array<string, mixed> $parameters
* @param string|null $defaultMethod
* @return mixed
* @throws \InvalidArgumentException
* @static
*/
public static function call($callback, $parameters = [], $defaultMethod = null)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->call($callback, $parameters, $defaultMethod);
}
/**
* Get a closure to resolve the given type from the container.
*
* @template TClass of object
* @param string|class-string<TClass> $abstract
* @return ($abstract is class-string<TClass> ? \Closure(): TClass : \Closure(): mixed)
* @static
*/
public static function factory($abstract)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->factory($abstract);
}
/**
* An alias function name for make().
*
* @template TClass of object
* @param string|class-string<TClass>|callable $abstract
* @param array $parameters
* @return ($abstract is class-string<TClass> ? TClass : mixed)
* @throws \Illuminate\Contracts\Container\BindingResolutionException
* @static
*/
public static function makeWith($abstract, $parameters = [])
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->makeWith($abstract, $parameters);
}
/**
* {@inheritdoc}
*
* @template TClass of object
* @param string|class-string<TClass> $id
* @return ($id is class-string<TClass> ? TClass : mixed)
* @static
*/
public static function get($id)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $i...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09541223,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Built-in Preview","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Chrome","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Firefox","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Safari","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Analyzing…","depth":4,"bounds":{"left":0.3879654,"top":0.19952115,"width":0.019946808,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"<?php\n/* @noinspection ALL */\n// @formatter:off\n// phpcs:ignoreFile\n\n/**\n * A helper file for Laravel, to provide autocomplete information to your IDE\n * Generated for Laravel 12.33.0.\n *\n * This file should not be included in your code, only analyzed by your IDE!\n *\n * @author Barry vd. Heuvel <barryvdh@gmail.com>\n * @see https://github.com/barryvdh/laravel-ide-helper\n */\nnamespace Illuminate\\Support\\Facades {\n /**\n * @see \\Illuminate\\Foundation\\Application\n */\n class App {\n /**\n * Begin configuring a new Laravel application instance.\n *\n * @param string|null $basePath\n * @return \\Illuminate\\Foundation\\Configuration\\ApplicationBuilder\n * @static\n */\n public static function configure($basePath = null)\n {\n return \\Illuminate\\Foundation\\Application::configure($basePath);\n }\n\n /**\n * Infer the application's base directory from the environment.\n *\n * @return string\n * @static\n */\n public static function inferBasePath()\n {\n return \\Illuminate\\Foundation\\Application::inferBasePath();\n }\n\n /**\n * Get the version number of the application.\n *\n * @return string\n * @static\n */\n public static function version()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->version();\n }\n\n /**\n * Run the given array of bootstrap classes.\n *\n * @param string[] $bootstrappers\n * @return void\n * @static\n */\n public static function bootstrapWith($bootstrappers)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->bootstrapWith($bootstrappers);\n }\n\n /**\n * Register a callback to run after loading the environment.\n *\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function afterLoadingEnvironment($callback)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->afterLoadingEnvironment($callback);\n }\n\n /**\n * Register a callback to run before a bootstrapper.\n *\n * @param string $bootstrapper\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function beforeBootstrapping($bootstrapper, $callback)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->beforeBootstrapping($bootstrapper, $callback);\n }\n\n /**\n * Register a callback to run after a bootstrapper.\n *\n * @param string $bootstrapper\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function afterBootstrapping($bootstrapper, $callback)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->afterBootstrapping($bootstrapper, $callback);\n }\n\n /**\n * Determine if the application has been bootstrapped before.\n *\n * @return bool\n * @static\n */\n public static function hasBeenBootstrapped()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->hasBeenBootstrapped();\n }\n\n /**\n * Set the base path for the application.\n *\n * @param string $basePath\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function setBasePath($basePath)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->setBasePath($basePath);\n }\n\n /**\n * Get the path to the application \"app\" directory.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function path($path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->path($path);\n }\n\n /**\n * Set the application directory.\n *\n * @param string $path\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function useAppPath($path)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->useAppPath($path);\n }\n\n /**\n * Get the base path of the Laravel installation.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function basePath($path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->basePath($path);\n }\n\n /**\n * Get the path to the bootstrap directory.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function bootstrapPath($path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->bootstrapPath($path);\n }\n\n /**\n * Get the path to the service provider list in the bootstrap directory.\n *\n * @return string\n * @static\n */\n public static function getBootstrapProvidersPath()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getBootstrapProvidersPath();\n }\n\n /**\n * Set the bootstrap file directory.\n *\n * @param string $path\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function useBootstrapPath($path)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->useBootstrapPath($path);\n }\n\n /**\n * Get the path to the application configuration files.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function configPath($path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->configPath($path);\n }\n\n /**\n * Set the configuration directory.\n *\n * @param string $path\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function useConfigPath($path)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->useConfigPath($path);\n }\n\n /**\n * Get the path to the database directory.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function databasePath($path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->databasePath($path);\n }\n\n /**\n * Set the database directory.\n *\n * @param string $path\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function useDatabasePath($path)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->useDatabasePath($path);\n }\n\n /**\n * Get the path to the language files.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function langPath($path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->langPath($path);\n }\n\n /**\n * Set the language file directory.\n *\n * @param string $path\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function useLangPath($path)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->useLangPath($path);\n }\n\n /**\n * Get the path to the public / web directory.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function publicPath($path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->publicPath($path);\n }\n\n /**\n * Set the public / web directory.\n *\n * @param string $path\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function usePublicPath($path)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->usePublicPath($path);\n }\n\n /**\n * Get the path to the storage directory.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function storagePath($path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->storagePath($path);\n }\n\n /**\n * Set the storage directory.\n *\n * @param string $path\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function useStoragePath($path)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->useStoragePath($path);\n }\n\n /**\n * Get the path to the resources directory.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function resourcePath($path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->resourcePath($path);\n }\n\n /**\n * Get the path to the views directory.\n * \n * This method returns the first configured path in the array of view paths.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function viewPath($path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->viewPath($path);\n }\n\n /**\n * Join the given paths together.\n *\n * @param string $basePath\n * @param string $path\n * @return string\n * @static\n */\n public static function joinPaths($basePath, $path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->joinPaths($basePath, $path);\n }\n\n /**\n * Get the path to the environment file directory.\n *\n * @return string\n * @static\n */\n public static function environmentPath()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->environmentPath();\n }\n\n /**\n * Set the directory for the environment file.\n *\n * @param string $path\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function useEnvironmentPath($path)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->useEnvironmentPath($path);\n }\n\n /**\n * Set the environment file to be loaded during bootstrapping.\n *\n * @param string $file\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function loadEnvironmentFrom($file)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->loadEnvironmentFrom($file);\n }\n\n /**\n * Get the environment file the application is using.\n *\n * @return string\n * @static\n */\n public static function environmentFile()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->environmentFile();\n }\n\n /**\n * Get the fully qualified path to the environment file.\n *\n * @return string\n * @static\n */\n public static function environmentFilePath()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->environmentFilePath();\n }\n\n /**\n * Get or check the current application environment.\n *\n * @param string|array $environments\n * @return string|bool\n * @static\n */\n public static function environment(...$environments)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->environment(...$environments);\n }\n\n /**\n * Determine if the application is in the local environment.\n *\n * @return bool\n * @static\n */\n public static function isLocal()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->isLocal();\n }\n\n /**\n * Determine if the application is in the production environment.\n *\n * @return bool\n * @static\n */\n public static function isProduction()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->isProduction();\n }\n\n /**\n * Detect the application's current environment.\n *\n * @param \\Closure $callback\n * @return string\n * @static\n */\n public static function detectEnvironment($callback)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->detectEnvironment($callback);\n }\n\n /**\n * Determine if the application is running in the console.\n *\n * @return bool\n * @static\n */\n public static function runningInConsole()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->runningInConsole();\n }\n\n /**\n * Determine if the application is running any of the given console commands.\n *\n * @param string|array $commands\n * @return bool\n * @static\n */\n public static function runningConsoleCommand(...$commands)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->runningConsoleCommand(...$commands);\n }\n\n /**\n * Determine if the application is running unit tests.\n *\n * @return bool\n * @static\n */\n public static function runningUnitTests()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->runningUnitTests();\n }\n\n /**\n * Determine if the application is running with debug mode enabled.\n *\n * @return bool\n * @static\n */\n public static function hasDebugModeEnabled()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->hasDebugModeEnabled();\n }\n\n /**\n * Register a new registered listener.\n *\n * @param callable $callback\n * @return void\n * @static\n */\n public static function registered($callback)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->registered($callback);\n }\n\n /**\n * Register all of the configured providers.\n *\n * @return void\n * @static\n */\n public static function registerConfiguredProviders()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->registerConfiguredProviders();\n }\n\n /**\n * Register a service provider with the application.\n *\n * @param \\Illuminate\\Support\\ServiceProvider|string $provider\n * @param bool $force\n * @return \\Illuminate\\Support\\ServiceProvider\n * @static\n */\n public static function register($provider, $force = false)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->register($provider, $force);\n }\n\n /**\n * Get the registered service provider instance if it exists.\n *\n * @param \\Illuminate\\Support\\ServiceProvider|string $provider\n * @return \\Illuminate\\Support\\ServiceProvider|null\n * @static\n */\n public static function getProvider($provider)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getProvider($provider);\n }\n\n /**\n * Get the registered service provider instances if any exist.\n *\n * @param \\Illuminate\\Support\\ServiceProvider|string $provider\n * @return array\n * @static\n */\n public static function getProviders($provider)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getProviders($provider);\n }\n\n /**\n * Resolve a service provider instance from the class name.\n *\n * @param string $provider\n * @return \\Illuminate\\Support\\ServiceProvider\n * @static\n */\n public static function resolveProvider($provider)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->resolveProvider($provider);\n }\n\n /**\n * Load and boot all of the remaining deferred providers.\n *\n * @return void\n * @static\n */\n public static function loadDeferredProviders()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->loadDeferredProviders();\n }\n\n /**\n * Load the provider for a deferred service.\n *\n * @param string $service\n * @return void\n * @static\n */\n public static function loadDeferredProvider($service)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->loadDeferredProvider($service);\n }\n\n /**\n * Register a deferred provider and service.\n *\n * @param string $provider\n * @param string|null $service\n * @return void\n * @static\n */\n public static function registerDeferredProvider($provider, $service = null)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->registerDeferredProvider($provider, $service);\n }\n\n /**\n * Resolve the given type from the container.\n *\n * @template TClass of object\n * @param string|class-string<TClass> $abstract\n * @param array $parameters\n * @return ($abstract is class-string<TClass> ? TClass : mixed)\n * @throws \\Illuminate\\Contracts\\Container\\BindingResolutionException\n * @static\n */\n public static function make($abstract, $parameters = [])\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->make($abstract, $parameters);\n }\n\n /**\n * Determine if the given abstract type has been bound.\n *\n * @param string $abstract\n * @return bool\n * @static\n */\n public static function bound($abstract)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->bound($abstract);\n }\n\n /**\n * Determine if the application has booted.\n *\n * @return bool\n * @static\n */\n public static function isBooted()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->isBooted();\n }\n\n /**\n * Boot the application's service providers.\n *\n * @return void\n * @static\n */\n public static function boot()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->boot();\n }\n\n /**\n * Register a new boot listener.\n *\n * @param callable $callback\n * @return void\n * @static\n */\n public static function booting($callback)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->booting($callback);\n }\n\n /**\n * Register a new \"booted\" listener.\n *\n * @param callable $callback\n * @return void\n * @static\n */\n public static function booted($callback)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->booted($callback);\n }\n\n /**\n * {@inheritdoc}\n *\n * @return \\Symfony\\Component\\HttpFoundation\\Response\n * @static\n */\n public static function handle($request, $type = 1, $catch = true)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->handle($request, $type, $catch);\n }\n\n /**\n * Handle the incoming HTTP request and send the response to the browser.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @return void\n * @static\n */\n public static function handleRequest($request)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->handleRequest($request);\n }\n\n /**\n * Handle the incoming Artisan command.\n *\n * @param \\Symfony\\Component\\Console\\Input\\InputInterface $input\n * @return int\n * @static\n */\n public static function handleCommand($input)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->handleCommand($input);\n }\n\n /**\n * Determine if the framework's base configuration should be merged.\n *\n * @return bool\n * @static\n */\n public static function shouldMergeFrameworkConfiguration()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->shouldMergeFrameworkConfiguration();\n }\n\n /**\n * Indicate that the framework's base configuration should not be merged.\n *\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function dontMergeFrameworkConfiguration()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->dontMergeFrameworkConfiguration();\n }\n\n /**\n * Determine if middleware has been disabled for the application.\n *\n * @return bool\n * @static\n */\n public static function shouldSkipMiddleware()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->shouldSkipMiddleware();\n }\n\n /**\n * Get the path to the cached services.php file.\n *\n * @return string\n * @static\n */\n public static function getCachedServicesPath()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getCachedServicesPath();\n }\n\n /**\n * Get the path to the cached packages.php file.\n *\n * @return string\n * @static\n */\n public static function getCachedPackagesPath()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getCachedPackagesPath();\n }\n\n /**\n * Determine if the application configuration is cached.\n *\n * @return bool\n * @static\n */\n public static function configurationIsCached()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->configurationIsCached();\n }\n\n /**\n * Get the path to the configuration cache file.\n *\n * @return string\n * @static\n */\n public static function getCachedConfigPath()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getCachedConfigPath();\n }\n\n /**\n * Determine if the application routes are cached.\n *\n * @return bool\n * @static\n */\n public static function routesAreCached()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->routesAreCached();\n }\n\n /**\n * Get the path to the routes cache file.\n *\n * @return string\n * @static\n */\n public static function getCachedRoutesPath()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getCachedRoutesPath();\n }\n\n /**\n * Determine if the application events are cached.\n *\n * @return bool\n * @static\n */\n public static function eventsAreCached()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->eventsAreCached();\n }\n\n /**\n * Get the path to the events cache file.\n *\n * @return string\n * @static\n */\n public static function getCachedEventsPath()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getCachedEventsPath();\n }\n\n /**\n * Add new prefix to list of absolute path prefixes.\n *\n * @param string $prefix\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function addAbsoluteCachePathPrefix($prefix)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->addAbsoluteCachePathPrefix($prefix);\n }\n\n /**\n * Get an instance of the maintenance mode manager implementation.\n *\n * @return \\Illuminate\\Contracts\\Foundation\\MaintenanceMode\n * @static\n */\n public static function maintenanceMode()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->maintenanceMode();\n }\n\n /**\n * Determine if the application is currently down for maintenance.\n *\n * @return bool\n * @static\n */\n public static function isDownForMaintenance()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->isDownForMaintenance();\n }\n\n /**\n * Throw an HttpException with the given data.\n *\n * @param int $code\n * @param string $message\n * @param array $headers\n * @return never\n * @throws \\Symfony\\Component\\HttpKernel\\Exception\\HttpException\n * @throws \\Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException\n * @static\n */\n public static function abort($code, $message = '', $headers = [])\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->abort($code, $message, $headers);\n }\n\n /**\n * Register a terminating callback with the application.\n *\n * @param callable|string $callback\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function terminating($callback)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->terminating($callback);\n }\n\n /**\n * Terminate the application.\n *\n * @return void\n * @static\n */\n public static function terminate()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->terminate();\n }\n\n /**\n * Get the service providers that have been loaded.\n *\n * @return array<string, bool>\n * @static\n */\n public static function getLoadedProviders()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getLoadedProviders();\n }\n\n /**\n * Determine if the given service provider is loaded.\n *\n * @param string $provider\n * @return bool\n * @static\n */\n public static function providerIsLoaded($provider)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->providerIsLoaded($provider);\n }\n\n /**\n * Get the application's deferred services.\n *\n * @return array\n * @static\n */\n public static function getDeferredServices()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getDeferredServices();\n }\n\n /**\n * Set the application's deferred services.\n *\n * @param array $services\n * @return void\n * @static\n */\n public static function setDeferredServices($services)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->setDeferredServices($services);\n }\n\n /**\n * Determine if the given service is a deferred service.\n *\n * @param string $service\n * @return bool\n * @static\n */\n public static function isDeferredService($service)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->isDeferredService($service);\n }\n\n /**\n * Add an array of services to the application's deferred services.\n *\n * @param array $services\n * @return void\n * @static\n */\n public static function addDeferredServices($services)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->addDeferredServices($services);\n }\n\n /**\n * Remove an array of services from the application's deferred services.\n *\n * @param array $services\n * @return void\n * @static\n */\n public static function removeDeferredServices($services)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->removeDeferredServices($services);\n }\n\n /**\n * Configure the real-time facade namespace.\n *\n * @param string $namespace\n * @return void\n * @static\n */\n public static function provideFacades($namespace)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->provideFacades($namespace);\n }\n\n /**\n * Get the current application locale.\n *\n * @return string\n * @static\n */\n public static function getLocale()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getLocale();\n }\n\n /**\n * Get the current application locale.\n *\n * @return string\n * @static\n */\n public static function currentLocale()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->currentLocale();\n }\n\n /**\n * Get the current application fallback locale.\n *\n * @return string\n * @static\n */\n public static function getFallbackLocale()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getFallbackLocale();\n }\n\n /**\n * Set the current application locale.\n *\n * @param string $locale\n * @return void\n * @static\n */\n public static function setLocale($locale)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->setLocale($locale);\n }\n\n /**\n * Set the current application fallback locale.\n *\n * @param string $fallbackLocale\n * @return void\n * @static\n */\n public static function setFallbackLocale($fallbackLocale)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->setFallbackLocale($fallbackLocale);\n }\n\n /**\n * Determine if the application locale is the given locale.\n *\n * @param string $locale\n * @return bool\n * @static\n */\n public static function isLocale($locale)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->isLocale($locale);\n }\n\n /**\n * Register the core class aliases in the container.\n *\n * @return void\n * @static\n */\n public static function registerCoreContainerAliases()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->registerCoreContainerAliases();\n }\n\n /**\n * Flush the container of all bindings and resolved instances.\n *\n * @return void\n * @static\n */\n public static function flush()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->flush();\n }\n\n /**\n * Get the application namespace.\n *\n * @return string\n * @throws \\RuntimeException\n * @static\n */\n public static function getNamespace()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getNamespace();\n }\n\n /**\n * Define a contextual binding.\n *\n * @param array|string $concrete\n * @return \\Illuminate\\Contracts\\Container\\ContextualBindingBuilder\n * @static\n */\n public static function when($concrete)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->when($concrete);\n }\n\n /**\n * Define a contextual binding based on an attribute.\n *\n * @param string $attribute\n * @param \\Closure $handler\n * @return void\n * @static\n */\n public static function whenHasAttribute($attribute, $handler)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->whenHasAttribute($attribute, $handler);\n }\n\n /**\n * Returns true if the container can return an entry for the given identifier.\n * \n * Returns false otherwise.\n * \n * `has($id)` returning true does not mean that `get($id)` will not throw an exception.\n * It does however mean that `get($id)` will not throw a `NotFoundExceptionInterface`.\n *\n * @return bool\n * @param string $id Identifier of the entry to look for.\n * @return bool\n * @static\n */\n public static function has($id)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->has($id);\n }\n\n /**\n * Determine if the given abstract type has been resolved.\n *\n * @param string $abstract\n * @return bool\n * @static\n */\n public static function resolved($abstract)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->resolved($abstract);\n }\n\n /**\n * Determine if a given type is shared.\n *\n * @param string $abstract\n * @return bool\n * @static\n */\n public static function isShared($abstract)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->isShared($abstract);\n }\n\n /**\n * Determine if a given string is an alias.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function isAlias($name)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->isAlias($name);\n }\n\n /**\n * Register a binding with the container.\n *\n * @param \\Closure|string $abstract\n * @param \\Closure|string|null $concrete\n * @param bool $shared\n * @return void\n * @throws \\TypeError\n * @throws ReflectionException\n * @static\n */\n public static function bind($abstract, $concrete = null, $shared = false)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->bind($abstract, $concrete, $shared);\n }\n\n /**\n * Determine if the container has a method binding.\n *\n * @param string $method\n * @return bool\n * @static\n */\n public static function hasMethodBinding($method)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->hasMethodBinding($method);\n }\n\n /**\n * Bind a callback to resolve with Container::call.\n *\n * @param array|string $method\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function bindMethod($method, $callback)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->bindMethod($method, $callback);\n }\n\n /**\n * Get the method binding for the given method.\n *\n * @param string $method\n * @param mixed $instance\n * @return mixed\n * @static\n */\n public static function callMethodBinding($method, $instance)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->callMethodBinding($method, $instance);\n }\n\n /**\n * Add a contextual binding to the container.\n *\n * @param string $concrete\n * @param \\Closure|string $abstract\n * @param \\Closure|string $implementation\n * @return void\n * @static\n */\n public static function addContextualBinding($concrete, $abstract, $implementation)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->addContextualBinding($concrete, $abstract, $implementation);\n }\n\n /**\n * Register a binding if it hasn't already been registered.\n *\n * @param \\Closure|string $abstract\n * @param \\Closure|string|null $concrete\n * @param bool $shared\n * @return void\n * @static\n */\n public static function bindIf($abstract, $concrete = null, $shared = false)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->bindIf($abstract, $concrete, $shared);\n }\n\n /**\n * Register a shared binding in the container.\n *\n * @param \\Closure|string $abstract\n * @param \\Closure|string|null $concrete\n * @return void\n * @static\n */\n public static function singleton($abstract, $concrete = null)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->singleton($abstract, $concrete);\n }\n\n /**\n * Register a shared binding if it hasn't already been registered.\n *\n * @param \\Closure|string $abstract\n * @param \\Closure|string|null $concrete\n * @return void\n * @static\n */\n public static function singletonIf($abstract, $concrete = null)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->singletonIf($abstract, $concrete);\n }\n\n /**\n * Register a scoped binding in the container.\n *\n * @param \\Closure|string $abstract\n * @param \\Closure|string|null $concrete\n * @return void\n * @static\n */\n public static function scoped($abstract, $concrete = null)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->scoped($abstract, $concrete);\n }\n\n /**\n * Register a scoped binding if it hasn't already been registered.\n *\n * @param \\Closure|string $abstract\n * @param \\Closure|string|null $concrete\n * @return void\n * @static\n */\n public static function scopedIf($abstract, $concrete = null)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->scopedIf($abstract, $concrete);\n }\n\n /**\n * \"Extend\" an abstract type in the container.\n *\n * @param string $abstract\n * @param \\Closure $closure\n * @return void\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function extend($abstract, $closure)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->extend($abstract, $closure);\n }\n\n /**\n * Register an existing instance as shared in the container.\n *\n * @template TInstance of mixed\n * @param string $abstract\n * @param TInstance $instance\n * @return TInstance\n * @static\n */\n public static function instance($abstract, $instance)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->instance($abstract, $instance);\n }\n\n /**\n * Assign a set of tags to a given binding.\n *\n * @param array|string $abstracts\n * @param mixed $tags\n * @return void\n * @static\n */\n public static function tag($abstracts, $tags)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->tag($abstracts, $tags);\n }\n\n /**\n * Resolve all of the bindings for a given tag.\n *\n * @param string $tag\n * @return iterable\n * @static\n */\n public static function tagged($tag)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->tagged($tag);\n }\n\n /**\n * Alias a type to a different name.\n *\n * @param string $abstract\n * @param string $alias\n * @return void\n * @throws \\LogicException\n * @static\n */\n public static function alias($abstract, $alias)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->alias($abstract, $alias);\n }\n\n /**\n * Bind a new callback to an abstract's rebind event.\n *\n * @param string $abstract\n * @param \\Closure $callback\n * @return mixed\n * @static\n */\n public static function rebinding($abstract, $callback)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->rebinding($abstract, $callback);\n }\n\n /**\n * Refresh an instance on the given target and method.\n *\n * @param string $abstract\n * @param mixed $target\n * @param string $method\n * @return mixed\n * @static\n */\n public static function refresh($abstract, $target, $method)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->refresh($abstract, $target, $method);\n }\n\n /**\n * Wrap the given closure such that its dependencies will be injected when executed.\n *\n * @param \\Closure $callback\n * @param array $parameters\n * @return \\Closure\n * @static\n */\n public static function wrap($callback, $parameters = [])\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->wrap($callback, $parameters);\n }\n\n /**\n * Call the given Closure / class@method and inject its dependencies.\n *\n * @param callable|string $callback\n * @param array<string, mixed> $parameters\n * @param string|null $defaultMethod\n * @return mixed\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function call($callback, $parameters = [], $defaultMethod = null)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->call($callback, $parameters, $defaultMethod);\n }\n\n /**\n * Get a closure to resolve the given type from the container.\n *\n * @template TClass of object\n * @param string|class-string<TClass> $abstract\n * @return ($abstract is class-string<TClass> ? \\Closure(): TClass : \\Closure(): mixed)\n * @static\n */\n public static function factory($abstract)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->factory($abstract);\n }\n\n /**\n * An alias function name for make().\n *\n * @template TClass of object\n * @param string|class-string<TClass>|callable $abstract\n * @param array $parameters\n * @return ($abstract is class-string<TClass> ? TClass : mixed)\n * @throws \\Illuminate\\Contracts\\Container\\BindingResolutionException\n * @static\n */\n public static function makeWith($abstract, $parameters = [])\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->makeWith($abstract, $parameters);\n }\n\n /**\n * {@inheritdoc}\n *\n * @template TClass of object\n * @param string|class-string<TClass> $id\n * @return ($id is class-string<TClass> ? TClass : mixed)\n * @static\n */\n public static function get($id)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->get($id);\n }\n\n /**\n * Instantiate a concrete instance of the given type.\n *\n * @template TClass of object\n * @param \\Closure(static, array): TClass|class-string<TClass> $concrete\n * @return TClass\n * @throws \\Illuminate\\Contracts\\Container\\BindingResolutionException\n * @throws \\Illuminate\\Contracts\\Container\\CircularDependencyException\n * @static\n */\n public static function build($concrete)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->build($concrete);\n }\n\n /**\n * Resolve a dependency based on an attribute.\n *\n * @param \\ReflectionAttribute $attribute\n * @return mixed\n * @static\n */\n public static function resolveFromAttribute($attribute)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->resolveFromAttribute($attribute);\n }\n\n /**\n * Register a new before resolving callback for all types.\n *\n * @param \\Closure|string $abstract\n * @param \\Closure|null $callback\n * @return void\n * @static\n */\n public static function beforeResolving($abstract, $callback = null)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->beforeResolving($abstract, $callback);\n }\n\n /**\n * Register a new resolving callback.\n *\n * @param \\Closure|string $abstract\n * @param \\Closure|null $callback\n * @return void\n * @static\n */\n public static function resolving($abstract, $callback = null)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->resolving($abstract, $callback);\n }\n\n /**\n * Register a new after resolving callback for all types.\n *\n * @param \\Closure|string $abstract\n * @param \\Closure|null $callback\n * @return void\n * @static\n */\n public static function afterResolving($abstract, $callback = null)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->afterResolving($abstract, $callback);\n }\n\n /**\n * Register a new after resolving attribute callback for all types.\n *\n * @param string $attribute\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function afterResolvingAttribute($attribute, $callback)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->afterResolvingAttribute($attribute, $callback);\n }\n\n /**\n * Fire all of the after resolving attribute callbacks.\n *\n * @param \\ReflectionAttribute[] $attributes\n * @param mixed $object\n * @return void\n * @static\n */\n public static function fireAfterResolvingAttributeCallbacks($attributes, $object)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->fireAfterResolvingAttributeCallbacks($attributes, $object);\n }\n\n /**\n * Get the name of the binding the container is currently resolving.\n *\n * @return class-string|string|null\n * @static\n */\n public static function currentlyResolving()\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->currentlyResolving();\n }\n\n /**\n * Get the container's bindings.\n *\n * @return array\n * @static\n */\n public static function getBindings()\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getBindings();\n }\n\n /**\n * Get the alias for an abstract if available.\n *\n * @param string $abstract\n * @return string\n * @static\n */\n public static function getAlias($abstract)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getAlias($abstract);\n }\n\n /**\n * Remove all of the extender callbacks for a given type.\n *\n * @param string $abstract\n * @return void\n * @static\n */\n public static function forgetExtenders($abstract)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->forgetExtenders($abstract);\n }\n\n /**\n * Remove a resolved instance from the instance cache.\n *\n * @param string $abstract\n * @return void\n * @static\n */\n public static function forgetInstance($abstract)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->forgetInstance($abstract);\n }\n\n /**\n * Clear all of the instances from the container.\n *\n * @return void\n * @static\n */\n public static function forgetInstances()\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->forgetInstances();\n }\n\n /**\n * Clear all of the scoped instances from the container.\n *\n * @return void\n * @static\n */\n public static function forgetScopedInstances()\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->forgetScopedInstances();\n }\n\n /**\n * Set the callback which determines the current container environment.\n *\n * @param (callable(array<int, string>|string): bool|string)|null $callback\n * @return void\n * @static\n */\n public static function resolveEnvironmentUsing($callback)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->resolveEnvironmentUsing($callback);\n }\n\n /**\n * Determine the environment for the container.\n *\n * @param array<int, string>|string $environments\n * @return bool\n * @static\n */\n public static function currentEnvironmentIs($environments)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->currentEnvironmentIs($environments);\n }\n\n /**\n * Get the globally available instance of the container.\n *\n * @return static\n * @static\n */\n public static function getInstance()\n {\n //Method inherited from \\Illuminate\\Container\\Container \n return \\Illuminate\\Foundation\\Application::getInstance();\n }\n\n /**\n * Set the shared instance of the container.\n *\n * @param \\Illuminate\\Contracts\\Container\\Container|null $container\n * @return \\Illuminate\\Contracts\\Container\\Container|static\n * @static\n */\n public static function setInstance($container = null)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n return \\Illuminate\\Foundation\\Application::setInstance($container);\n }\n\n /**\n * Determine if a given offset exists.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function offsetExists($key)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->offsetExists($key);\n }\n\n /**\n * Get the value at a given offset.\n *\n * @param string $key\n * @return mixed\n * @static\n */\n public static function offsetGet($key)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->offsetGet($key);\n }\n\n /**\n * Set the value at a given offset.\n *\n * @param string $key\n * @param mixed $value\n * @return void\n * @static\n */\n public static function offsetSet($key, $value)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->offsetSet($key, $value);\n }\n\n /**\n * Unset the value at a given offset.\n *\n * @param string $key\n * @return void\n * @static\n */\n public static function offsetUnset($key)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->offsetUnset($key);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Foundation\\Application::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Foundation\\Application::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Foundation\\Application::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Foundation\\Application::flushMacros();\n }\n\n }\n /**\n * @see \\Illuminate\\Foundation\\Console\\Kernel\n */\n class Artisan {\n /**\n * Re-route the Symfony command events to their Laravel counterparts.\n *\n * @internal\n * @return \\Jiminny\\Console\\Kernel\n * @static\n */\n public static function rerouteSymfonyCommandEvents()\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->rerouteSymfonyCommandEvents();\n }\n\n /**\n * Run the console application.\n *\n * @param \\Symfony\\Component\\Console\\Input\\InputInterface $input\n * @param \\Symfony\\Component\\Console\\Output\\OutputInterface|null $output\n * @return int\n * @static\n */\n public static function handle($input, $output = null)\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->handle($input, $output);\n }\n\n /**\n * Terminate the application.\n *\n * @param \\Symfony\\Component\\Console\\Input\\InputInterface $input\n * @param int $status\n * @return void\n * @static\n */\n public static function terminate($input, $status)\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n $instance->terminate($input, $status);\n }\n\n /**\n * Register a callback to be invoked when the command lifecycle duration exceeds a given amount of time.\n *\n * @param \\DateTimeInterface|\\Carbon\\CarbonInterval|float|int $threshold\n * @param callable $handler\n * @return void\n * @static\n */\n public static function whenCommandLifecycleIsLongerThan($threshold, $handler)\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n $instance->whenCommandLifecycleIsLongerThan($threshold, $handler);\n }\n\n /**\n * When the command being handled started.\n *\n * @return \\Illuminate\\Support\\Carbon|null\n * @static\n */\n public static function commandStartedAt()\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->commandStartedAt();\n }\n\n /**\n * Resolve a console schedule instance.\n *\n * @return \\Illuminate\\Console\\Scheduling\\Schedule\n * @static\n */\n public static function resolveConsoleSchedule()\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->resolveConsoleSchedule();\n }\n\n /**\n * Register a Closure based command with the application.\n *\n * @param string $signature\n * @param \\Closure $callback\n * @return \\Illuminate\\Foundation\\Console\\ClosureCommand\n * @static\n */\n public static function command($signature, $callback)\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->command($signature, $callback);\n }\n\n /**\n * Register the given command with the console application.\n *\n * @param \\Symfony\\Component\\Console\\Command\\Command $command\n * @return void\n * @static\n */\n public static function registerCommand($command)\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n $instance->registerCommand($command);\n }\n\n /**\n * Run an Artisan console command by name.\n *\n * @param \\Symfony\\Component\\Console\\Command\\Command|string $command\n * @param array $parameters\n * @param \\Symfony\\Component\\Console\\Output\\OutputInterface|null $outputBuffer\n * @return int\n * @throws \\Symfony\\Component\\Console\\Exception\\CommandNotFoundException\n * @static\n */\n public static function call($command, $parameters = [], $outputBuffer = null)\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->call($command, $parameters, $outputBuffer);\n }\n\n /**\n * Queue the given console command.\n *\n * @param string $command\n * @param array $parameters\n * @return \\Illuminate\\Foundation\\Bus\\PendingDispatch\n * @static\n */\n public static function queue($command, $parameters = [])\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->queue($command, $parameters);\n }\n\n /**\n * Get all of the commands registered with the console.\n *\n * @return array\n * @static\n */\n public static function all()\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->all();\n }\n\n /**\n * Get the output for the last run command.\n *\n * @return string\n * @static\n */\n public static function output()\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->output();\n }\n\n /**\n * Bootstrap the application for artisan commands.\n *\n * @return void\n * @static\n */\n public static function bootstrap()\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n $instance->bootstrap();\n }\n\n /**\n * Bootstrap the application without booting service providers.\n *\n * @return void\n * @static\n */\n public static function bootstrapWithoutBootingProviders()\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n $instance->bootstrapWithoutBootingProviders();\n }\n\n /**\n * Set the Artisan application instance.\n *\n * @param \\Illuminate\\Console\\Application|null $artisan\n * @return void\n * @static\n */\n public static function setArtisan($artisan)\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n $instance->setArtisan($artisan);\n }\n\n /**\n * Set the Artisan commands provided by the application.\n *\n * @param array $commands\n * @return \\Jiminny\\Console\\Kernel\n * @static\n */\n public static function addCommands($commands)\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->addCommands($commands);\n }\n\n /**\n * Set the paths that should have their Artisan commands automatically discovered.\n *\n * @param array $paths\n * @return \\Jiminny\\Console\\Kernel\n * @static\n */\n public static function addCommandPaths($paths)\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->addCommandPaths($paths);\n }\n\n /**\n * Set the paths that should have their Artisan \"routes\" automatically discovered.\n *\n * @param array $paths\n * @return \\Jiminny\\Console\\Kernel\n * @static\n */\n public static function addCommandRoutePaths($paths)\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->addCommandRoutePaths($paths);\n }\n\n /**\n * Confirm before proceeding with the action.\n * \n * This method only asks for confirmation in production.\n *\n * @param string $warning\n * @param \\Closure|bool|null $callback\n * @return bool\n * @static\n */\n public static function confirmToProceed($warning = 'Application In Production', $callback = null)\n {\n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->confirmToProceed($warning, $callback);\n }\n\n }\n /**\n * @see \\Illuminate\\Auth\\AuthManager\n * @see \\Illuminate\\Auth\\SessionGuard\n */\n class Auth {\n /**\n * Attempt to get the guard from the local cache.\n *\n * @param string|null $name\n * @return \\Illuminate\\Contracts\\Auth\\Guard|\\Illuminate\\Contracts\\Auth\\StatefulGuard\n * @static\n */\n public static function guard($name = null)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->guard($name);\n }\n\n /**\n * Create a session based authentication guard.\n *\n * @param string $name\n * @param array $config\n * @return \\Illuminate\\Auth\\SessionGuard\n * @static\n */\n public static function createSessionDriver($name, $config)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->createSessionDriver($name, $config);\n }\n\n /**\n * Create a token based authentication guard.\n *\n * @param string $name\n * @param array $config\n * @return \\Illuminate\\Auth\\TokenGuard\n * @static\n */\n public static function createTokenDriver($name, $config)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->createTokenDriver($name, $config);\n }\n\n /**\n * Get the default authentication driver name.\n *\n * @return string\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Set the default guard driver the factory should serve.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function shouldUse($name)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n $instance->shouldUse($name);\n }\n\n /**\n * Set the default authentication driver name.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultDriver($name)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n $instance->setDefaultDriver($name);\n }\n\n /**\n * Register a new callback based request guard.\n *\n * @param string $driver\n * @param callable $callback\n * @return \\Illuminate\\Auth\\AuthManager\n * @static\n */\n public static function viaRequest($driver, $callback)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->viaRequest($driver, $callback);\n }\n\n /**\n * Get the user resolver callback.\n *\n * @return \\Closure\n * @static\n */\n public static function userResolver()\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->userResolver();\n }\n\n /**\n * Set the callback to be used to resolve users.\n *\n * @param \\Closure $userResolver\n * @return \\Illuminate\\Auth\\AuthManager\n * @static\n */\n public static function resolveUsersUsing($userResolver)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->resolveUsersUsing($userResolver);\n }\n\n /**\n * Register a custom driver creator Closure.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @return \\Illuminate\\Auth\\AuthManager\n * @static\n */\n public static function extend($driver, $callback)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->extend($driver, $callback);\n }\n\n /**\n * Register a custom provider creator Closure.\n *\n * @param string $name\n * @param \\Closure $callback\n * @return \\Illuminate\\Auth\\AuthManager\n * @static\n */\n public static function provider($name, $callback)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->provider($name, $callback);\n }\n\n /**\n * Determines if any guards have already been resolved.\n *\n * @return bool\n * @static\n */\n public static function hasResolvedGuards()\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->hasResolvedGuards();\n }\n\n /**\n * Forget all of the resolved guard instances.\n *\n * @return \\Illuminate\\Auth\\AuthManager\n * @static\n */\n public static function forgetGuards()\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->forgetGuards();\n }\n\n /**\n * Set the application instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Foundation\\Application $app\n * @return \\Illuminate\\Auth\\AuthManager\n * @static\n */\n public static function setApplication($app)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->setApplication($app);\n }\n\n /**\n * Create the user provider implementation for the driver.\n *\n * @param string|null $provider\n * @return \\Illuminate\\Contracts\\Auth\\UserProvider|null\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function createUserProvider($provider = null)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->createUserProvider($provider);\n }\n\n /**\n * Get the default user provider name.\n *\n * @return string\n * @static\n */\n public static function getDefaultUserProvider()\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->getDefaultUserProvider();\n }\n\n /**\n * Get the currently authenticated user.\n *\n * @return \\Jiminny\\Models\\User|null\n * @static\n */\n public static function user()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->user();\n }\n\n /**\n * Get the ID for the currently authenticated user.\n *\n * @return int|string|null\n * @static\n */\n public static function id()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->id();\n }\n\n /**\n * Log a user into the application without sessions or cookies.\n *\n * @param array $credentials\n * @return bool\n * @static\n */\n public static function once($credentials = [])\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->once($credentials);\n }\n\n /**\n * Log the given user ID into the application without sessions or cookies.\n *\n * @param mixed $id\n * @return \\Jiminny\\Models\\User|false\n * @static\n */\n public static function onceUsingId($id)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->onceUsingId($id);\n }\n\n /**\n * Validate a user's credentials.\n *\n * @param array $credentials\n * @return bool\n * @static\n */\n public static function validate($credentials = [])\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->validate($credentials);\n }\n\n /**\n * Attempt to authenticate using HTTP Basic Auth.\n *\n * @param string $field\n * @param array $extraConditions\n * @return \\Symfony\\Component\\HttpFoundation\\Response|null\n * @throws \\Symfony\\Component\\HttpKernel\\Exception\\UnauthorizedHttpException\n * @static\n */\n public static function basic($field = 'email', $extraConditions = [])\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->basic($field, $extraConditions);\n }\n\n /**\n * Perform a stateless HTTP Basic login attempt.\n *\n * @param string $field\n * @param array $extraConditions\n * @return \\Symfony\\Component\\HttpFoundation\\Response|null\n * @throws \\Symfony\\Component\\HttpKernel\\Exception\\UnauthorizedHttpException\n * @static\n */\n public static function onceBasic($field = 'email', $extraConditions = [])\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->onceBasic($field, $extraConditions);\n }\n\n /**\n * Attempt to authenticate a user using the given credentials.\n *\n * @param array $credentials\n * @param bool $remember\n * @return bool\n * @static\n */\n public static function attempt($credentials = [], $remember = false)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->attempt($credentials, $remember);\n }\n\n /**\n * Attempt to authenticate a user with credentials and additional callbacks.\n *\n * @param array $credentials\n * @param array|callable|null $callbacks\n * @param bool $remember\n * @return bool\n * @static\n */\n public static function attemptWhen($credentials = [], $callbacks = null, $remember = false)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->attemptWhen($credentials, $callbacks, $remember);\n }\n\n /**\n * Log the given user ID into the application.\n *\n * @param mixed $id\n * @param bool $remember\n * @return \\Jiminny\\Models\\User|false\n * @static\n */\n public static function loginUsingId($id, $remember = false)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->loginUsingId($id, $remember);\n }\n\n /**\n * Log a user into the application.\n *\n * @param \\Illuminate\\Contracts\\Auth\\Authenticatable $user\n * @param bool $remember\n * @return void\n * @static\n */\n public static function login($user, $remember = false)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n $instance->login($user, $remember);\n }\n\n /**\n * Log the user out of the application.\n *\n * @return void\n * @static\n */\n public static function logout()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n $instance->logout();\n }\n\n /**\n * Log the user out of the application on their current device only.\n * \n * This method does not cycle the \"remember\" token.\n *\n * @return void\n * @static\n */\n public static function logoutCurrentDevice()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n $instance->logoutCurrentDevice();\n }\n\n /**\n * Invalidate other sessions for the current user.\n * \n * The application must be using the AuthenticateSession middleware.\n *\n * @param string $password\n * @return \\Jiminny\\Models\\User|null\n * @throws \\Illuminate\\Auth\\AuthenticationException\n * @static\n */\n public static function logoutOtherDevices($password)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->logoutOtherDevices($password);\n }\n\n /**\n * Register an authentication attempt event listener.\n *\n * @param mixed $callback\n * @return void\n * @static\n */\n public static function attempting($callback)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n $instance->attempting($callback);\n }\n\n /**\n * Get the last user we attempted to authenticate.\n *\n * @return \\Jiminny\\Models\\User\n * @static\n */\n public static function getLastAttempted()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->getLastAttempted();\n }\n\n /**\n * Get a unique identifier for the auth session value.\n *\n * @return string\n * @static\n */\n public static function getName()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->getName();\n }\n\n /**\n * Get the name of the cookie used to store the \"recaller\".\n *\n * @return string\n * @static\n */\n public static function getRecallerName()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->getRecallerName();\n }\n\n /**\n * Determine if the user was authenticated via \"remember me\" cookie.\n *\n * @return bool\n * @static\n */\n public static function viaRemember()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->viaRemember();\n }\n\n /**\n * Set the number of minutes the remember me cookie should be valid for.\n *\n * @param int $minutes\n * @return \\Illuminate\\Auth\\SessionGuard\n * @static\n */\n public static function setRememberDuration($minutes)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->setRememberDuration($minutes);\n }\n\n /**\n * Get the cookie creator instance used by the guard.\n *\n * @return \\Illuminate\\Contracts\\Cookie\\QueueingFactory\n * @throws \\RuntimeException\n * @static\n */\n public static function getCookieJar()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->getCookieJar();\n }\n\n /**\n * Set the cookie creator instance used by the guard.\n *\n * @param \\Illuminate\\Contracts\\Cookie\\QueueingFactory $cookie\n * @return void\n * @static\n */\n public static function setCookieJar($cookie)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n $instance->setCookieJar($cookie);\n }\n\n /**\n * Get the event dispatcher instance.\n *\n * @return \\Illuminate\\Contracts\\Events\\Dispatcher\n * @static\n */\n public static function getDispatcher()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->getDispatcher();\n }\n\n /**\n * Set the event dispatcher instance.\n *\n * @param \\Illuminate\\Contracts\\Events\\Dispatcher $events\n * @return void\n * @static\n */\n public static function setDispatcher($events)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n $instance->setDispatcher($events);\n }\n\n /**\n * Get the session store used by the guard.\n *\n * @return \\Illuminate\\Contracts\\Session\\Session\n * @static\n */\n public static function getSession()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->getSession();\n }\n\n /**\n * Return the currently cached user.\n *\n * @return \\Jiminny\\Models\\User|null\n * @static\n */\n public static function getUser()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->getUser();\n }\n\n /**\n * Set the current user.\n *\n * @param \\Illuminate\\Contracts\\Auth\\Authenticatable $user\n * @return \\Illuminate\\Auth\\SessionGuard\n * @static\n */\n public static function setUser($user)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->setUser($user);\n }\n\n /**\n * Get the current request instance.\n *\n * @return \\Symfony\\Component\\HttpFoundation\\Request\n * @static\n */\n public static function getRequest()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->getRequest();\n }\n\n /**\n * Set the current request instance.\n *\n * @param \\Symfony\\Component\\HttpFoundation\\Request $request\n * @return \\Illuminate\\Auth\\SessionGuard\n * @static\n */\n public static function setRequest($request)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->setRequest($request);\n }\n\n /**\n * Get the timebox instance used by the guard.\n *\n * @return \\Illuminate\\Support\\Timebox\n * @static\n */\n public static function getTimebox()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->getTimebox();\n }\n\n /**\n * Determine if the current user is authenticated. If not, throw an exception.\n *\n * @return \\Jiminny\\Models\\User\n * @throws \\Illuminate\\Auth\\AuthenticationException\n * @static\n */\n public static function authenticate()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->authenticate();\n }\n\n /**\n * Determine if the guard has a user instance.\n *\n * @return bool\n * @static\n */\n public static function hasUser()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->hasUser();\n }\n\n /**\n * Determine if the current user is authenticated.\n *\n * @return bool\n * @static\n */\n public static function check()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->check();\n }\n\n /**\n * Determine if the current user is a guest.\n *\n * @return bool\n * @static\n */\n public static function guest()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->guest();\n }\n\n /**\n * Forget the current user.\n *\n * @return \\Illuminate\\Auth\\SessionGuard\n * @static\n */\n public static function forgetUser()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->forgetUser();\n }\n\n /**\n * Get the user provider used by the guard.\n *\n * @return \\Illuminate\\Contracts\\Auth\\UserProvider\n * @static\n */\n public static function getProvider()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->getProvider();\n }\n\n /**\n * Set the user provider used by the guard.\n *\n * @param \\Illuminate\\Contracts\\Auth\\UserProvider $provider\n * @return void\n * @static\n */\n public static function setProvider($provider)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n $instance->setProvider($provider);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Auth\\SessionGuard::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Auth\\SessionGuard::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Auth\\SessionGuard::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Auth\\SessionGuard::flushMacros();\n }\n\n }\n /**\n * @see \\Illuminate\\View\\Compilers\\BladeCompiler\n */\n class Blade {\n /**\n * Compile the view at the given path.\n *\n * @param string|null $path\n * @return void\n * @static\n */\n public static function compile($path = null)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->compile($path);\n }\n\n /**\n * Get the path currently being compiled.\n *\n * @return string\n * @static\n */\n public static function getPath()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->getPath();\n }\n\n /**\n * Set the path currently being compiled.\n *\n * @param string $path\n * @return void\n * @static\n */\n public static function setPath($path)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->setPath($path);\n }\n\n /**\n * Compile the given Blade template contents.\n *\n * @param string $value\n * @return string\n * @static\n */\n public static function compileString($value)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->compileString($value);\n }\n\n /**\n * Evaluate and render a Blade string to HTML.\n *\n * @param string $string\n * @param array $data\n * @param bool $deleteCachedView\n * @return string\n * @static\n */\n public static function render($string, $data = [], $deleteCachedView = false)\n {\n return \\Illuminate\\View\\Compilers\\BladeCompiler::render($string, $data, $deleteCachedView);\n }\n\n /**\n * Render a component instance to HTML.\n *\n * @param \\Illuminate\\View\\Component $component\n * @return string\n * @static\n */\n public static function renderComponent($component)\n {\n return \\Illuminate\\View\\Compilers\\BladeCompiler::renderComponent($component);\n }\n\n /**\n * Strip the parentheses from the given expression.\n *\n * @param string $expression\n * @return string\n * @static\n */\n public static function stripParentheses($expression)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->stripParentheses($expression);\n }\n\n /**\n * Register a custom Blade compiler.\n *\n * @param callable $compiler\n * @return void\n * @static\n */\n public static function extend($compiler)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->extend($compiler);\n }\n\n /**\n * Get the extensions used by the compiler.\n *\n * @return array\n * @static\n */\n public static function getExtensions()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->getExtensions();\n }\n\n /**\n * Register an \"if\" statement directive.\n *\n * @param string $name\n * @param callable $callback\n * @return void\n * @static\n */\n public static function if($name, $callback)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->if($name, $callback);\n }\n\n /**\n * Check the result of a condition.\n *\n * @param string $name\n * @param mixed $parameters\n * @return bool\n * @static\n */\n public static function check($name, ...$parameters)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->check($name, ...$parameters);\n }\n\n /**\n * Register a class-based component alias directive.\n *\n * @param string $class\n * @param string|null $alias\n * @param string $prefix\n * @return void\n * @static\n */\n public static function component($class, $alias = null, $prefix = '')\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->component($class, $alias, $prefix);\n }\n\n /**\n * Register an array of class-based components.\n *\n * @param array $components\n * @param string $prefix\n * @return void\n * @static\n */\n public static function components($components, $prefix = '')\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->components($components, $prefix);\n }\n\n /**\n * Get the registered class component aliases.\n *\n * @return array\n * @static\n */\n public static function getClassComponentAliases()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->getClassComponentAliases();\n }\n\n /**\n * Register a new anonymous component path.\n *\n * @param string $path\n * @param string|null $prefix\n * @return void\n * @static\n */\n public static function anonymousComponentPath($path, $prefix = null)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->anonymousComponentPath($path, $prefix);\n }\n\n /**\n * Register an anonymous component namespace.\n *\n * @param string $directory\n * @param string|null $prefix\n * @return void\n * @static\n */\n public static function anonymousComponentNamespace($directory, $prefix = null)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->anonymousComponentNamespace($directory, $prefix);\n }\n\n /**\n * Register a class-based component namespace.\n *\n * @param string $namespace\n * @param string $prefix\n * @return void\n * @static\n */\n public static function componentNamespace($namespace, $prefix)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->componentNamespace($namespace, $prefix);\n }\n\n /**\n * Get the registered anonymous component paths.\n *\n * @return array\n * @static\n */\n public static function getAnonymousComponentPaths()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->getAnonymousComponentPaths();\n }\n\n /**\n * Get the registered anonymous component namespaces.\n *\n * @return array\n * @static\n */\n public static function getAnonymousComponentNamespaces()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->getAnonymousComponentNamespaces();\n }\n\n /**\n * Get the registered class component namespaces.\n *\n * @return array\n * @static\n */\n public static function getClassComponentNamespaces()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->getClassComponentNamespaces();\n }\n\n /**\n * Register a component alias directive.\n *\n * @param string $path\n * @param string|null $alias\n * @return void\n * @static\n */\n public static function aliasComponent($path, $alias = null)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->aliasComponent($path, $alias);\n }\n\n /**\n * Register an include alias directive.\n *\n * @param string $path\n * @param string|null $alias\n * @return void\n * @static\n */\n public static function include($path, $alias = null)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->include($path, $alias);\n }\n\n /**\n * Register an include alias directive.\n *\n * @param string $path\n * @param string|null $alias\n * @return void\n * @static\n */\n public static function aliasInclude($path, $alias = null)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->aliasInclude($path, $alias);\n }\n\n /**\n * Register a handler for custom directives, binding the handler to the compiler.\n *\n * @param string $name\n * @param callable $handler\n * @return void\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function bindDirective($name, $handler)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->bindDirective($name, $handler);\n }\n\n /**\n * Register a handler for custom directives.\n *\n * @param string $name\n * @param callable $handler\n * @param bool $bind\n * @return void\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function directive($name, $handler, $bind = false)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->directive($name, $handler, $bind);\n }\n\n /**\n * Get the list of custom directives.\n *\n * @return array\n * @static\n */\n public static function getCustomDirectives()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->getCustomDirectives();\n }\n\n /**\n * Indicate that the following callable should be used to prepare strings for compilation.\n *\n * @param callable $callback\n * @return \\Illuminate\\View\\Compilers\\BladeCompiler\n * @static\n */\n public static function prepareStringsForCompilationUsing($callback)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->prepareStringsForCompilationUsing($callback);\n }\n\n /**\n * Register a new precompiler.\n *\n * @param callable $precompiler\n * @return void\n * @static\n */\n public static function precompiler($precompiler)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->precompiler($precompiler);\n }\n\n /**\n * Execute the given callback using a custom echo format.\n *\n * @param string $format\n * @param callable $callback\n * @return string\n * @static\n */\n public static function usingEchoFormat($format, $callback)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->usingEchoFormat($format, $callback);\n }\n\n /**\n * Set the echo format to be used by the compiler.\n *\n * @param string $format\n * @return void\n * @static\n */\n public static function setEchoFormat($format)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->setEchoFormat($format);\n }\n\n /**\n * Set the \"echo\" format to double encode entities.\n *\n * @return void\n * @static\n */\n public static function withDoubleEncoding()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->withDoubleEncoding();\n }\n\n /**\n * Set the \"echo\" format to not double encode entities.\n *\n * @return void\n * @static\n */\n public static function withoutDoubleEncoding()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->withoutDoubleEncoding();\n }\n\n /**\n * Indicate that component tags should not be compiled.\n *\n * @return void\n * @static\n */\n public static function withoutComponentTags()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->withoutComponentTags();\n }\n\n /**\n * Get the path to the compiled version of a view.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function getCompiledPath($path)\n {\n //Method inherited from \\Illuminate\\View\\Compilers\\Compiler \n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->getCompiledPath($path);\n }\n\n /**\n * Determine if the view at the given path is expired.\n *\n * @param string $path\n * @return bool\n * @throws \\ErrorException\n * @static\n */\n public static function isExpired($path)\n {\n //Method inherited from \\Illuminate\\View\\Compilers\\Compiler \n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->isExpired($path);\n }\n\n /**\n * Get a new component hash for a component name.\n *\n * @param string $component\n * @return string\n * @static\n */\n public static function newComponentHash($component)\n {\n return \\Illuminate\\View\\Compilers\\BladeCompiler::newComponentHash($component);\n }\n\n /**\n * Compile a class component opening.\n *\n * @param string $component\n * @param string $alias\n * @param string $data\n * @param string $hash\n * @return string\n * @static\n */\n public static function compileClassComponentOpening($component, $alias, $data, $hash)\n {\n return \\Illuminate\\View\\Compilers\\BladeCompiler::compileClassComponentOpening($component, $alias, $data, $hash);\n }\n\n /**\n * Compile the end-component statements into valid PHP.\n *\n * @return string\n * @static\n */\n public static function compileEndComponentClass()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->compileEndComponentClass();\n }\n\n /**\n * Sanitize the given component attribute value.\n *\n * @param mixed $value\n * @return mixed\n * @static\n */\n public static function sanitizeComponentAttribute($value)\n {\n return \\Illuminate\\View\\Compilers\\BladeCompiler::sanitizeComponentAttribute($value);\n }\n\n /**\n * Compile an end-once block into valid PHP.\n *\n * @return string\n * @static\n */\n public static function compileEndOnce()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->compileEndOnce();\n }\n\n /**\n * Add a handler to be executed before echoing a given class.\n *\n * @param string|callable $class\n * @param callable|null $handler\n * @return void\n * @static\n */\n public static function stringable($class, $handler = null)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->stringable($class, $handler);\n }\n\n /**\n * Compile Blade echos into valid PHP.\n *\n * @param string $value\n * @return string\n * @static\n */\n public static function compileEchos($value)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->compileEchos($value);\n }\n\n /**\n * Apply the echo handler for the value if it exists.\n *\n * @param string $value\n * @return string\n * @static\n */\n public static function applyEchoHandler($value)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->applyEchoHandler($value);\n }\n\n }\n /**\n * @method static mixed auth(\\Illuminate\\Http\\Request $request)\n * @method static mixed validAuthenticationResponse(\\Illuminate\\Http\\Request $request, mixed $result)\n * @method static void broadcast(array $channels, string $event, array $payload = [])\n * @method static array|null resolveAuthenticatedUser(\\Illuminate\\Http\\Request $request)\n * @method static void resolveAuthenticatedUserUsing(\\Closure $callback)\n * @method static \\Illuminate\\Broadcasting\\Broadcasters\\Broadcaster channel(\\Illuminate\\Contracts\\Broadcasting\\HasBroadcastChannel|string $channel, callable|string $callback, array $options = [])\n * @method static \\Illuminate\\Support\\Collection getChannels()\n * @see \\Illuminate\\Broadcasting\\BroadcastManager\n * @see \\Illuminate\\Broadcasting\\Broadcasters\\Broadcaster\n */\n class Broadcast {\n /**\n * Register the routes for handling broadcast channel authentication and sockets.\n *\n * @param array|null $attributes\n * @return void\n * @static\n */\n public static function routes($attributes = null)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n $instance->routes($attributes);\n }\n\n /**\n * Register the routes for handling broadcast user authentication.\n *\n * @param array|null $attributes\n * @return void\n * @static\n */\n public static function userRoutes($attributes = null)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n $instance->userRoutes($attributes);\n }\n\n /**\n * Register the routes for handling broadcast authentication and sockets.\n * \n * Alias of \"routes\" method.\n *\n * @param array|null $attributes\n * @return void\n * @static\n */\n public static function channelRoutes($attributes = null)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n $instance->channelRoutes($attributes);\n }\n\n /**\n * Get the socket ID for the given request.\n *\n * @param \\Illuminate\\Http\\Request|null $request\n * @return string|null\n * @static\n */\n public static function socket($request = null)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->socket($request);\n }\n\n /**\n * Begin sending an anonymous broadcast to the given channels.\n *\n * @static\n */\n public static function on($channels)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->on($channels);\n }\n\n /**\n * Begin sending an anonymous broadcast to the given private channels.\n *\n * @static\n */\n public static function private($channel)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->private($channel);\n }\n\n /**\n * Begin sending an anonymous broadcast to the given presence channels.\n *\n * @static\n */\n public static function presence($channel)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->presence($channel);\n }\n\n /**\n * Begin broadcasting an event.\n *\n * @param mixed $event\n * @return \\Illuminate\\Broadcasting\\PendingBroadcast\n * @static\n */\n public static function event($event = null)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->event($event);\n }\n\n /**\n * Queue the given event for broadcast.\n *\n * @param mixed $event\n * @return void\n * @static\n */\n public static function queue($event)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n $instance->queue($event);\n }\n\n /**\n * Get a driver instance.\n *\n * @param string|null $driver\n * @return mixed\n * @static\n */\n public static function connection($driver = null)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->connection($driver);\n }\n\n /**\n * Get a driver instance.\n *\n * @param string|null $name\n * @return mixed\n * @static\n */\n public static function driver($name = null)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->driver($name);\n }\n\n /**\n * Get a Pusher instance for the given configuration.\n *\n * @param array $config\n * @return \\Pusher\\Pusher\n * @static\n */\n public static function pusher($config)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->pusher($config);\n }\n\n /**\n * Get an Ably instance for the given configuration.\n *\n * @param array $config\n * @return \\Ably\\AblyRest\n * @static\n */\n public static function ably($config)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->ably($config);\n }\n\n /**\n * Get the default driver name.\n *\n * @return string\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Set the default driver name.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultDriver($name)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n $instance->setDefaultDriver($name);\n }\n\n /**\n * Disconnect the given disk and remove from local cache.\n *\n * @param string|null $name\n * @return void\n * @static\n */\n public static function purge($name = null)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n $instance->purge($name);\n }\n\n /**\n * Register a custom driver creator Closure.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @return \\Illuminate\\Broadcasting\\BroadcastManager\n * @static\n */\n public static function extend($driver, $callback)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->extend($driver, $callback);\n }\n\n /**\n * Get the application instance used by the manager.\n *\n * @return \\Illuminate\\Contracts\\Foundation\\Application\n * @static\n */\n public static function getApplication()\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->getApplication();\n }\n\n /**\n * Set the application instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Foundation\\Application $app\n * @return \\Illuminate\\Broadcasting\\BroadcastManager\n * @static\n */\n public static function setApplication($app)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->setApplication($app);\n }\n\n /**\n * Forget all of the resolved driver instances.\n *\n * @return \\Illuminate\\Broadcasting\\BroadcastManager\n * @static\n */\n public static function forgetDrivers()\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->forgetDrivers();\n }\n\n }\n /**\n * @see \\Illuminate\\Bus\\Dispatcher\n * @see \\Illuminate\\Support\\Testing\\Fakes\\BusFake\n */\n class Bus {\n /**\n * Dispatch a command to its appropriate handler.\n *\n * @param mixed $command\n * @return mixed\n * @static\n */\n public static function dispatch($command)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->dispatch($command);\n }\n\n /**\n * Dispatch a command to its appropriate handler in the current process.\n * \n * Queueable jobs will be dispatched to the \"sync\" queue.\n *\n * @param mixed $command\n * @param mixed $handler\n * @return mixed\n * @static\n */\n public static function dispatchSync($command, $handler = null)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->dispatchSync($command, $handler);\n }\n\n /**\n * Dispatch a command to its appropriate handler in the current process without using the synchronous queue.\n *\n * @param mixed $command\n * @param mixed $handler\n * @return mixed\n * @static\n */\n public static function dispatchNow($command, $handler = null)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->dispatchNow($command, $handler);\n }\n\n /**\n * Attempt to find the batch with the given ID.\n *\n * @param string $batchId\n * @return \\Illuminate\\Bus\\Batch|null\n * @static\n */\n public static function findBatch($batchId)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->findBatch($batchId);\n }\n\n /**\n * Create a new batch of queueable jobs.\n *\n * @param \\Illuminate\\Support\\Collection|mixed $jobs\n * @return \\Illuminate\\Bus\\PendingBatch\n * @static\n */\n public static function batch($jobs)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->batch($jobs);\n }\n\n /**\n * Create a new chain of queueable jobs.\n *\n * @param \\Illuminate\\Support\\Collection|array|null $jobs\n * @return \\Illuminate\\Foundation\\Bus\\PendingChain\n * @static\n */\n public static function chain($jobs = null)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->chain($jobs);\n }\n\n /**\n * Determine if the given command has a handler.\n *\n * @param mixed $command\n * @return bool\n * @static\n */\n public static function hasCommandHandler($command)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->hasCommandHandler($command);\n }\n\n /**\n * Retrieve the handler for a command.\n *\n * @param mixed $command\n * @return mixed\n * @static\n */\n public static function getCommandHandler($command)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->getCommandHandler($command);\n }\n\n /**\n * Dispatch a command to its appropriate handler behind a queue.\n *\n * @param mixed $command\n * @return mixed\n * @throws \\RuntimeException\n * @static\n */\n public static function dispatchToQueue($command)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->dispatchToQueue($command);\n }\n\n /**\n * Dispatch a command to its appropriate handler after the current process.\n *\n * @param mixed $command\n * @param mixed $handler\n * @return void\n * @static\n */\n public static function dispatchAfterResponse($command, $handler = null)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n $instance->dispatchAfterResponse($command, $handler);\n }\n\n /**\n * Set the pipes through which commands should be piped before dispatching.\n *\n * @param array $pipes\n * @return \\Illuminate\\Bus\\Dispatcher\n * @static\n */\n public static function pipeThrough($pipes)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->pipeThrough($pipes);\n }\n\n /**\n * Map a command to a handler.\n *\n * @param array $map\n * @return \\Illuminate\\Bus\\Dispatcher\n * @static\n */\n public static function map($map)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->map($map);\n }\n\n /**\n * Allow dispatching after responses.\n *\n * @return \\Illuminate\\Bus\\Dispatcher\n * @static\n */\n public static function withDispatchingAfterResponses()\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->withDispatchingAfterResponses();\n }\n\n /**\n * Disable dispatching after responses.\n *\n * @return \\Illuminate\\Bus\\Dispatcher\n * @static\n */\n public static function withoutDispatchingAfterResponses()\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->withoutDispatchingAfterResponses();\n }\n\n /**\n * Specify the jobs that should be dispatched instead of faked.\n *\n * @param array|string $jobsToDispatch\n * @return \\Illuminate\\Support\\Testing\\Fakes\\BusFake\n * @static\n */\n public static function except($jobsToDispatch)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->except($jobsToDispatch);\n }\n\n /**\n * Assert if a job was dispatched based on a truth-test callback.\n *\n * @param string|\\Closure $command\n * @param callable|int|null $callback\n * @return void\n * @static\n */\n public static function assertDispatched($command, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertDispatched($command, $callback);\n }\n\n /**\n * Assert if a job was pushed exactly once.\n *\n * @param string|\\Closure $command\n * @param int $times\n * @return void\n * @static\n */\n public static function assertDispatchedOnce($command)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertDispatchedOnce($command);\n }\n\n /**\n * Assert if a job was pushed a number of times.\n *\n * @param string|\\Closure $command\n * @param int $times\n * @return void\n * @static\n */\n public static function assertDispatchedTimes($command, $times = 1)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertDispatchedTimes($command, $times);\n }\n\n /**\n * Determine if a job was dispatched based on a truth-test callback.\n *\n * @param string|\\Closure $command\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertNotDispatched($command, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertNotDispatched($command, $callback);\n }\n\n /**\n * Assert that no jobs were dispatched.\n *\n * @return void\n * @static\n */\n public static function assertNothingDispatched()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertNothingDispatched();\n }\n\n /**\n * Assert if a job was explicitly dispatched synchronously based on a truth-test callback.\n *\n * @param string|\\Closure $command\n * @param callable|int|null $callback\n * @return void\n * @static\n */\n public static function assertDispatchedSync($command, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertDispatchedSync($command, $callback);\n }\n\n /**\n * Assert if a job was pushed synchronously a number of times.\n *\n * @param string|\\Closure $command\n * @param int $times\n * @return void\n * @static\n */\n public static function assertDispatchedSyncTimes($command, $times = 1)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertDispatchedSyncTimes($command, $times);\n }\n\n /**\n * Determine if a job was dispatched based on a truth-test callback.\n *\n * @param string|\\Closure $command\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertNotDispatchedSync($command, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertNotDispatchedSync($command, $callback);\n }\n\n /**\n * Assert if a job was dispatched after the response was sent based on a truth-test callback.\n *\n * @param string|\\Closure $command\n * @param callable|int|null $callback\n * @return void\n * @static\n */\n public static function assertDispatchedAfterResponse($command, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertDispatchedAfterResponse($command, $callback);\n }\n\n /**\n * Assert if a job was pushed after the response was sent a number of times.\n *\n * @param string|\\Closure $command\n * @param int $times\n * @return void\n * @static\n */\n public static function assertDispatchedAfterResponseTimes($command, $times = 1)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertDispatchedAfterResponseTimes($command, $times);\n }\n\n /**\n * Determine if a job was dispatched based on a truth-test callback.\n *\n * @param string|\\Closure $command\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertNotDispatchedAfterResponse($command, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertNotDispatchedAfterResponse($command, $callback);\n }\n\n /**\n * Assert if a chain of jobs was dispatched.\n *\n * @param array $expectedChain\n * @return void\n * @static\n */\n public static function assertChained($expectedChain)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertChained($expectedChain);\n }\n\n /**\n * Assert no chained jobs was dispatched.\n *\n * @return void\n * @static\n */\n public static function assertNothingChained()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertNothingChained();\n }\n\n /**\n * Assert if a job was dispatched with an empty chain based on a truth-test callback.\n *\n * @param string|\\Closure $command\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertDispatchedWithoutChain($command, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertDispatchedWithoutChain($command, $callback);\n }\n\n /**\n * Create a new assertion about a chained batch.\n *\n * @param \\Closure $callback\n * @return \\Illuminate\\Support\\Testing\\Fakes\\ChainedBatchTruthTest\n * @static\n */\n public static function chainedBatch($callback)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->chainedBatch($callback);\n }\n\n /**\n * Assert if a batch was dispatched based on a truth-test callback.\n *\n * @param callable $callback\n * @return void\n * @static\n */\n public static function assertBatched($callback)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertBatched($callback);\n }\n\n /**\n * Assert the number of batches that have been dispatched.\n *\n * @param int $count\n * @return void\n * @static\n */\n public static function assertBatchCount($count)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertBatchCount($count);\n }\n\n /**\n * Assert that no batched jobs were dispatched.\n *\n * @return void\n * @static\n */\n public static function assertNothingBatched()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertNothingBatched();\n }\n\n /**\n * Assert that no jobs were dispatched, chained, or batched.\n *\n * @return void\n * @static\n */\n public static function assertNothingPlaced()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertNothingPlaced();\n }\n\n /**\n * Get all of the jobs matching a truth-test callback.\n *\n * @param string $command\n * @param callable|null $callback\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function dispatched($command, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->dispatched($command, $callback);\n }\n\n /**\n * Get all of the jobs dispatched synchronously matching a truth-test callback.\n *\n * @param string $command\n * @param callable|null $callback\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function dispatchedSync($command, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->dispatchedSync($command, $callback);\n }\n\n /**\n * Get all of the jobs dispatched after the response was sent matching a truth-test callback.\n *\n * @param string $command\n * @param callable|null $callback\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function dispatchedAfterResponse($command, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->dispatchedAfterResponse($command, $callback);\n }\n\n /**\n * Get all of the pending batches matching a truth-test callback.\n *\n * @param callable $callback\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function batched($callback)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->batched($callback);\n }\n\n /**\n * Determine if there are any stored commands for a given class.\n *\n * @param string $command\n * @return bool\n * @static\n */\n public static function hasDispatched($command)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->hasDispatched($command);\n }\n\n /**\n * Determine if there are any stored commands for a given class.\n *\n * @param string $command\n * @return bool\n * @static\n */\n public static function hasDispatchedSync($command)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->hasDispatchedSync($command);\n }\n\n /**\n * Determine if there are any stored commands for a given class.\n *\n * @param string $command\n * @return bool\n * @static\n */\n public static function hasDispatchedAfterResponse($command)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->hasDispatchedAfterResponse($command);\n }\n\n /**\n * Dispatch an empty job batch for testing.\n *\n * @param string $name\n * @return \\Illuminate\\Bus\\Batch\n * @static\n */\n public static function dispatchFakeBatch($name = '')\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->dispatchFakeBatch($name);\n }\n\n /**\n * Record the fake pending batch dispatch.\n *\n * @param \\Illuminate\\Bus\\PendingBatch $pendingBatch\n * @return \\Illuminate\\Bus\\Batch\n * @static\n */\n public static function recordPendingBatch($pendingBatch)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->recordPendingBatch($pendingBatch);\n }\n\n /**\n * Specify if commands should be serialized and restored when being batched.\n *\n * @param bool $serializeAndRestore\n * @return \\Illuminate\\Support\\Testing\\Fakes\\BusFake\n * @static\n */\n public static function serializeAndRestore($serializeAndRestore = true)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->serializeAndRestore($serializeAndRestore);\n }\n\n /**\n * Get the batches that have been dispatched.\n *\n * @return array\n * @static\n */\n public static function dispatchedBatches()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->dispatchedBatches();\n }\n\n }\n /**\n * @see \\Illuminate\\Cache\\CacheManager\n * @see \\Illuminate\\Cache\\Repository\n */\n class Cache {\n /**\n * Get a cache store instance by name, wrapped in a repository.\n *\n * @param string|null $name\n * @return \\Illuminate\\Contracts\\Cache\\Repository\n * @static\n */\n public static function store($name = null)\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n return $instance->store($name);\n }\n\n /**\n * Get a cache driver instance.\n *\n * @param string|null $driver\n * @return \\Illuminate\\Contracts\\Cache\\Repository\n * @static\n */\n public static function driver($driver = null)\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n return $instance->driver($driver);\n }\n\n /**\n * Get a memoized cache driver instance.\n *\n * @param string|null $driver\n * @return \\Illuminate\\Contracts\\Cache\\Repository\n * @static\n */\n public static function memo($driver = null)\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n return $instance->memo($driver);\n }\n\n /**\n * Resolve the given store.\n *\n * @param string $name\n * @return \\Illuminate\\Contracts\\Cache\\Repository\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function resolve($name)\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n return $instance->resolve($name);\n }\n\n /**\n * Build a cache repository with the given configuration.\n *\n * @param array $config\n * @return \\Illuminate\\Cache\\Repository\n * @static\n */\n public static function build($config)\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n return $instance->build($config);\n }\n\n /**\n * Create a new cache repository with the given implementation.\n *\n * @param \\Illuminate\\Contracts\\Cache\\Store $store\n * @param array $config\n * @return \\Illuminate\\Cache\\Repository\n * @static\n */\n public static function repository($store, $config = [])\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n return $instance->repository($store, $config);\n }\n\n /**\n * Re-set the event dispatcher on all resolved cache repositories.\n *\n * @return void\n * @static\n */\n public static function refreshEventDispatcher()\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n $instance->refreshEventDispatcher();\n }\n\n /**\n * Get the default cache driver name.\n *\n * @return string\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Set the default cache driver name.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultDriver($name)\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n $instance->setDefaultDriver($name);\n }\n\n /**\n * Unset the given driver instances.\n *\n * @param array|string|null $name\n * @return \\Illuminate\\Cache\\CacheManager\n * @static\n */\n public static function forgetDriver($name = null)\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n return $instance->forgetDriver($name);\n }\n\n /**\n * Disconnect the given driver and remove from local cache.\n *\n * @param string|null $name\n * @return void\n * @static\n */\n public static function purge($name = null)\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n $instance->purge($name);\n }\n\n /**\n * Register a custom driver creator Closure.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @param-closure-this $this $callback\n * @return \\Illuminate\\Cache\\CacheManager\n * @static\n */\n public static function extend($driver, $callback)\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n return $instance->extend($driver, $callback);\n }\n\n /**\n * Set the application instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Foundation\\Application $app\n * @return \\Illuminate\\Cache\\CacheManager\n * @static\n */\n public static function setApplication($app)\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n return $instance->setApplication($app);\n }\n\n /**\n * Determine if an item exists in the cache.\n *\n * @param array|string $key\n * @return bool\n * @static\n */\n public static function has($key)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->has($key);\n }\n\n /**\n * Determine if an item doesn't exist in the cache.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function missing($key)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->missing($key);\n }\n\n /**\n * Retrieve an item from the cache by key.\n *\n * @param array|string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function get($key, $default = null)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->get($key, $default);\n }\n\n /**\n * Retrieve multiple items from the cache by key.\n * \n * Items not found in the cache will have a null value.\n *\n * @param array $keys\n * @return array\n * @static\n */\n public static function many($keys)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->many($keys);\n }\n\n /**\n * Obtains multiple cache items by their unique keys.\n *\n * @return iterable\n * @param iterable<string> $keys A list of keys that can be obtained in a single operation.\n * @param mixed $default Default value to return for keys that do not exist.\n * @return iterable<string, mixed> A list of key => value pairs. Cache keys that do not exist or are stale will have $default as value.\n * @throws \\Psr\\SimpleCache\\InvalidArgumentException\n * MUST be thrown if $keys is neither an array nor a Traversable,\n * or if any of the $keys are not a legal value.\n * @static\n */\n public static function getMultiple($keys, $default = null)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->getMultiple($keys, $default);\n }\n\n /**\n * Retrieve an item from the cache and delete it.\n *\n * @param array|string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function pull($key, $default = null)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->pull($key, $default);\n }\n\n /**\n * Store an item in the cache.\n *\n * @param array|string $key\n * @param mixed $value\n * @param \\DateTimeInterface|\\DateInterval|int|null $ttl\n * @return bool\n * @static\n */\n public static function put($key, $value, $ttl = null)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->put($key, $value, $ttl);\n }\n\n /**\n * Persists data in the cache, uniquely referenced by a key with an optional expiration TTL time.\n *\n * @return bool\n * @param string $key The key of the item to store.\n * @param mixed $value The value of the item to store, must be serializable.\n * @param null|int|\\DateInterval $ttl Optional. The TTL value of this item. If no value is sent and\n * the driver supports TTL then the library may set a default value\n * for it or let the driver take care of that.\n * @return bool True on success and false on failure.\n * @throws \\Psr\\SimpleCache\\InvalidArgumentException\n * MUST be thrown if the $key string is not a legal value.\n * @static\n */\n public static function set($key, $value, $ttl = null)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->set($key, $value, $ttl);\n }\n\n /**\n * Store multiple items in the cache for a given number of seconds.\n *\n * @param array $values\n * @param \\DateTimeInterface|\\DateInterval|int|null $ttl\n * @return bool\n * @static\n */\n public static function putMany($values, $ttl = null)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->putMany($values, $ttl);\n }\n\n /**\n * Persists a set of key => value pairs in the cache, with an optional TTL.\n *\n * @return bool\n * @param iterable $values A list of key => value pairs for a multiple-set operation.\n * @param null|int|\\DateInterval $ttl Optional. The TTL value of this item. If no value is sent and\n * the driver supports TTL then the library may set a default value\n * for it or let the driver take care of that.\n * @return bool True on success and false on failure.\n * @throws \\Psr\\SimpleCache\\InvalidArgumentException\n * MUST be thrown if $values is neither an array nor a Traversable,\n * or if any of the $values are not a legal value.\n * @static\n */\n public static function setMultiple($values, $ttl = null)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->setMultiple($values, $ttl);\n }\n\n /**\n * Store an item in the cache if the key does not exist.\n *\n * @param string $key\n * @param mixed $value\n * @param \\DateTimeInterface|\\DateInterval|int|null $ttl\n * @return bool\n * @static\n */\n public static function add($key, $value, $ttl = null)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->add($key, $value, $ttl);\n }\n\n /**\n * Increment the value of an item in the cache.\n *\n * @param string $key\n * @param mixed $value\n * @return int|bool\n * @static\n */\n public static function increment($key, $value = 1)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->increment($key, $value);\n }\n\n /**\n * Decrement the value of an item in the cache.\n *\n * @param string $key\n * @param mixed $value\n * @return int|bool\n * @static\n */\n public static function decrement($key, $value = 1)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->decrement($key, $value);\n }\n\n /**\n * Store an item in the cache indefinitely.\n *\n * @param string $key\n * @param mixed $value\n * @return bool\n * @static\n */\n public static function forever($key, $value)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->forever($key, $value);\n }\n\n /**\n * Get an item from the cache, or execute the given Closure and store the result.\n *\n * @template TCacheValue\n * @param string $key\n * @param \\Closure|\\DateTimeInterface|\\DateInterval|int|null $ttl\n * @param \\Closure(): TCacheValue $callback\n * @return TCacheValue\n * @static\n */\n public static function remember($key, $ttl, $callback)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->remember($key, $ttl, $callback);\n }\n\n /**\n * Get an item from the cache, or execute the given Closure and store the result forever.\n *\n * @template TCacheValue\n * @param string $key\n * @param \\Closure(): TCacheValue $callback\n * @return TCacheValue\n * @static\n */\n public static function sear($key, $callback)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->sear($key, $callback);\n }\n\n /**\n * Get an item from the cache, or execute the given Closure and store the result forever.\n *\n * @template TCacheValue\n * @param string $key\n * @param \\Closure(): TCacheValue $callback\n * @return TCacheValue\n * @static\n */\n public static function rememberForever($key, $callback)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->rememberForever($key, $callback);\n }\n\n /**\n * Retrieve an item from the cache by key, refreshing it in the background if it is stale.\n *\n * @template TCacheValue\n * @param string $key\n * @param array{ 0: \\DateTimeInterface|\\DateInterval|int, 1: \\DateTimeInterface|\\DateInterval|int } $ttl\n * @param (callable(): TCacheValue) $callback\n * @param array{ seconds?: int, owner?: string }|null $lock\n * @param bool $alwaysDefer\n * @return TCacheValue\n * @static\n */\n public static function flexible($key, $ttl, $callback, $lock = null, $alwaysDefer = false)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->flexible($key, $ttl, $callback, $lock, $alwaysDefer);\n }\n\n /**\n * Remove an item from the cache.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function forget($key)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->forget($key);\n }\n\n /**\n * Delete an item from the cache by its unique key.\n *\n * @return bool\n * @param string $key The unique cache key of the item to delete.\n * @return bool True if the item was successfully removed. False if there was an error.\n * @throws \\Psr\\SimpleCache\\InvalidArgumentException\n * MUST be thrown if the $key string is not a legal value.\n * @static\n */\n public static function delete($key)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->delete($key);\n }\n\n /**\n * Deletes multiple cache items in a single operation.\n *\n * @return bool\n * @param iterable<string> $keys A list of string-based keys to be deleted.\n * @return bool True if the items were successfully removed. False if there was an error.\n * @throws \\Psr\\SimpleCache\\InvalidArgumentException\n * MUST be thrown if $keys is neither an array nor a Traversable,\n * or if any of the $keys are not a legal value.\n * @static\n */\n public static function deleteMultiple($keys)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->deleteMultiple($keys);\n }\n\n /**\n * Wipes clean the entire cache's keys.\n *\n * @return bool\n * @return bool True on success and false on failure.\n * @static\n */\n public static function clear()\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->clear();\n }\n\n /**\n * Begin executing a new tags operation if the store supports it.\n *\n * @param mixed $names\n * @return \\Illuminate\\Cache\\TaggedCache\n * @throws \\BadMethodCallException\n * @static\n */\n public static function tags($names)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->tags($names);\n }\n\n /**\n * Get the name of the cache store.\n *\n * @return string|null\n * @static\n */\n public static function getName()\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->getName();\n }\n\n /**\n * Determine if the current store supports tags.\n *\n * @return bool\n * @static\n */\n public static function supportsTags()\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->supportsTags();\n }\n\n /**\n * Get the default cache time.\n *\n * @return int|null\n * @static\n */\n public static function getDefaultCacheTime()\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->getDefaultCacheTime();\n }\n\n /**\n * Set the default cache time in seconds.\n *\n * @param int|null $seconds\n * @return \\Illuminate\\Cache\\Repository\n * @static\n */\n public static function setDefaultCacheTime($seconds)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->setDefaultCacheTime($seconds);\n }\n\n /**\n * Get the cache store implementation.\n *\n * @return \\Illuminate\\Contracts\\Cache\\Store\n * @static\n */\n public static function getStore()\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->getStore();\n }\n\n /**\n * Set the cache store implementation.\n *\n * @param \\Illuminate\\Contracts\\Cache\\Store $store\n * @return static\n * @static\n */\n public static function setStore($store)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->setStore($store);\n }\n\n /**\n * Get the event dispatcher instance.\n *\n * @return \\Illuminate\\Contracts\\Events\\Dispatcher|null\n * @static\n */\n public static function getEventDispatcher()\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->getEventDispatcher();\n }\n\n /**\n * Set the event dispatcher instance.\n *\n * @param \\Illuminate\\Contracts\\Events\\Dispatcher $events\n * @return void\n * @static\n */\n public static function setEventDispatcher($events)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n $instance->setEventDispatcher($events);\n }\n\n /**\n * Determine if a cached value exists.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function offsetExists($key)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->offsetExists($key);\n }\n\n /**\n * Retrieve an item from the cache by key.\n *\n * @param string $key\n * @return mixed\n * @static\n */\n public static function offsetGet($key)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->offsetGet($key);\n }\n\n /**\n * Store an item in the cache for the default time.\n *\n * @param string $key\n * @param mixed $value\n * @return void\n * @static\n */\n public static function offsetSet($key, $value)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n $instance->offsetSet($key, $value);\n }\n\n /**\n * Remove an item from the cache.\n *\n * @param string $key\n * @return void\n * @static\n */\n public static function offsetUnset($key)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n $instance->offsetUnset($key);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Cache\\Repository::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Cache\\Repository::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Cache\\Repository::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Cache\\Repository::flushMacros();\n }\n\n /**\n * Dynamically handle calls to the class.\n *\n * @param string $method\n * @param array $parameters\n * @return mixed\n * @throws \\BadMethodCallException\n * @static\n */\n public static function macroCall($method, $parameters)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->macroCall($method, $parameters);\n }\n\n /**\n * Get a lock instance.\n *\n * @param string $name\n * @param int $seconds\n * @param string|null $owner\n * @return \\Illuminate\\Contracts\\Cache\\Lock\n * @static\n */\n public static function lock($name, $seconds = 0, $owner = null)\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n return $instance->lock($name, $seconds, $owner);\n }\n\n /**\n * Restore a lock instance using the owner identifier.\n *\n * @param string $name\n * @param string $owner\n * @return \\Illuminate\\Contracts\\Cache\\Lock\n * @static\n */\n public static function restoreLock($name, $owner)\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n return $instance->restoreLock($name, $owner);\n }\n\n /**\n * Remove all items from the cache.\n *\n * @return bool\n * @static\n */\n public static function flush()\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n return $instance->flush();\n }\n\n /**\n * Remove all expired tag set entries.\n *\n * @return void\n * @static\n */\n public static function flushStaleTags()\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n $instance->flushStaleTags();\n }\n\n /**\n * Get the Redis connection instance.\n *\n * @return \\Illuminate\\Redis\\Connections\\Connection\n * @static\n */\n public static function connection()\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n return $instance->connection();\n }\n\n /**\n * Get the Redis connection instance that should be used to manage locks.\n *\n * @return \\Illuminate\\Redis\\Connections\\Connection\n * @static\n */\n public static function lockConnection()\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n return $instance->lockConnection();\n }\n\n /**\n * Specify the name of the connection that should be used to store data.\n *\n * @param string $connection\n * @return void\n * @static\n */\n public static function setConnection($connection)\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n $instance->setConnection($connection);\n }\n\n /**\n * Specify the name of the connection that should be used to manage locks.\n *\n * @param string $connection\n * @return \\Illuminate\\Cache\\RedisStore\n * @static\n */\n public static function setLockConnection($connection)\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n return $instance->setLockConnection($connection);\n }\n\n /**\n * Get the Redis database instance.\n *\n * @return \\Illuminate\\Contracts\\Redis\\Factory\n * @static\n */\n public static function getRedis()\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n return $instance->getRedis();\n }\n\n /**\n * Get the cache key prefix.\n *\n * @return string\n * @static\n */\n public static function getPrefix()\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n return $instance->getPrefix();\n }\n\n /**\n * Set the cache key prefix.\n *\n * @param string $prefix\n * @return void\n * @static\n */\n public static function setPrefix($prefix)\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n $instance->setPrefix($prefix);\n }\n\n }\n /**\n * @method static array run(\\Closure|array $tasks)\n * @method static \\Illuminate\\Support\\Defer\\DeferredCallback defer(\\Closure|array $tasks)\n * @see \\Illuminate\\Concurrency\\ConcurrencyManager\n */\n class Concurrency {\n /**\n * Get a driver instance by name.\n *\n * @param string|null $name\n * @return mixed\n * @static\n */\n public static function driver($name = null)\n {\n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n return $instance->driver($name);\n }\n\n /**\n * Create an instance of the process concurrency driver.\n *\n * @param array $config\n * @return \\Illuminate\\Concurrency\\ProcessDriver\n * @static\n */\n public static function createProcessDriver($config)\n {\n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n return $instance->createProcessDriver($config);\n }\n\n /**\n * Create an instance of the fork concurrency driver.\n *\n * @param array $config\n * @return \\Illuminate\\Concurrency\\ForkDriver\n * @throws \\RuntimeException\n * @static\n */\n public static function createForkDriver($config)\n {\n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n return $instance->createForkDriver($config);\n }\n\n /**\n * Create an instance of the sync concurrency driver.\n *\n * @param array $config\n * @return \\Illuminate\\Concurrency\\SyncDriver\n * @static\n */\n public static function createSyncDriver($config)\n {\n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n return $instance->createSyncDriver($config);\n }\n\n /**\n * Get the default instance name.\n *\n * @return string\n * @static\n */\n public static function getDefaultInstance()\n {\n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n return $instance->getDefaultInstance();\n }\n\n /**\n * Set the default instance name.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultInstance($name)\n {\n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n $instance->setDefaultInstance($name);\n }\n\n /**\n * Get the instance specific configuration.\n *\n * @param string $name\n * @return array\n * @static\n */\n public static function getInstanceConfig($name)\n {\n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n return $instance->getInstanceConfig($name);\n }\n\n /**\n * Get an instance by name.\n *\n * @param string|null $name\n * @return mixed\n * @static\n */\n public static function instance($name = null)\n {\n //Method inherited from \\Illuminate\\Support\\MultipleInstanceManager \n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n return $instance->instance($name);\n }\n\n /**\n * Unset the given instances.\n *\n * @param array|string|null $name\n * @return \\Illuminate\\Concurrency\\ConcurrencyManager\n * @static\n */\n public static function forgetInstance($name = null)\n {\n //Method inherited from \\Illuminate\\Support\\MultipleInstanceManager \n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n return $instance->forgetInstance($name);\n }\n\n /**\n * Disconnect the given instance and remove from local cache.\n *\n * @param string|null $name\n * @return void\n * @static\n */\n public static function purge($name = null)\n {\n //Method inherited from \\Illuminate\\Support\\MultipleInstanceManager \n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n $instance->purge($name);\n }\n\n /**\n * Register a custom instance creator Closure.\n *\n * @param string $name\n * @param \\Closure $callback\n * @param-closure-this $this $callback\n * @return \\Illuminate\\Concurrency\\ConcurrencyManager\n * @static\n */\n public static function extend($name, $callback)\n {\n //Method inherited from \\Illuminate\\Support\\MultipleInstanceManager \n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n return $instance->extend($name, $callback);\n }\n\n /**\n * Set the application instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Foundation\\Application $app\n * @return \\Illuminate\\Concurrency\\ConcurrencyManager\n * @static\n */\n public static function setApplication($app)\n {\n //Method inherited from \\Illuminate\\Support\\MultipleInstanceManager \n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n return $instance->setApplication($app);\n }\n\n }\n /**\n * @see \\Illuminate\\Config\\Repository\n */\n class Config {\n /**\n * Determine if the given configuration value exists.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function has($key)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->has($key);\n }\n\n /**\n * Get the specified configuration value.\n *\n * @param array|string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function get($key, $default = null)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->get($key, $default);\n }\n\n /**\n * Get many configuration values.\n *\n * @param array<string|int,mixed> $keys\n * @return array<string,mixed>\n * @static\n */\n public static function getMany($keys)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->getMany($keys);\n }\n\n /**\n * Get the specified string configuration value.\n *\n * @param string $key\n * @param (\\Closure():(string|null))|string|null $default\n * @return string\n * @static\n */\n public static function string($key, $default = null)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->string($key, $default);\n }\n\n /**\n * Get the specified integer configuration value.\n *\n * @param string $key\n * @param (\\Closure():(int|null))|int|null $default\n * @return int\n * @static\n */\n public static function integer($key, $default = null)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->integer($key, $default);\n }\n\n /**\n * Get the specified float configuration value.\n *\n * @param string $key\n * @param (\\Closure():(float|null))|float|null $default\n * @return float\n * @static\n */\n public static function float($key, $default = null)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->float($key, $default);\n }\n\n /**\n * Get the specified boolean configuration value.\n *\n * @param string $key\n * @param (\\Closure():(bool|null))|bool|null $default\n * @return bool\n * @static\n */\n public static function boolean($key, $default = null)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->boolean($key, $default);\n }\n\n /**\n * Get the specified array configuration value.\n *\n * @param string $key\n * @param (\\Closure():(array<array-key, mixed>|null))|array<array-key, mixed>|null $default\n * @return array<array-key, mixed>\n * @static\n */\n public static function array($key, $default = null)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->array($key, $default);\n }\n\n /**\n * Get the specified array configuration value as a collection.\n *\n * @param string $key\n * @param (\\Closure():(array<array-key, mixed>|null))|array<array-key, mixed>|null $default\n * @return Collection<array-key, mixed>\n * @static\n */\n public static function collection($key, $default = null)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->collection($key, $default);\n }\n\n /**\n * Set a given configuration value.\n *\n * @param array|string $key\n * @param mixed $value\n * @return void\n * @static\n */\n public static function set($key, $value = null)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n $instance->set($key, $value);\n }\n\n /**\n * Prepend a value onto an array configuration value.\n *\n * @param string $key\n * @param mixed $value\n * @return void\n * @static\n */\n public static function prepend($key, $value)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n $instance->prepend($key, $value);\n }\n\n /**\n * Push a value onto an array configuration value.\n *\n * @param string $key\n * @param mixed $value\n * @return void\n * @static\n */\n public static function push($key, $value)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n $instance->push($key, $value);\n }\n\n /**\n * Get all of the configuration items for the application.\n *\n * @return array\n * @static\n */\n public static function all()\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->all();\n }\n\n /**\n * Determine if the given configuration option exists.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function offsetExists($key)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->offsetExists($key);\n }\n\n /**\n * Get a configuration option.\n *\n * @param string $key\n * @return mixed\n * @static\n */\n public static function offsetGet($key)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->offsetGet($key);\n }\n\n /**\n * Set a configuration option.\n *\n * @param string $key\n * @param mixed $value\n * @return void\n * @static\n */\n public static function offsetSet($key, $value)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n $instance->offsetSet($key, $value);\n }\n\n /**\n * Unset a configuration option.\n *\n * @param string $key\n * @return void\n * @static\n */\n public static function offsetUnset($key)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n $instance->offsetUnset($key);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Config\\Repository::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Config\\Repository::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Config\\Repository::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Config\\Repository::flushMacros();\n }\n\n }\n /**\n * @see \\Illuminate\\Log\\Context\\Repository\n */\n class Context {\n /**\n * Determine if the given key exists.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function has($key)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->has($key);\n }\n\n /**\n * Determine if the given key is missing.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function missing($key)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->missing($key);\n }\n\n /**\n * Determine if the given key exists within the hidden context data.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function hasHidden($key)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->hasHidden($key);\n }\n\n /**\n * Determine if the given key is missing within the hidden context data.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function missingHidden($key)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->missingHidden($key);\n }\n\n /**\n * Retrieve all the context data.\n *\n * @return array<string, mixed>\n * @static\n */\n public static function all()\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->all();\n }\n\n /**\n * Retrieve all the hidden context data.\n *\n * @return array<string, mixed>\n * @static\n */\n public static function allHidden()\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->allHidden();\n }\n\n /**\n * Retrieve the given key's value.\n *\n * @param string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function get($key, $default = null)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->get($key, $default);\n }\n\n /**\n * Retrieve the given key's hidden value.\n *\n * @param string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function getHidden($key, $default = null)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->getHidden($key, $default);\n }\n\n /**\n * Retrieve the given key's value and then forget it.\n *\n * @param string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function pull($key, $default = null)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->pull($key, $default);\n }\n\n /**\n * Retrieve the given key's hidden value and then forget it.\n *\n * @param string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function pullHidden($key, $default = null)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->pullHidden($key, $default);\n }\n\n /**\n * Retrieve only the values of the given keys.\n *\n * @param array<int, string> $keys\n * @return array<string, mixed>\n * @static\n */\n public static function only($keys)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->only($keys);\n }\n\n /**\n * Retrieve only the hidden values of the given keys.\n *\n * @param array<int, string> $keys\n * @return array<string, mixed>\n * @static\n */\n public static function onlyHidden($keys)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->onlyHidden($keys);\n }\n\n /**\n * Retrieve all values except those with the given keys.\n *\n * @param array<int, string> $keys\n * @return array<string, mixed>\n * @static\n */\n public static function except($keys)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->except($keys);\n }\n\n /**\n * Retrieve all hidden values except those with the given keys.\n *\n * @param array<int, string> $keys\n * @return array<string, mixed>\n * @static\n */\n public static function exceptHidden($keys)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->exceptHidden($keys);\n }\n\n /**\n * Add a context value.\n *\n * @param string|array<string, mixed> $key\n * @param mixed $value\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function add($key, $value = null)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->add($key, $value);\n }\n\n /**\n * Add a hidden context value.\n *\n * @param string|array<string, mixed> $key\n * @param mixed $value\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function addHidden($key, $value = null)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->addHidden($key, $value);\n }\n\n /**\n * Add a context value if it does not exist yet, and return the value.\n *\n * @param string $key\n * @param mixed $value\n * @return mixed\n * @static\n */\n public static function remember($key, $value)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->remember($key, $value);\n }\n\n /**\n * Add a hidden context value if it does not exist yet, and return the value.\n *\n * @param string $key\n * @param mixed $value\n * @return mixed\n * @static\n */\n public static function rememberHidden($key, $value)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->rememberHidden($key, $value);\n }\n\n /**\n * Forget the given context key.\n *\n * @param string|array<int, string> $key\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function forget($key)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->forget($key);\n }\n\n /**\n * Forget the given hidden context key.\n *\n * @param string|array<int, string> $key\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function forgetHidden($key)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->forgetHidden($key);\n }\n\n /**\n * Add a context value if it does not exist yet.\n *\n * @param string $key\n * @param mixed $value\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function addIf($key, $value)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->addIf($key, $value);\n }\n\n /**\n * Add a hidden context value if it does not exist yet.\n *\n * @param string $key\n * @param mixed $value\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function addHiddenIf($key, $value)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->addHiddenIf($key, $value);\n }\n\n /**\n * Push the given values onto the key's stack.\n *\n * @param string $key\n * @param mixed $values\n * @return \\Illuminate\\Log\\Context\\Repository\n * @throws \\RuntimeException\n * @static\n */\n public static function push($key, ...$values)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->push($key, ...$values);\n }\n\n /**\n * Pop the latest value from the key's stack.\n *\n * @param string $key\n * @return mixed\n * @throws \\RuntimeException\n * @static\n */\n public static function pop($key)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->pop($key);\n }\n\n /**\n * Push the given hidden values onto the key's stack.\n *\n * @param string $key\n * @param mixed $values\n * @return \\Illuminate\\Log\\Context\\Repository\n * @throws \\RuntimeException\n * @static\n */\n public static function pushHidden($key, ...$values)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->pushHidden($key, ...$values);\n }\n\n /**\n * Pop the latest hidden value from the key's stack.\n *\n * @param string $key\n * @return mixed\n * @throws \\RuntimeException\n * @static\n */\n public static function popHidden($key)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->popHidden($key);\n }\n\n /**\n * Increment a context counter.\n *\n * @param string $key\n * @param int $amount\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function increment($key, $amount = 1)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->increment($key, $amount);\n }\n\n /**\n * Decrement a context counter.\n *\n * @param string $key\n * @param int $amount\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function decrement($key, $amount = 1)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->decrement($key, $amount);\n }\n\n /**\n * Determine if the given value is in the given stack.\n *\n * @param string $key\n * @param mixed $value\n * @param bool $strict\n * @return bool\n * @throws \\RuntimeException\n * @static\n */\n public static function stackContains($key, $value, $strict = false)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->stackContains($key, $value, $strict);\n }\n\n /**\n * Determine if the given value is in the given hidden stack.\n *\n * @param string $key\n * @param mixed $value\n * @param bool $strict\n * @return bool\n * @throws \\RuntimeException\n * @static\n */\n public static function hiddenStackContains($key, $value, $strict = false)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->hiddenStackContains($key, $value, $strict);\n }\n\n /**\n * Run the callback function with the given context values and restore the original context state when complete.\n *\n * @param callable $callback\n * @param array<string, mixed> $data\n * @param array<string, mixed> $hidden\n * @return mixed\n * @throws \\Throwable\n * @static\n */\n public static function scope($callback, $data = [], $hidden = [])\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->scope($callback, $data, $hidden);\n }\n\n /**\n * Determine if the repository is empty.\n *\n * @return bool\n * @static\n */\n public static function isEmpty()\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->isEmpty();\n }\n\n /**\n * Execute the given callback when context is about to be dehydrated.\n *\n * @param callable $callback\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function dehydrating($callback)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->dehydrating($callback);\n }\n\n /**\n * Execute the given callback when context has been hydrated.\n *\n * @param callable $callback\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function hydrated($callback)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->hydrated($callback);\n }\n\n /**\n * Handle unserialize exceptions using the given callback.\n *\n * @param callable|null $callback\n * @return static\n * @static\n */\n public static function handleUnserializeExceptionsUsing($callback)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->handleUnserializeExceptionsUsing($callback);\n }\n\n /**\n * Flush all context data.\n *\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function flush()\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->flush();\n }\n\n /**\n * Dehydrate the context data.\n *\n * @internal\n * @return \\Illuminate\\Log\\Context\\?array\n * @static\n */\n public static function dehydrate()\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->dehydrate();\n }\n\n /**\n * Hydrate the context instance.\n *\n * @internal\n * @param \\Illuminate\\Log\\Context\\?array $context\n * @return \\Illuminate\\Log\\Context\\Repository\n * @throws \\RuntimeException\n * @static\n */\n public static function hydrate($context)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->hydrate($context);\n }\n\n /**\n * Apply the callback if the given \"value\" is (or resolves to) truthy.\n *\n * @template TWhenParameter\n * @template TWhenReturnType\n * @param (\\Closure($this): TWhenParameter)|TWhenParameter|null $value\n * @param (callable($this, TWhenParameter): TWhenReturnType)|null $callback\n * @param (callable($this, TWhenParameter): TWhenReturnType)|null $default\n * @return $this|TWhenReturnType\n * @static\n */\n public static function when($value = null, $callback = null, $default = null)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->when($value, $callback, $default);\n }\n\n /**\n * Apply the callback if the given \"value\" is (or resolves to) falsy.\n *\n * @template TUnlessParameter\n * @template TUnlessReturnType\n * @param (\\Closure($this): TUnlessParameter)|TUnlessParameter|null $value\n * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $callback\n * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $default\n * @return $this|TUnlessReturnType\n * @static\n */\n public static function unless($value = null, $callback = null, $default = null)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->unless($value, $callback, $default);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Log\\Context\\Repository::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Log\\Context\\Repository::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Log\\Context\\Repository::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Log\\Context\\Repository::flushMacros();\n }\n\n /**\n * Restore the model from the model identifier instance.\n *\n * @param \\Illuminate\\Contracts\\Database\\ModelIdentifier $value\n * @return \\Illuminate\\Database\\Eloquent\\Model\n * @static\n */\n public static function restoreModel($value)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->restoreModel($value);\n }\n\n }\n /**\n * @see \\Illuminate\\Cookie\\CookieJar\n */\n class Cookie {\n /**\n * Create a new cookie instance.\n *\n * @param string $name\n * @param string $value\n * @param int $minutes\n * @param string|null $path\n * @param string|null $domain\n * @param bool|null $secure\n * @param bool $httpOnly\n * @param bool $raw\n * @param string|null $sameSite\n * @return \\Symfony\\Component\\HttpFoundation\\Cookie\n * @static\n */\n public static function make($name, $value, $minutes = 0, $path = null, $domain = null, $secure = null, $httpOnly = true, $raw = false, $sameSite = null)\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n return $instance->make($name, $value, $minutes, $path, $domain, $secure, $httpOnly, $raw, $sameSite);\n }\n\n /**\n * Create a cookie that lasts \"forever\" (400 days).\n *\n * @param string $name\n * @param string $value\n * @param string|null $path\n * @param string|null $domain\n * @param bool|null $secure\n * @param bool $httpOnly\n * @param bool $raw\n * @param string|null $sameSite\n * @return \\Symfony\\Component\\HttpFoundation\\Cookie\n * @static\n */\n public static function forever($name, $value, $path = null, $domain = null, $secure = null, $httpOnly = true, $raw = false, $sameSite = null)\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n return $instance->forever($name, $value, $path, $domain, $secure, $httpOnly, $raw, $sameSite);\n }\n\n /**\n * Expire the given cookie.\n *\n * @param string $name\n * @param string|null $path\n * @param string|null $domain\n * @return \\Symfony\\Component\\HttpFoundation\\Cookie\n * @static\n */\n public static function forget($name, $path = null, $domain = null)\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n return $instance->forget($name, $path, $domain);\n }\n\n /**\n * Determine if a cookie has been queued.\n *\n * @param string $key\n * @param string|null $path\n * @return bool\n * @static\n */\n public static function hasQueued($key, $path = null)\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n return $instance->hasQueued($key, $path);\n }\n\n /**\n * Get a queued cookie instance.\n *\n * @param string $key\n * @param mixed $default\n * @param string|null $path\n * @return \\Symfony\\Component\\HttpFoundation\\Cookie|null\n * @static\n */\n public static function queued($key, $default = null, $path = null)\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n return $instance->queued($key, $default, $path);\n }\n\n /**\n * Queue a cookie to send with the next response.\n *\n * @param mixed $parameters\n * @return void\n * @static\n */\n public static function queue(...$parameters)\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n $instance->queue(...$parameters);\n }\n\n /**\n * Queue a cookie to expire with the next response.\n *\n * @param string $name\n * @param string|null $path\n * @param string|null $domain\n * @return void\n * @static\n */\n public static function expire($name, $path = null, $domain = null)\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n $instance->expire($name, $path, $domain);\n }\n\n /**\n * Remove a cookie from the queue.\n *\n * @param string $name\n * @param string|null $path\n * @return void\n * @static\n */\n public static function unqueue($name, $path = null)\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n $instance->unqueue($name, $path);\n }\n\n /**\n * Set the default path and domain for the jar.\n *\n * @param string $path\n * @param string|null $domain\n * @param bool|null $secure\n * @param string|null $sameSite\n * @return \\Illuminate\\Cookie\\CookieJar\n * @static\n */\n public static function setDefaultPathAndDomain($path, $domain, $secure = false, $sameSite = null)\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n return $instance->setDefaultPathAndDomain($path, $domain, $secure, $sameSite);\n }\n\n /**\n * Get the cookies which have been queued for the next request.\n *\n * @return \\Symfony\\Component\\HttpFoundation\\Cookie[]\n * @static\n */\n public static function getQueuedCookies()\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n return $instance->getQueuedCookies();\n }\n\n /**\n * Flush the cookies which have been queued for the next request.\n *\n * @return \\Illuminate\\Cookie\\CookieJar\n * @static\n */\n public static function flushQueuedCookies()\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n return $instance->flushQueuedCookies();\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Cookie\\CookieJar::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Cookie\\CookieJar::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Cookie\\CookieJar::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Cookie\\CookieJar::flushMacros();\n }\n\n }\n /**\n * @see \\Illuminate\\Encryption\\Encrypter\n */\n class Crypt {\n /**\n * Determine if the given key and cipher combination is valid.\n *\n * @param string $key\n * @param string $cipher\n * @return bool\n * @static\n */\n public static function supported($key, $cipher)\n {\n return \\Illuminate\\Encryption\\Encrypter::supported($key, $cipher);\n }\n\n /**\n * Create a new encryption key for the given cipher.\n *\n * @param string $cipher\n * @return string\n * @static\n */\n public static function generateKey($cipher)\n {\n return \\Illuminate\\Encryption\\Encrypter::generateKey($cipher);\n }\n\n /**\n * Encrypt the given value.\n *\n * @param mixed $value\n * @param bool $serialize\n * @return string\n * @throws \\Illuminate\\Contracts\\Encryption\\EncryptException\n * @static\n */\n public static function encrypt($value, $serialize = true)\n {\n /** @var \\Illuminate\\Encryption\\Encrypter $instance */\n return $instance->encrypt($value, $serialize);\n }\n\n /**\n * Encrypt a string without serialization.\n *\n * @param string $value\n * @return string\n * @throws \\Illuminate\\Contracts\\Encryption\\EncryptException\n * @static\n */\n public static function encryptString($value)\n {\n /** @var \\Illuminate\\Encryption\\Encrypter $instance */\n return $instance->encryptString($value);\n }\n\n /**\n * Decrypt the given value.\n *\n * @param string $payload\n * @param bool $unserialize\n * @return mixed\n * @throws \\Illuminate\\Contracts\\Encryption\\DecryptException\n * @static\n */\n public static function decrypt($payload, $unserialize = true)\n {\n /** @var \\Illuminate\\Encryption\\Encrypter $instance */\n return $instance->decrypt($payload, $unserialize);\n }\n\n /**\n * Decrypt the given string without unserialization.\n *\n * @param string $payload\n * @return string\n * @throws \\Illuminate\\Contracts\\Encryption\\DecryptException\n * @static\n */\n public static function decryptString($payload)\n {\n /** @var \\Illuminate\\Encryption\\Encrypter $instance */\n return $instance->decryptString($payload);\n }\n\n /**\n * Get the encryption key that the encrypter is currently using.\n *\n * @return string\n * @static\n */\n public static function getKey()\n {\n /** @var \\Illuminate\\Encryption\\Encrypter $instance */\n return $instance->getKey();\n }\n\n /**\n * Get the current encryption key and all previous encryption keys.\n *\n * @return array\n * @static\n */\n public static function getAllKeys()\n {\n /** @var \\Illuminate\\Encryption\\Encrypter $instance */\n return $instance->getAllKeys();\n }\n\n /**\n * Get the previous encryption keys.\n *\n * @return array\n * @static\n */\n public static function getPreviousKeys()\n {\n /** @var \\Illuminate\\Encryption\\Encrypter $instance */\n return $instance->getPreviousKeys();\n }\n\n /**\n * Set the previous / legacy encryption keys that should be utilized if decryption fails.\n *\n * @param array $keys\n * @return \\Illuminate\\Encryption\\Encrypter\n * @static\n */\n public static function previousKeys($keys)\n {\n /** @var \\Illuminate\\Encryption\\Encrypter $instance */\n return $instance->previousKeys($keys);\n }\n\n }\n /**\n * @see \\Illuminate\\Database\\DatabaseManager\n */\n class DB {\n /**\n * Get a database connection instance.\n *\n * @param \\UnitEnum|string|null $name\n * @return \\Illuminate\\Database\\Connection\n * @static\n */\n public static function connection($name = null)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->connection($name);\n }\n\n /**\n * Build a database connection instance from the given configuration.\n *\n * @param array $config\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function build($config)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->build($config);\n }\n\n /**\n * Calculate the dynamic connection name for an on-demand connection based on its configuration.\n *\n * @param array $config\n * @return string\n * @static\n */\n public static function calculateDynamicConnectionName($config)\n {\n return \\Illuminate\\Database\\DatabaseManager::calculateDynamicConnectionName($config);\n }\n\n /**\n * Get a database connection instance from the given configuration.\n *\n * @param \\UnitEnum|string $name\n * @param array $config\n * @param bool $force\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function connectUsing($name, $config, $force = false)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->connectUsing($name, $config, $force);\n }\n\n /**\n * Disconnect from the given database and remove from local cache.\n *\n * @param \\UnitEnum|string|null $name\n * @return void\n * @static\n */\n public static function purge($name = null)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n $instance->purge($name);\n }\n\n /**\n * Disconnect from the given database.\n *\n * @param \\UnitEnum|string|null $name\n * @return void\n * @static\n */\n public static function disconnect($name = null)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n $instance->disconnect($name);\n }\n\n /**\n * Reconnect to the given database.\n *\n * @param \\UnitEnum|string|null $name\n * @return \\Illuminate\\Database\\Connection\n * @static\n */\n public static function reconnect($name = null)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->reconnect($name);\n }\n\n /**\n * Set the default database connection for the callback execution.\n *\n * @param \\UnitEnum|string $name\n * @param callable $callback\n * @return mixed\n * @static\n */\n public static function usingConnection($name, $callback)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->usingConnection($name, $callback);\n }\n\n /**\n * Get the default connection name.\n *\n * @return string\n * @static\n */\n public static function getDefaultConnection()\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->getDefaultConnection();\n }\n\n /**\n * Set the default connection name.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultConnection($name)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n $instance->setDefaultConnection($name);\n }\n\n /**\n * Get all of the supported drivers.\n *\n * @return string[]\n * @static\n */\n public static function supportedDrivers()\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->supportedDrivers();\n }\n\n /**\n * Get all of the drivers that are actually available.\n *\n * @return string[]\n * @static\n */\n public static function availableDrivers()\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->availableDrivers();\n }\n\n /**\n * Register an extension connection resolver.\n *\n * @param string $name\n * @param callable $resolver\n * @return void\n * @static\n */\n public static function extend($name, $resolver)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n $instance->extend($name, $resolver);\n }\n\n /**\n * Remove an extension connection resolver.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function forgetExtension($name)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n $instance->forgetExtension($name);\n }\n\n /**\n * Return all of the created connections.\n *\n * @return array<string, \\Illuminate\\Database\\Connection>\n * @static\n */\n public static function getConnections()\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->getConnections();\n }\n\n /**\n * Set the database reconnector callback.\n *\n * @param callable $reconnector\n * @return void\n * @static\n */\n public static function setReconnector($reconnector)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n $instance->setReconnector($reconnector);\n }\n\n /**\n * Set the application instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Foundation\\Application $app\n * @return \\Illuminate\\Database\\DatabaseManager\n * @static\n */\n public static function setApplication($app)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->setApplication($app);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Database\\DatabaseManager::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Database\\DatabaseManager::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Database\\DatabaseManager::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Database\\DatabaseManager::flushMacros();\n }\n\n /**\n * Dynamically handle calls to the class.\n *\n * @param string $method\n * @param array $parameters\n * @return mixed\n * @throws \\BadMethodCallException\n * @static\n */\n public static function macroCall($method, $parameters)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->macroCall($method, $parameters);\n }\n\n /**\n * Get a human-readable name for the given connection driver.\n *\n * @return string\n * @static\n */\n public static function getDriverTitle()\n {\n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getDriverTitle();\n }\n\n /**\n * Determine if the connected database is a MariaDB database.\n *\n * @return bool\n * @static\n */\n public static function isMaria()\n {\n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->isMaria();\n }\n\n /**\n * Get the server version for the connection.\n *\n * @return string\n * @static\n */\n public static function getServerVersion()\n {\n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getServerVersion();\n }\n\n /**\n * Get a schema builder instance for the connection.\n *\n * @return \\Illuminate\\Database\\Schema\\MariaDbBuilder\n * @static\n */\n public static function getSchemaBuilder()\n {\n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getSchemaBuilder();\n }\n\n /**\n * Get the schema state for the connection.\n *\n * @param \\Illuminate\\Filesystem\\Filesystem|null $files\n * @param callable|null $processFactory\n * @return \\Illuminate\\Database\\Schema\\MariaDbSchemaState\n * @static\n */\n public static function getSchemaState($files = null, $processFactory = null)\n {\n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getSchemaState($files, $processFactory);\n }\n\n /**\n * Run an insert statement against the database.\n *\n * @param string $query\n * @param array $bindings\n * @param string|null $sequence\n * @return bool\n * @static\n */\n public static function insert($query, $bindings = [], $sequence = null)\n {\n //Method inherited from \\Illuminate\\Database\\MySqlConnection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->insert($query, $bindings, $sequence);\n }\n\n /**\n * Get the connection's last insert ID.\n *\n * @return string|int|null\n * @static\n */\n public static function getLastInsertId()\n {\n //Method inherited from \\Illuminate\\Database\\MySqlConnection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getLastInsertId();\n }\n\n /**\n * Set the query grammar to the default implementation.\n *\n * @return void\n * @static\n */\n public static function useDefaultQueryGrammar()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->useDefaultQueryGrammar();\n }\n\n /**\n * Set the schema grammar to the default implementation.\n *\n * @return void\n * @static\n */\n public static function useDefaultSchemaGrammar()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->useDefaultSchemaGrammar();\n }\n\n /**\n * Set the query post processor to the default implementation.\n *\n * @return void\n * @static\n */\n public static function useDefaultPostProcessor()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->useDefaultPostProcessor();\n }\n\n /**\n * Begin a fluent query against a database table.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Contracts\\Database\\Query\\Expression|\\UnitEnum|string $table\n * @param string|null $as\n * @return \\Illuminate\\Database\\Query\\Builder\n * @static\n */\n public static function table($table, $as = null)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->table($table, $as);\n }\n\n /**\n * Get a new query builder instance.\n *\n * @return \\Illuminate\\Database\\Query\\Builder\n * @static\n */\n public static function query()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->query();\n }\n\n /**\n * Run a select statement and return a single result.\n *\n * @param string $query\n * @param array $bindings\n * @param bool $useReadPdo\n * @return mixed\n * @static\n */\n public static function selectOne($query, $bindings = [], $useReadPdo = true)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->selectOne($query, $bindings, $useReadPdo);\n }\n\n /**\n * Run a select statement and return the first column of the first row.\n *\n * @param string $query\n * @param array $bindings\n * @param bool $useReadPdo\n * @return mixed\n * @throws \\Illuminate\\Database\\MultipleColumnsSelectedException\n * @static\n */\n public static function scalar($query, $bindings = [], $useReadPdo = true)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->scalar($query, $bindings, $useReadPdo);\n }\n\n /**\n * Run a select statement against the database.\n *\n * @param string $query\n * @param array $bindings\n * @return array\n * @static\n */\n public static function selectFromWriteConnection($query, $bindings = [])\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->selectFromWriteConnection($query, $bindings);\n }\n\n /**\n * Run a select statement against the database.\n *\n * @param string $query\n * @param array $bindings\n * @param bool $useReadPdo\n * @return array\n * @static\n */\n public static function select($query, $bindings = [], $useReadPdo = true)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->select($query, $bindings, $useReadPdo);\n }\n\n /**\n * Run a select statement against the database and returns all of the result sets.\n *\n * @param string $query\n * @param array $bindings\n * @param bool $useReadPdo\n * @return array\n * @static\n */\n public static function selectResultSets($query, $bindings = [], $useReadPdo = true)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->selectResultSets($query, $bindings, $useReadPdo);\n }\n\n /**\n * Run a select statement against the database and returns a generator.\n *\n * @param string $query\n * @param array $bindings\n * @param bool $useReadPdo\n * @return \\Generator<int, \\stdClass>\n * @static\n */\n public static function cursor($query, $bindings = [], $useReadPdo = true)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->cursor($query, $bindings, $useReadPdo);\n }\n\n /**\n * Run an update statement against the database.\n *\n * @param string $query\n * @param array $bindings\n * @return int\n * @static\n */\n public static function update($query, $bindings = [])\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->update($query, $bindings);\n }\n\n /**\n * Run a delete statement against the database.\n *\n * @param string $query\n * @param array $bindings\n * @return int\n * @static\n */\n public static function delete($query, $bindings = [])\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->delete($query, $bindings);\n }\n\n /**\n * Execute an SQL statement and return the boolean result.\n *\n * @param string $query\n * @param array $bindings\n * @return bool\n * @static\n */\n public static function statement($query, $bindings = [])\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->statement($query, $bindings);\n }\n\n /**\n * Run an SQL statement and get the number of rows affected.\n *\n * @param string $query\n * @param array $bindings\n * @return int\n * @static\n */\n public static function affectingStatement($query, $bindings = [])\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->affectingStatement($query, $bindings);\n }\n\n /**\n * Run a raw, unprepared query against the PDO connection.\n *\n * @param string $query\n * @return bool\n * @static\n */\n public static function unprepared($query)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->unprepared($query);\n }\n\n /**\n * Get the number of open connections for the database.\n *\n * @return int|null\n * @static\n */\n public static function threadCount()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->threadCount();\n }\n\n /**\n * Execute the given callback in \"dry run\" mode.\n *\n * @param (\\Closure(\\Illuminate\\Database\\Connection): mixed) $callback\n * @return \\Illuminate\\Database\\array{query: string, bindings: array, time: float|null}[]\n * @static\n */\n public static function pretend($callback)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->pretend($callback);\n }\n\n /**\n * Execute the given callback without \"pretending\".\n *\n * @param \\Closure $callback\n * @return mixed\n * @static\n */\n public static function withoutPretending($callback)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->withoutPretending($callback);\n }\n\n /**\n * Bind values to their parameters in the given statement.\n *\n * @param \\PDOStatement $statement\n * @param array $bindings\n * @return void\n * @static\n */\n public static function bindValues($statement, $bindings)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->bindValues($statement, $bindings);\n }\n\n /**\n * Prepare the query bindings for execution.\n *\n * @param array $bindings\n * @return array\n * @static\n */\n public static function prepareBindings($bindings)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->prepareBindings($bindings);\n }\n\n /**\n * Log a query in the connection's query log.\n *\n * @param string $query\n * @param array $bindings\n * @param float|null $time\n * @return void\n * @static\n */\n public static function logQuery($query, $bindings, $time = null)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->logQuery($query, $bindings, $time);\n }\n\n /**\n * Register a callback to be invoked when the connection queries for longer than a given amount of time.\n *\n * @param \\DateTimeInterface|\\Carbon\\CarbonInterval|float|int $threshold\n * @param (callable(\\Illuminate\\Database\\Connection, \\Illuminate\\Database\\Events\\QueryExecuted): mixed) $handler\n * @return void\n * @static\n */\n public static function whenQueryingForLongerThan($threshold, $handler)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->whenQueryingForLongerThan($threshold, $handler);\n }\n\n /**\n * Allow all the query duration handlers to run again, even if they have already run.\n *\n * @return void\n * @static\n */\n public static function allowQueryDurationHandlersToRunAgain()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->allowQueryDurationHandlersToRunAgain();\n }\n\n /**\n * Get the duration of all run queries in milliseconds.\n *\n * @return float\n * @static\n */\n public static function totalQueryDuration()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->totalQueryDuration();\n }\n\n /**\n * Reset the duration of all run queries.\n *\n * @return void\n * @static\n */\n public static function resetTotalQueryDuration()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->resetTotalQueryDuration();\n }\n\n /**\n * Reconnect to the database if a PDO connection is missing.\n *\n * @return void\n * @static\n */\n public static function reconnectIfMissingConnection()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->reconnectIfMissingConnection();\n }\n\n /**\n * Register a hook to be run just before a database transaction is started.\n *\n * @param \\Closure $callback\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function beforeStartingTransaction($callback)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->beforeStartingTransaction($callback);\n }\n\n /**\n * Register a hook to be run just before a database query is executed.\n *\n * @param \\Closure $callback\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function beforeExecuting($callback)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->beforeExecuting($callback);\n }\n\n /**\n * Register a database query listener with the connection.\n *\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function listen($callback)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->listen($callback);\n }\n\n /**\n * Get a new raw query expression.\n *\n * @param mixed $value\n * @return \\Illuminate\\Contracts\\Database\\Query\\Expression\n * @static\n */\n public static function raw($value)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->raw($value);\n }\n\n /**\n * Escape a value for safe SQL embedding.\n *\n * @param string|float|int|bool|null $value\n * @param bool $binary\n * @return string\n * @static\n */\n public static function escape($value, $binary = false)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->escape($value, $binary);\n }\n\n /**\n * Determine if the database connection has modified any database records.\n *\n * @return bool\n * @static\n */\n public static function hasModifiedRecords()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->hasModifiedRecords();\n }\n\n /**\n * Indicate if any records have been modified.\n *\n * @param bool $value\n * @return void\n * @static\n */\n public static function recordsHaveBeenModified($value = true)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->recordsHaveBeenModified($value);\n }\n\n /**\n * Set the record modification state.\n *\n * @param bool $value\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setRecordModificationState($value)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setRecordModificationState($value);\n }\n\n /**\n * Reset the record modification state.\n *\n * @return void\n * @static\n */\n public static function forgetRecordModificationState()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->forgetRecordModificationState();\n }\n\n /**\n * Indicate that the connection should use the write PDO connection for reads.\n *\n * @param bool $value\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function useWriteConnectionWhenReading($value = true)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->useWriteConnectionWhenReading($value);\n }\n\n /**\n * Get the current PDO connection.\n *\n * @return \\PDO\n * @static\n */\n public static function getPdo()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getPdo();\n }\n\n /**\n * Get the current PDO connection parameter without executing any reconnect logic.\n *\n * @return \\PDO|\\Closure|null\n * @static\n */\n public static function getRawPdo()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getRawPdo();\n }\n\n /**\n * Get the current PDO connection used for reading.\n *\n * @return \\PDO\n * @static\n */\n public static function getReadPdo()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getReadPdo();\n }\n\n /**\n * Get the current read PDO connection parameter without executing any reconnect logic.\n *\n * @return \\PDO|\\Closure|null\n * @static\n */\n public static function getRawReadPdo()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getRawReadPdo();\n }\n\n /**\n * Set the PDO connection.\n *\n * @param \\PDO|\\Closure|null $pdo\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setPdo($pdo)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setPdo($pdo);\n }\n\n /**\n * Set the PDO connection used for reading.\n *\n * @param \\PDO|\\Closure|null $pdo\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setReadPdo($pdo)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setReadPdo($pdo);\n }\n\n /**\n * Get the database connection name.\n *\n * @return string|null\n * @static\n */\n public static function getName()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getName();\n }\n\n /**\n * Get the database connection full name.\n *\n * @return string|null\n * @static\n */\n public static function getNameWithReadWriteType()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getNameWithReadWriteType();\n }\n\n /**\n * Get an option from the configuration options.\n *\n * @param string|null $option\n * @return mixed\n * @static\n */\n public static function getConfig($option = null)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getConfig($option);\n }\n\n /**\n * Get the PDO driver name.\n *\n * @return string\n * @static\n */\n public static function getDriverName()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getDriverName();\n }\n\n /**\n * Get the query grammar used by the connection.\n *\n * @return \\Illuminate\\Database\\Query\\Grammars\\Grammar\n * @static\n */\n public static function getQueryGrammar()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getQueryGrammar();\n }\n\n /**\n * Set the query grammar used by the connection.\n *\n * @param \\Illuminate\\Database\\Query\\Grammars\\Grammar $grammar\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setQueryGrammar($grammar)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setQueryGrammar($grammar);\n }\n\n /**\n * Get the schema grammar used by the connection.\n *\n * @return \\Illuminate\\Database\\Schema\\Grammars\\Grammar\n * @static\n */\n public static function getSchemaGrammar()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getSchemaGrammar();\n }\n\n /**\n * Set the schema grammar used by the connection.\n *\n * @param \\Illuminate\\Database\\Schema\\Grammars\\Grammar $grammar\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setSchemaGrammar($grammar)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setSchemaGrammar($grammar);\n }\n\n /**\n * Get the query post processor used by the connection.\n *\n * @return \\Illuminate\\Database\\Query\\Processors\\Processor\n * @static\n */\n public static function getPostProcessor()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getPostProcessor();\n }\n\n /**\n * Set the query post processor used by the connection.\n *\n * @param \\Illuminate\\Database\\Query\\Processors\\Processor $processor\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setPostProcessor($processor)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setPostProcessor($processor);\n }\n\n /**\n * Get the event dispatcher used by the connection.\n *\n * @return \\Illuminate\\Contracts\\Events\\Dispatcher\n * @static\n */\n public static function getEventDispatcher()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getEventDispatcher();\n }\n\n /**\n * Set the event dispatcher instance on the connection.\n *\n * @param \\Illuminate\\Contracts\\Events\\Dispatcher $events\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setEventDispatcher($events)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setEventDispatcher($events);\n }\n\n /**\n * Unset the event dispatcher for this connection.\n *\n * @return void\n * @static\n */\n public static function unsetEventDispatcher()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->unsetEventDispatcher();\n }\n\n /**\n * Set the transaction manager instance on the connection.\n *\n * @param \\Illuminate\\Database\\DatabaseTransactionsManager $manager\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setTransactionManager($manager)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setTransactionManager($manager);\n }\n\n /**\n * Unset the transaction manager for this connection.\n *\n * @return void\n * @static\n */\n public static function unsetTransactionManager()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->unsetTransactionManager();\n }\n\n /**\n * Determine if the connection is in a \"dry run\".\n *\n * @return bool\n * @static\n */\n public static function pretending()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->pretending();\n }\n\n /**\n * Get the connection query log.\n *\n * @return \\Illuminate\\Database\\array{query: string, bindings: array, time: float|null}[]\n * @static\n */\n public static function getQueryLog()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getQueryLog();\n }\n\n /**\n * Get the connection query log with embedded bindings.\n *\n * @return array\n * @static\n */\n public static function getRawQueryLog()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getRawQueryLog();\n }\n\n /**\n * Clear the query log.\n *\n * @return void\n * @static\n */\n public static function flushQueryLog()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->flushQueryLog();\n }\n\n /**\n * Enable the query log on the connection.\n *\n * @return void\n * @static\n */\n public static function enableQueryLog()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->enableQueryLog();\n }\n\n /**\n * Disable the query log on the connection.\n *\n * @return void\n * @static\n */\n public static function disableQueryLog()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->disableQueryLog();\n }\n\n /**\n * Determine whether we're logging queries.\n *\n * @return bool\n * @static\n */\n public static function logging()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->logging();\n }\n\n /**\n * Get the name of the connected database.\n *\n * @return string\n * @static\n */\n public static function getDatabaseName()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getDatabaseName();\n }\n\n /**\n * Set the name of the connected database.\n *\n * @param string $database\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setDatabaseName($database)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setDatabaseName($database);\n }\n\n /**\n * Set the read / write type of the connection.\n *\n * @param string|null $readWriteType\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setReadWriteType($readWriteType)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setReadWriteType($readWriteType);\n }\n\n /**\n * Get the table prefix for the connection.\n *\n * @return string\n * @static\n */\n public static function getTablePrefix()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getTablePrefix();\n }\n\n /**\n * Set the table prefix in use by the connection.\n *\n * @param string $prefix\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setTablePrefix($prefix)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setTablePrefix($prefix);\n }\n\n /**\n * Execute the given callback without table prefix.\n *\n * @param \\Closure $callback\n * @return mixed\n * @static\n */\n public static function withoutTablePrefix($callback)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->withoutTablePrefix($callback);\n }\n\n /**\n * Register a connection resolver.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function resolverFor($driver, $callback)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n \\Illuminate\\Database\\MariaDbConnection::resolverFor($driver, $callback);\n }\n\n /**\n * Get the connection resolver for the given driver.\n *\n * @param string $driver\n * @return \\Closure|null\n * @static\n */\n public static function getResolver($driver)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n return \\Illuminate\\Database\\MariaDbConnection::getResolver($driver);\n }\n\n /**\n * @template TReturn of mixed\n * \n * Execute a Closure within a transaction.\n * @param (\\Closure(static): TReturn) $callback\n * @param int $attempts\n * @return TReturn\n * @throws \\Throwable\n * @static\n */\n public static function transaction($callback, $attempts = 1)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->transaction($callback, $attempts);\n }\n\n /**\n * Start a new database transaction.\n *\n * @return void\n * @throws \\Throwable\n * @static\n */\n public static function beginTransaction()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->beginTransaction();\n }\n\n /**\n * Commit the active database transaction.\n *\n * @return void\n * @throws \\Throwable\n * @static\n */\n public static function commit()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->commit();\n }\n\n /**\n * Rollback the active database transaction.\n *\n * @param int|null $toLevel\n * @return void\n * @throws \\Throwable\n * @static\n */\n public static function rollBack($toLevel = null)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->rollBack($toLevel);\n }\n\n /**\n * Get the number of active transactions.\n *\n * @return int\n * @static\n */\n public static function transactionLevel()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->transactionLevel();\n }\n\n /**\n * Execute the callback after a transaction commits.\n *\n * @param callable $callback\n * @return void\n * @throws \\RuntimeException\n * @static\n */\n public static function afterCommit($callback)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->afterCommit($callback);\n }\n\n /**\n * Execute the callback after a transaction rolls back.\n *\n * @param callable $callback\n * @return void\n * @throws \\RuntimeException\n * @static\n */\n public static function afterRollBack($callback)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->afterRollBack($callback);\n }\n\n }\n /**\n * @see \\Illuminate\\Events\\Dispatcher\n * @see \\Illuminate\\Support\\Testing\\Fakes\\EventFake\n */\n class Event {\n /**\n * Register an event listener with the dispatcher.\n *\n * @param \\Illuminate\\Events\\Queued\\Closure|callable|array|class-string|string $events\n * @param \\Illuminate\\Events\\Queued\\Closure|callable|array|class-string|null $listener\n * @return void\n * @static\n */\n public static function listen($events, $listener = null)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n $instance->listen($events, $listener);\n }\n\n /**\n * Determine if a given event has listeners.\n *\n * @param string $eventName\n * @return bool\n * @static\n */\n public static function hasListeners($eventName)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->hasListeners($eventName);\n }\n\n /**\n * Determine if the given event has any wildcard listeners.\n *\n * @param string $eventName\n * @return bool\n * @static\n */\n public static function hasWildcardListeners($eventName)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->hasWildcardListeners($eventName);\n }\n\n /**\n * Register an event and payload to be fired later.\n *\n * @param string $event\n * @param object|array $payload\n * @return void\n * @static\n */\n public static function push($event, $payload = [])\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n $instance->push($event, $payload);\n }\n\n /**\n * Flush a set of pushed events.\n *\n * @param string $event\n * @return void\n * @static\n */\n public static function flush($event)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n $instance->flush($event);\n }\n\n /**\n * Register an event subscriber with the dispatcher.\n *\n * @param object|string $subscriber\n * @return void\n * @static\n */\n public static function subscribe($subscriber)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n $instance->subscribe($subscriber);\n }\n\n /**\n * Fire an event until the first non-null response is returned.\n *\n * @param string|object $event\n * @param mixed $payload\n * @return mixed\n * @static\n */\n public static function until($event, $payload = [])\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->until($event, $payload);\n }\n\n /**\n * Fire an event and call the listeners.\n *\n * @param string|object $event\n * @param mixed $payload\n * @param bool $halt\n * @return array|null\n * @static\n */\n public static function dispatch($event, $payload = [], $halt = false)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->dispatch($event, $payload, $halt);\n }\n\n /**\n * Get all of the listeners for a given event name.\n *\n * @param string $eventName\n * @return array\n * @static\n */\n public static function getListeners($eventName)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->getListeners($eventName);\n }\n\n /**\n * Register an event listener with the dispatcher.\n *\n * @param \\Closure|string|array $listener\n * @param bool $wildcard\n * @return \\Closure\n * @static\n */\n public static function makeListener($listener, $wildcard = false)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->makeListener($listener, $wildcard);\n }\n\n /**\n * Create a class based listener using the IoC container.\n *\n * @param string $listener\n * @param bool $wildcard\n * @return \\Closure\n * @static\n */\n public static function createClassListener($listener, $wildcard = false)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->createClassListener($listener, $wildcard);\n }\n\n /**\n * Remove a set of listeners from the dispatcher.\n *\n * @param string $event\n * @return void\n * @static\n */\n public static function forget($event)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n $instance->forget($event);\n }\n\n /**\n * Forget all of the pushed listeners.\n *\n * @return void\n * @static\n */\n public static function forgetPushed()\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n $instance->forgetPushed();\n }\n\n /**\n * Set the queue resolver implementation.\n *\n * @param callable $resolver\n * @return \\Illuminate\\Events\\Dispatcher\n * @static\n */\n public static function setQueueResolver($resolver)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->setQueueResolver($resolver);\n }\n\n /**\n * Set the database transaction manager resolver implementation.\n *\n * @param callable $resolver\n * @return \\Illuminate\\Events\\Dispatcher\n * @static\n */\n public static function setTransactionManagerResolver($resolver)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->setTransactionManagerResolver($resolver);\n }\n\n /**\n * Execute the given callback while deferring events, then dispatch all deferred events.\n *\n * @param callable $callback\n * @param array|null $events\n * @return mixed\n * @static\n */\n public static function defer($callback, $events = null)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->defer($callback, $events);\n }\n\n /**\n * Gets the raw, unprepared listeners.\n *\n * @return array\n * @static\n */\n public static function getRawListeners()\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->getRawListeners();\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Events\\Dispatcher::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Events\\Dispatcher::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Events\\Dispatcher::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Events\\Dispatcher::flushMacros();\n }\n\n /**\n * Specify the events that should be dispatched instead of faked.\n *\n * @param array|string $eventsToDispatch\n * @return \\Illuminate\\Support\\Testing\\Fakes\\EventFake\n * @static\n */\n public static function except($eventsToDispatch)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\EventFake $instance */\n return $instance->except($eventsToDispatch);\n }\n\n /**\n * Assert if an event has a listener attached to it.\n *\n * @param string $expectedEvent\n * @param string|array $expectedListener\n * @return void\n * @static\n */\n public static function assertListening($expectedEvent, $expectedListener)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\EventFake $instance */\n $instance->assertListening($expectedEvent, $expectedListener);\n }\n\n /**\n * Assert if an event was dispatched based on a truth-test callback.\n *\n * @param string|\\Closure $event\n * @param callable|int|null $callback\n * @return void\n * @static\n */\n public static function assertDispatched($event, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\EventFake $instance */\n $instance->assertDispatched($event, $callback);\n }\n\n /**\n * Assert if an event was dispatched exactly once.\n *\n * @param string $event\n * @param int $times\n * @return void\n * @static\n */\n public static function assertDispatchedOnce($event)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\EventFake $instance */\n $instance->assertDispatchedOnce($event);\n }\n\n /**\n * Assert if an event was dispatched a number of times.\n *\n * @param string $event\n * @param int $times\n * @return void\n * @static\n */\n public static function assertDispatchedTimes($event, $times = 1)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\EventFake $instance */\n $instance->assertDispatchedTimes($event, $times);\n }\n\n /**\n * Determine if an event was dispatched based on a truth-test callback.\n *\n * @param string|\\Closure $event\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertNotDispatched($event, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\EventFake $instance */\n $instance->assertNotDispatched($event, $callback);\n }\n\n /**\n * Assert that no events were dispatched.\n *\n * @return void\n * @static\n */\n public static function assertNothingDispatched()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\EventFake $instance */\n $instance->assertNothingDispatched();\n }\n\n /**\n * Get all of the events matching a truth-test callback.\n *\n * @param string $event\n * @param callable|null $callback\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function dispatched($event, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\EventFake $instance */\n return $instance->dispatched($event, $callback);\n }\n\n /**\n * Determine if the given event has been dispatched.\n *\n * @param string $event\n * @return bool\n * @static\n */\n public static function hasDispatched($event)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\EventFake $instance */\n return $instance->hasDispatched($event);\n }\n\n /**\n * Get the events that have been dispatched.\n *\n * @return array\n * @static\n */\n public static function dispatchedEvents()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\EventFake $instance */\n return $instance->dispatchedEvents();\n }\n\n }\n /**\n * @see \\Illuminate\\Filesystem\\Filesystem\n */\n class File {\n /**\n * Determine if a file or directory exists.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function exists($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->exists($path);\n }\n\n /**\n * Determine if a file or directory is missing.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function missing($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->missing($path);\n }\n\n /**\n * Get the contents of a file.\n *\n * @param string $path\n * @param bool $lock\n * @return string\n * @throws \\Illuminate\\Contracts\\Filesystem\\FileNotFoundException\n * @static\n */\n public static function get($path, $lock = false)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->get($path, $lock);\n }\n\n /**\n * Get the contents of a file as decoded JSON.\n *\n * @param string $path\n * @param int $flags\n * @param bool $lock\n * @return array\n * @throws \\Illuminate\\Contracts\\Filesystem\\FileNotFoundException\n * @static\n */\n public static function json($path, $flags = 0, $lock = false)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->json($path, $flags, $lock);\n }\n\n /**\n * Get contents of a file with shared access.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function sharedGet($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->sharedGet($path);\n }\n\n /**\n * Get the returned value of a file.\n *\n * @param string $path\n * @param array $data\n * @return mixed\n * @throws \\Illuminate\\Contracts\\Filesystem\\FileNotFoundException\n * @static\n */\n public static function getRequire($path, $data = [])\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->getRequire($path, $data);\n }\n\n /**\n * Require the given file once.\n *\n * @param string $path\n * @param array $data\n * @return mixed\n * @throws \\Illuminate\\Contracts\\Filesystem\\FileNotFoundException\n * @static\n */\n public static function requireOnce($path, $data = [])\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->requireOnce($path, $data);\n }\n\n /**\n * Get the contents of a file one line at a time.\n *\n * @param string $path\n * @return \\Illuminate\\Support\\LazyCollection\n * @throws \\Illuminate\\Contracts\\Filesystem\\FileNotFoundException\n * @static\n */\n public static function lines($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->lines($path);\n }\n\n /**\n * Get the hash of the file at the given path.\n *\n * @param string $path\n * @param string $algorithm\n * @return string|false\n * @static\n */\n public static function hash($path, $algorithm = 'md5')\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->hash($path, $algorithm);\n }\n\n /**\n * Write the contents of a file.\n *\n * @param string $path\n * @param string $contents\n * @param bool $lock\n * @return int|bool\n * @static\n */\n public static function put($path, $contents, $lock = false)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->put($path, $contents, $lock);\n }\n\n /**\n * Write the contents of a file, replacing it atomically if it already exists.\n *\n * @param string $path\n * @param string $content\n * @param int|null $mode\n * @return void\n * @static\n */\n public static function replace($path, $content, $mode = null)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n $instance->replace($path, $content, $mode);\n }\n\n /**\n * Replace a given string within a given file.\n *\n * @param array|string $search\n * @param array|string $replace\n * @param string $path\n * @return void\n * @static\n */\n public static function replaceInFile($search, $replace, $path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n $instance->replaceInFile($search, $replace, $path);\n }\n\n /**\n * Prepend to a file.\n *\n * @param string $path\n * @param string $data\n * @return int\n * @static\n */\n public static function prepend($path, $data)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->prepend($path, $data);\n }\n\n /**\n * Append to a file.\n *\n * @param string $path\n * @param string $data\n * @param bool $lock\n * @return int\n * @static\n */\n public static function append($path, $data, $lock = false)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->append($path, $data, $lock);\n }\n\n /**\n * Get or set UNIX mode of a file or directory.\n *\n * @param string $path\n * @param int|null $mode\n * @return mixed\n * @static\n */\n public static function chmod($path, $mode = null)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->chmod($path, $mode);\n }\n\n /**\n * Delete the file at a given path.\n *\n * @param string|array $paths\n * @return bool\n * @static\n */\n public static function delete($paths)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->delete($paths);\n }\n\n /**\n * Move a file to a new location.\n *\n * @param string $path\n * @param string $target\n * @return bool\n * @static\n */\n public static function move($path, $target)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->move($path, $target);\n }\n\n /**\n * Copy a file to a new location.\n *\n * @param string $path\n * @param string $target\n * @return bool\n * @static\n */\n public static function copy($path, $target)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->copy($path, $target);\n }\n\n /**\n * Create a symlink to the target file or directory. On Windows, a hard link is created if the target is a file.\n *\n * @param string $target\n * @param string $link\n * @return bool|null\n * @static\n */\n public static function link($target, $link)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->link($target, $link);\n }\n\n /**\n * Create a relative symlink to the target file or directory.\n *\n * @param string $target\n * @param string $link\n * @return void\n * @throws \\RuntimeException\n * @static\n */\n public static function relativeLink($target, $link)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n $instance->relativeLink($target, $link);\n }\n\n /**\n * Extract the file name from a file path.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function name($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->name($path);\n }\n\n /**\n * Extract the trailing name component from a file path.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function basename($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->basename($path);\n }\n\n /**\n * Extract the parent directory from a file path.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function dirname($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->dirname($path);\n }\n\n /**\n * Extract the file extension from a file path.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function extension($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->extension($path);\n }\n\n /**\n * Guess the file extension from the mime-type of a given file.\n *\n * @param string $path\n * @return string|null\n * @throws \\RuntimeException\n * @static\n */\n public static function guessExtension($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->guessExtension($path);\n }\n\n /**\n * Get the file type of a given file.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function type($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->type($path);\n }\n\n /**\n * Get the mime-type of a given file.\n *\n * @param string $path\n * @return string|false\n * @static\n */\n public static function mimeType($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->mimeType($path);\n }\n\n /**\n * Get the file size of a given file.\n *\n * @param string $path\n * @return int\n * @static\n */\n public static function size($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->size($path);\n }\n\n /**\n * Get the file's last modification time.\n *\n * @param string $path\n * @return int\n * @static\n */\n public static function lastModified($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->lastModified($path);\n }\n\n /**\n * Determine if the given path is a directory.\n *\n * @param string $directory\n * @return bool\n * @static\n */\n public static function isDirectory($directory)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->isDirectory($directory);\n }\n\n /**\n * Determine if the given path is a directory that does not contain any other files or directories.\n *\n * @param string $directory\n * @param bool $ignoreDotFiles\n * @return bool\n * @static\n */\n public static function isEmptyDirectory($directory, $ignoreDotFiles = false)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->isEmptyDirectory($directory, $ignoreDotFiles);\n }\n\n /**\n * Determine if the given path is readable.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function isReadable($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->isReadable($path);\n }\n\n /**\n * Determine if the given path is writable.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function isWritable($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->isWritable($path);\n }\n\n /**\n * Determine if two files are the same by comparing their hashes.\n *\n * @param string $firstFile\n * @param string $secondFile\n * @return bool\n * @static\n */\n public static function hasSameHash($firstFile, $secondFile)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->hasSameHash($firstFile, $secondFile);\n }\n\n /**\n * Determine if the given path is a file.\n *\n * @param string $file\n * @return bool\n * @static\n */\n public static function isFile($file)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->isFile($file);\n }\n\n /**\n * Find path names matching a given pattern.\n *\n * @param string $pattern\n * @param int $flags\n * @return array\n * @static\n */\n public static function glob($pattern, $flags = 0)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->glob($pattern, $flags);\n }\n\n /**\n * Get an array of all files in a directory.\n *\n * @param string $directory\n * @param bool $hidden\n * @return \\Symfony\\Component\\Finder\\SplFileInfo[]\n * @static\n */\n public static function files($directory, $hidden = false)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->files($directory, $hidden);\n }\n\n /**\n * Get all of the files from the given directory (recursive).\n *\n * @param string $directory\n * @param bool $hidden\n * @return \\Symfony\\Component\\Finder\\SplFileInfo[]\n * @static\n */\n public static function allFiles($directory, $hidden = false)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->allFiles($directory, $hidden);\n }\n\n /**\n * Get all of the directories within a given directory.\n *\n * @param string $directory\n * @return array\n * @static\n */\n public static function directories($directory)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->directories($directory);\n }\n\n /**\n * Ensure a directory exists.\n *\n * @param string $path\n * @param int $mode\n * @param bool $recursive\n * @return void\n * @static\n */\n public static function ensureDirectoryExists($path, $mode = 493, $recursive = true)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n $instance->ensureDirectoryExists($path, $mode, $recursive);\n }\n\n /**\n * Create a directory.\n *\n * @param string $path\n * @param int $mode\n * @param bool $recursive\n * @param bool $force\n * @return bool\n * @static\n */\n public static function makeDirectory($path, $mode = 493, $recursive = false, $force = false)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->makeDirectory($path, $mode, $recursive, $force);\n }\n\n /**\n * Move a directory.\n *\n * @param string $from\n * @param string $to\n * @param bool $overwrite\n * @return bool\n * @static\n */\n public static function moveDirectory($from, $to, $overwrite = false)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->moveDirectory($from, $to, $overwrite);\n }\n\n /**\n * Copy a directory from one location to another.\n *\n * @param string $directory\n * @param string $destination\n * @param int|null $options\n * @return bool\n * @static\n */\n public static function copyDirectory($directory, $destination, $options = null)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->copyDirectory($directory, $destination, $options);\n }\n\n /**\n * Recursively delete a directory.\n * \n * The directory itself may be optionally preserved.\n *\n * @param string $directory\n * @param bool $preserve\n * @return bool\n * @static\n */\n public static function deleteDirectory($directory, $preserve = false)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->deleteDirectory($directory, $preserve);\n }\n\n /**\n * Remove all of the directories within a given directory.\n *\n * @param string $directory\n * @return bool\n * @static\n */\n public static function deleteDirectories($directory)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->deleteDirectories($directory);\n }\n\n /**\n * Empty the specified directory of all files and folders.\n *\n * @param string $directory\n * @return bool\n * @static\n */\n public static function cleanDirectory($directory)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->cleanDirectory($directory);\n }\n\n /**\n * Apply the callback if the given \"value\" is (or resolves to) truthy.\n *\n * @template TWhenParameter\n * @template TWhenReturnType\n * @param (\\Closure($this): TWhenParameter)|TWhenParameter|null $value\n * @param (callable($this, TWhenParameter): TWhenReturnType)|null $callback\n * @param (callable($this, TWhenParameter): TWhenReturnType)|null $default\n * @return $this|TWhenReturnType\n * @static\n */\n public static function when($value = null, $callback = null, $default = null)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->when($value, $callback, $default);\n }\n\n /**\n * Apply the callback if the given \"value\" is (or resolves to) falsy.\n *\n * @template TUnlessParameter\n * @template TUnlessReturnType\n * @param (\\Closure($this): TUnlessParameter)|TUnlessParameter|null $value\n * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $callback\n * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $default\n * @return $this|TUnlessReturnType\n * @static\n */\n public static function unless($value = null, $callback = null, $default = null)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->unless($value, $callback, $default);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Filesystem\\Filesystem::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Filesystem\\Filesystem::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Filesystem\\Filesystem::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Filesystem\\Filesystem::flushMacros();\n }\n\n }\n /**\n * @see \\Illuminate\\Auth\\Access\\Gate\n */\n class Gate {\n /**\n * Determine if a given ability has been defined.\n *\n * @param string|array $ability\n * @return bool\n * @static\n */\n public static function has($ability)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->has($ability);\n }\n\n /**\n * Perform an on-demand authorization check. Throw an authorization exception if the condition or callback is false.\n *\n * @param \\Illuminate\\Auth\\Access\\Response|\\Closure|bool $condition\n * @param string|null $message\n * @param string|null $code\n * @return \\Illuminate\\Auth\\Access\\Response\n * @throws \\Illuminate\\Auth\\Access\\AuthorizationException\n * @static\n */\n public static function allowIf($condition, $message = null, $code = null)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->allowIf($condition, $message, $code);\n }\n\n /**\n * Perform an on-demand authorization check. Throw an authorization exception if the condition or callback is true.\n *\n * @param \\Illuminate\\Auth\\Access\\Response|\\Closure|bool $condition\n * @param string|null $message\n * @param string|null $code\n * @return \\Illuminate\\Auth\\Access\\Response\n * @throws \\Illuminate\\Auth\\Access\\AuthorizationException\n * @static\n */\n public static function denyIf($condition, $message = null, $code = null)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->denyIf($condition, $message, $code);\n }\n\n /**\n * Define a new ability.\n *\n * @param \\UnitEnum|string $ability\n * @param callable|array|string $callback\n * @return \\Illuminate\\Auth\\Access\\Gate\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function define($ability, $callback)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->define($ability, $callback);\n }\n\n /**\n * Define abilities for a resource.\n *\n * @param string $name\n * @param string $class\n * @param array|null $abilities\n * @return \\Illuminate\\Auth\\Access\\Gate\n * @static\n */\n public static function resource($name, $class, $abilities = null)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->resource($name, $class, $abilities);\n }\n\n /**\n * Define a policy class for a given class type.\n *\n * @param string $class\n * @param string $policy\n * @return \\Illuminate\\Auth\\Access\\Gate\n * @static\n */\n public static function policy($class, $policy)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->policy($class, $policy);\n }\n\n /**\n * Register a callback to run before all Gate checks.\n *\n * @param callable $callback\n * @return \\Illuminate\\Auth\\Access\\Gate\n * @static\n */\n public static function before($callback)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->before($callback);\n }\n\n /**\n * Register a callback to run after all Gate checks.\n *\n * @param callable $callback\n * @return \\Illuminate\\Auth\\Access\\Gate\n * @static\n */\n public static function after($callback)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->after($callback);\n }\n\n /**\n * Determine if all of the given abilities should be granted for the current user.\n *\n * @param iterable|\\UnitEnum|string $ability\n * @param mixed $arguments\n * @return bool\n * @static\n */\n public static function allows($ability, $arguments = [])\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->allows($ability, $arguments);\n }\n\n /**\n * Determine if any of the given abilities should be denied for the current user.\n *\n * @param iterable|\\UnitEnum|string $ability\n * @param mixed $arguments\n * @return bool\n * @static\n */\n public static function denies($ability, $arguments = [])\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->denies($ability, $arguments);\n }\n\n /**\n * Determine if all of the given abilities should be granted for the current user.\n *\n * @param iterable|\\UnitEnum|string $abilities\n * @param mixed $arguments\n * @return bool\n * @static\n */\n public static function check($abilities, $arguments = [])\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->check($abilities, $arguments);\n }\n\n /**\n * Determine if any one of the given abilities should be granted for the current user.\n *\n * @param iterable|\\UnitEnum|string $abilities\n * @param mixed $arguments\n * @return bool\n * @static\n */\n public static function any($abilities, $arguments = [])\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->any($abilities, $arguments);\n }\n\n /**\n * Determine if all of the given abilities should be denied for the current user.\n *\n * @param iterable|\\UnitEnum|string $abilities\n * @param mixed $arguments\n * @return bool\n * @static\n */\n public static function none($abilities, $arguments = [])\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->none($abilities, $arguments);\n }\n\n /**\n * Determine if the given ability should be granted for the current user.\n *\n * @param \\UnitEnum|string $ability\n * @param mixed $arguments\n * @return \\Illuminate\\Auth\\Access\\Response\n * @throws \\Illuminate\\Auth\\Access\\AuthorizationException\n * @static\n */\n public static function authorize($ability, $arguments = [])\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->authorize($ability, $arguments);\n }\n\n /**\n * Inspect the user for the given ability.\n *\n * @param \\UnitEnum|string $ability\n * @param mixed $arguments\n * @return \\Illuminate\\Auth\\Access\\Response\n * @static\n */\n public static function inspect($ability, $arguments = [])\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->inspect($ability, $arguments);\n }\n\n /**\n * Get the raw result from the authorization callback.\n *\n * @param string $ability\n * @param mixed $arguments\n * @return mixed\n * @throws \\Illuminate\\Auth\\Access\\AuthorizationException\n * @static\n */\n public static function raw($ability, $arguments = [])\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->raw($ability, $arguments);\n }\n\n /**\n * Get a policy instance for a given class.\n *\n * @param object|string $class\n * @return mixed\n * @static\n */\n public static function getPolicyFor($class)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->getPolicyFor($class);\n }\n\n /**\n * Specify a callback to be used to guess policy names.\n *\n * @param callable $callback\n * @return \\Illuminate\\Auth\\Access\\Gate\n * @static\n */\n public static function guessPolicyNamesUsing($callback)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->guessPolicyNamesUsing($callback);\n }\n\n /**\n * Build a policy class instance of the given type.\n *\n * @param object|string $class\n * @return mixed\n * @throws \\Illuminate\\Contracts\\Container\\BindingResolutionException\n * @static\n */\n public static function resolvePolicy($class)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->resolvePolicy($class);\n }\n\n /**\n * Get a gate instance for the given user.\n *\n * @param \\Illuminate\\Contracts\\Auth\\Authenticatable|mixed $user\n * @return static\n * @static\n */\n public static function forUser($user)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->forUser($user);\n }\n\n /**\n * Get all of the defined abilities.\n *\n * @return array\n * @static\n */\n public static function abilities()\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->abilities();\n }\n\n /**\n * Get all of the defined policies.\n *\n * @return array\n * @static\n */\n public static function policies()\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->policies();\n }\n\n /**\n * Set the default denial response for gates and policies.\n *\n * @param \\Illuminate\\Auth\\Access\\Response $response\n * @return \\Illuminate\\Auth\\Access\\Gate\n * @static\n */\n public static function defaultDenialResponse($response)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->defaultDenialResponse($response);\n }\n\n /**\n * Set the container instance used by the gate.\n *\n * @param \\Illuminate\\Contracts\\Container\\Container $container\n * @return \\Illuminate\\Auth\\Access\\Gate\n * @static\n */\n public static function setContainer($container)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->setContainer($container);\n }\n\n /**\n * Deny with a HTTP status code.\n *\n * @param int $status\n * @param string|null $message\n * @param int|null $code\n * @return \\Illuminate\\Auth\\Access\\Response\n * @static\n */\n public static function denyWithStatus($status, $message = null, $code = null)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->denyWithStatus($status, $message, $code);\n }\n\n /**\n * Deny with a 404 HTTP status code.\n *\n * @param string|null $message\n * @param int|null $code\n * @return \\Illuminate\\Auth\\Access\\Response\n * @static\n */\n public static function denyAsNotFound($message = null, $code = null)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->denyAsNotFound($message, $code);\n }\n\n }\n /**\n * @see \\Illuminate\\Hashing\\HashManager\n * @see \\Illuminate\\Hashing\\AbstractHasher\n */\n class Hash {\n /**\n * Create an instance of the Bcrypt hash Driver.\n *\n * @return \\Illuminate\\Hashing\\BcryptHasher\n * @static\n */\n public static function createBcryptDriver()\n {\n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->createBcryptDriver();\n }\n\n /**\n * Create an instance of the Argon2i hash Driver.\n *\n * @return \\Illuminate\\Hashing\\ArgonHasher\n * @static\n */\n public static function createArgonDriver()\n {\n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->createArgonDriver();\n }\n\n /**\n * Create an instance of the Argon2id hash Driver.\n *\n * @return \\Illuminate\\Hashing\\Argon2IdHasher\n * @static\n */\n public static function createArgon2idDriver()\n {\n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->createArgon2idDriver();\n }\n\n /**\n * Get information about the given hashed value.\n *\n * @param string $hashedValue\n * @return array\n * @static\n */\n public static function info($hashedValue)\n {\n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->info($hashedValue);\n }\n\n /**\n * Hash the given value.\n *\n * @param string $value\n * @param array $options\n * @return string\n * @static\n */\n public static function make($value, $options = [])\n {\n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->make($value, $options);\n }\n\n /**\n * Check the given plain value against a hash.\n *\n * @param string $value\n * @param string $hashedValue\n * @param array $options\n * @return bool\n * @static\n */\n public static function check($value, $hashedValue, $options = [])\n {\n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->check($value, $hashedValue, $options);\n }\n\n /**\n * Check if the given hash has been hashed using the given options.\n *\n * @param string $hashedValue\n * @param array $options\n * @return bool\n * @static\n */\n public static function needsRehash($hashedValue, $options = [])\n {\n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->needsRehash($hashedValue, $options);\n }\n\n /**\n * Determine if a given string is already hashed.\n *\n * @param string $value\n * @return bool\n * @static\n */\n public static function isHashed($value)\n {\n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->isHashed($value);\n }\n\n /**\n * Get the default driver name.\n *\n * @return string\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Verifies that the configuration is less than or equal to what is configured.\n *\n * @param array $value\n * @return bool\n * @internal\n * @static\n */\n public static function verifyConfiguration($value)\n {\n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->verifyConfiguration($value);\n }\n\n /**\n * Get a driver instance.\n *\n * @param string|null $driver\n * @return mixed\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function driver($driver = null)\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->driver($driver);\n }\n\n /**\n * Register a custom driver creator Closure.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @return \\Illuminate\\Hashing\\HashManager\n * @static\n */\n public static function extend($driver, $callback)\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->extend($driver, $callback);\n }\n\n /**\n * Get all of the created \"drivers\".\n *\n * @return array\n * @static\n */\n public static function getDrivers()\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->getDrivers();\n }\n\n /**\n * Get the container instance used by the manager.\n *\n * @return \\Illuminate\\Contracts\\Container\\Container\n * @static\n */\n public static function getContainer()\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->getContainer();\n }\n\n /**\n * Set the container instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Container\\Container $container\n * @return \\Illuminate\\Hashing\\HashManager\n * @static\n */\n public static function setContainer($container)\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->setContainer($container);\n }\n\n /**\n * Forget all of the resolved driver instances.\n *\n * @return \\Illuminate\\Hashing\\HashManager\n * @static\n */\n public static function forgetDrivers()\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->forgetDrivers();\n }\n\n }\n /**\n * @method static \\Illuminate\\Http\\Client\\PendingRequest baseUrl(string $url)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withBody(\\Psr\\Http\\Message\\StreamInterface|string $content, string $contentType = 'application/json')\n * @method static \\Illuminate\\Http\\Client\\PendingRequest asJson()\n * @method static \\Illuminate\\Http\\Client\\PendingRequest asForm()\n * @method static \\Illuminate\\Http\\Client\\PendingRequest attach(string|array $name, string|resource $contents = '', string|null $filename = null, array $headers = [])\n * @method static \\Illuminate\\Http\\Client\\PendingRequest asMultipart()\n * @method static \\Illuminate\\Http\\Client\\PendingRequest bodyFormat(string $format)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withQueryParameters(array $parameters)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest contentType(string $contentType)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest acceptJson()\n * @method static \\Illuminate\\Http\\Client\\PendingRequest accept(string $contentType)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withHeaders(array $headers)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withHeader(string $name, mixed $value)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest replaceHeaders(array $headers)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withBasicAuth(string $username, string $password)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withDigestAuth(string $username, string $password)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withNtlmAuth(string $username, string $password)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withToken(string $token, string $type = 'Bearer')\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withUserAgent(string|bool $userAgent)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withUrlParameters(array $parameters = [])\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withCookies(array $cookies, string $domain)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest maxRedirects(int $max)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withoutRedirecting()\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withoutVerifying()\n * @method static \\Illuminate\\Http\\Client\\PendingRequest sink(string|resource $to)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest timeout(int|float $seconds)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest connectTimeout(int|float $seconds)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest retry(array|int $times, \\Closure|int $sleepMilliseconds = 0, callable|null $when = null, bool $throw = true)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withOptions(array $options)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withMiddleware(callable $middleware)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withRequestMiddleware(callable $middleware)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withResponseMiddleware(callable $middleware)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest beforeSending(callable $callback)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest throw(callable|null $callback = null)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest throwIf(callable|bool $condition)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest throwUnless(callable|bool $condition)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest dump()\n * @method static \\Illuminate\\Http\\Client\\PendingRequest dd()\n * @method static \\Illuminate\\Http\\Client\\Response get(string $url, array|string|null $query = null)\n * @method static \\Illuminate\\Http\\Client\\Response head(string $url, array|string|null $query = null)\n * @method static \\Illuminate\\Http\\Client\\Response post(string $url, array|\\JsonSerializable|\\Illuminate\\Contracts\\Support\\Arrayable $data = [])\n * @method static \\Illuminate\\Http\\Client\\Response patch(string $url, array|\\JsonSerializable|\\Illuminate\\Contracts\\Support\\Arrayable $data = [])\n * @method static \\Illuminate\\Http\\Client\\Response put(string $url, array|\\JsonSerializable|\\Illuminate\\Contracts\\Support\\Arrayable $data = [])\n * @method static \\Illuminate\\Http\\Client\\Response delete(string $url, array|\\JsonSerializable|\\Illuminate\\Contracts\\Support\\Arrayable $data = [])\n * @method static array pool(callable $callback)\n * @method static \\Illuminate\\Http\\Client\\Batch batch(callable $callback)\n * @method static \\Illuminate\\Http\\Client\\Response send(string $method, string $url, array $options = [])\n * @method static \\GuzzleHttp\\Client buildClient()\n * @method static \\GuzzleHttp\\Client createClient(\\GuzzleHttp\\HandlerStack $handlerStack)\n * @method static \\GuzzleHttp\\HandlerStack buildHandlerStack()\n * @method static \\GuzzleHttp\\HandlerStack pushHandlers(\\GuzzleHttp\\HandlerStack $handlerStack)\n * @method static \\Closure buildBeforeSendingHandler()\n * @method static \\Closure buildRecorderHandler()\n * @method static \\Closure buildStubHandler()\n * @method static \\GuzzleHttp\\Psr7\\RequestInterface runBeforeSendingCallbacks(\\GuzzleHttp\\Psr7\\RequestInterface $request, array $options)\n * @method static array mergeOptions(array ...$options)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest stub(callable $callback)\n * @method static bool isAllowedRequestUrl(string $url)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest async(bool $async = true)\n * @method static \\GuzzleHttp\\Promise\\PromiseInterface|null getPromise()\n * @method static \\Illuminate\\Http\\Client\\PendingRequest truncateExceptionsAt(int $length)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest dontTruncateExceptions()\n * @method static \\Illuminate\\Http\\Client\\PendingRequest setClient(\\GuzzleHttp\\Client $client)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest setHandler(callable $handler)\n * @method static array getOptions()\n * @method static \\Illuminate\\Http\\Client\\PendingRequest|mixed when(\\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest|mixed unless(\\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null)\n * @see \\Illuminate\\Http\\Client\\Factory\n */\n class Http {\n /**\n * Add middleware to apply to every request.\n *\n * @param callable $middleware\n * @return \\Illuminate\\Http\\Client\\Factory\n * @static\n */\n public static function globalMiddleware($middleware)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->globalMiddleware($middleware);\n }\n\n /**\n * Add request middleware to apply to every request.\n *\n * @param callable $middleware\n * @return \\Illuminate\\Http\\Client\\Factory\n * @static\n */\n public static function globalRequestMiddleware($middleware)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->globalRequestMiddleware($middleware);\n }\n\n /**\n * Add response middleware to apply to every request.\n *\n * @param callable $middleware\n * @return \\Illuminate\\Http\\Client\\Factory\n * @static\n */\n public static function globalResponseMiddleware($middleware)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->globalResponseMiddleware($middleware);\n }\n\n /**\n * Set the options to apply to every request.\n *\n * @param \\Closure|array $options\n * @return \\Illuminate\\Http\\Client\\Factory\n * @static\n */\n public static function globalOptions($options)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->globalOptions($options);\n }\n\n /**\n * Create a new response instance for use during stubbing.\n *\n * @param array|string|null $body\n * @param int $status\n * @param array $headers\n * @return \\GuzzleHttp\\Promise\\PromiseInterface\n * @static\n */\n public static function response($body = null, $status = 200, $headers = [])\n {\n return \\Illuminate\\Http\\Client\\Factory::response($body, $status, $headers);\n }\n\n /**\n * Create a new PSR-7 response instance for use during stubbing.\n *\n * @param array|string|null $body\n * @param int $status\n * @param array<string, mixed> $headers\n * @return \\GuzzleHttp\\Psr7\\Response\n * @static\n */\n public static function psr7Response($body = null, $status = 200, $headers = [])\n {\n return \\Illuminate\\Http\\Client\\Factory::psr7Response($body, $status, $headers);\n }\n\n /**\n * Create a new RequestException instance for use during stubbing.\n *\n * @param array|string|null $body\n * @param int $status\n * @param array<string, mixed> $headers\n * @return \\Illuminate\\Http\\Client\\RequestException\n * @static\n */\n public static function failedRequest($body = null, $status = 200, $headers = [])\n {\n return \\Illuminate\\Http\\Client\\Factory::failedRequest($body, $status, $headers);\n }\n\n /**\n * Create a new connection exception for use during stubbing.\n *\n * @param string|null $message\n * @return \\Closure(\\Illuminate\\Http\\Client\\Request): \\GuzzleHttp\\Promise\\PromiseInterface\n * @static\n */\n public static function failedConnection($message = null)\n {\n return \\Illuminate\\Http\\Client\\Factory::failedConnection($message);\n }\n\n /**\n * Get an invokable object that returns a sequence of responses in order for use during stubbing.\n *\n * @param array $responses\n * @return \\Illuminate\\Http\\Client\\ResponseSequence\n * @static\n */\n public static function sequence($responses = [])\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->sequence($responses);\n }\n\n /**\n * Register a stub callable that will intercept requests and be able to return stub responses.\n *\n * @param callable|array<string, mixed>|null $callback\n * @return \\Illuminate\\Http\\Client\\Factory\n * @static\n */\n public static function fake($callback = null)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->fake($callback);\n }\n\n /**\n * Register a response sequence for the given URL pattern.\n *\n * @param string $url\n * @return \\Illuminate\\Http\\Client\\ResponseSequence\n * @static\n */\n public static function fakeSequence($url = '*')\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->fakeSequence($url);\n }\n\n /**\n * Stub the given URL using the given callback.\n *\n * @param string $url\n * @param \\Illuminate\\Http\\Client\\Response|\\GuzzleHttp\\Promise\\PromiseInterface|callable|int|string|array|\\Illuminate\\Http\\Client\\ResponseSequence $callback\n * @return \\Illuminate\\Http\\Client\\Factory\n * @static\n */\n public static function stubUrl($url, $callback)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->stubUrl($url, $callback);\n }\n\n /**\n * Indicate that an exception should be thrown if any request is not faked.\n *\n * @param bool $prevent\n * @return \\Illuminate\\Http\\Client\\Factory\n * @static\n */\n public static function preventStrayRequests($prevent = true)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->preventStrayRequests($prevent);\n }\n\n /**\n * Determine if stray requests are being prevented.\n *\n * @return bool\n * @static\n */\n public static function preventingStrayRequests()\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->preventingStrayRequests();\n }\n\n /**\n * Allow stray, unfaked requests entirely, or optionally allow only specific URLs.\n *\n * @param array<int, string>|null $only\n * @return \\Illuminate\\Http\\Client\\Factory\n * @static\n */\n public static function allowStrayRequests($only = null)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->allowStrayRequests($only);\n }\n\n /**\n * Begin recording request / response pairs.\n *\n * @return \\Illuminate\\Http\\Client\\Factory\n * @static\n */\n public static function record()\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->record();\n }\n\n /**\n * Record a request response pair.\n *\n * @param \\Illuminate\\Http\\Client\\Request $request\n * @param \\Illuminate\\Http\\Client\\Response|null $response\n * @return void\n * @static\n */\n public static function recordRequestResponsePair($request, $response)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n $instance->recordRequestResponsePair($request, $response);\n }\n\n /**\n * Assert that a request / response pair was recorded matching a given truth test.\n *\n * @param callable|(\\Closure(\\Illuminate\\Http\\Client\\Request, \\Illuminate\\Http\\Client\\Response|null): bool) $callback\n * @return void\n * @static\n */\n public static function assertSent($callback)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n $instance->assertSent($callback);\n }\n\n /**\n * Assert that the given request was sent in the given order.\n *\n * @param list<string|(\\Closure(\\Illuminate\\Http\\Client\\Request, \\Illuminate\\Http\\Client\\Response|null): bool)|callable> $callbacks\n * @return void\n * @static\n */\n public static function assertSentInOrder($callbacks)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n $instance->assertSentInOrder($callbacks);\n }\n\n /**\n * Assert that a request / response pair was not recorded matching a given truth test.\n *\n * @param callable|(\\Closure(\\Illuminate\\Http\\Client\\Request, \\Illuminate\\Http\\Client\\Response|null): bool) $callback\n * @return void\n * @static\n */\n public static function assertNotSent($callback)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n $instance->assertNotSent($callback);\n }\n\n /**\n * Assert that no request / response pair was recorded.\n *\n * @return void\n * @static\n */\n public static function assertNothingSent()\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n $instance->assertNothingSent();\n }\n\n /**\n * Assert how many requests have been recorded.\n *\n * @param int $count\n * @return void\n * @static\n */\n public static function assertSentCount($count)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n $instance->assertSentCount($count);\n }\n\n /**\n * Assert that every created response sequence is empty.\n *\n * @return void\n * @static\n */\n public static function assertSequencesAreEmpty()\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n $instance->assertSequencesAreEmpty();\n }\n\n /**\n * Get a collection of the request / response pairs matching the given truth test.\n *\n * @param (\\Closure(\\Illuminate\\Http\\Client\\Request, \\Illuminate\\Http\\Client\\Response|null): bool)|callable $callback\n * @return \\Illuminate\\Support\\Collection<int, array{0: \\Illuminate\\Http\\Client\\Request, 1: \\Illuminate\\Http\\Client\\Response|null}>\n * @static\n */\n public static function recorded($callback = null)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->recorded($callback);\n }\n\n /**\n * Create a new pending request instance for this factory.\n *\n * @return \\Illuminate\\Http\\Client\\PendingRequest\n * @static\n */\n public static function createPendingRequest()\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->createPendingRequest();\n }\n\n /**\n * Get the current event dispatcher implementation.\n *\n * @return \\Illuminate\\Contracts\\Events\\Dispatcher|null\n * @static\n */\n public static function getDispatcher()\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->getDispatcher();\n }\n\n /**\n * Get the array of global middleware.\n *\n * @return array\n * @static\n */\n public static function getGlobalMiddleware()\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->getGlobalMiddleware();\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Http\\Client\\Factory::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Http\\Client\\Factory::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Http\\Client\\Factory::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Http\\Client\\Factory::flushMacros();\n }\n\n /**\n * Dynamically handle calls to the class.\n *\n * @param string $method\n * @param array $parameters\n * @return mixed\n * @throws \\BadMethodCallException\n * @static\n */\n public static function macroCall($method, $parameters)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->macroCall($method, $parameters);\n }\n\n /**\n * @see \\Jiminny\\Providers\\PlanhatServiceProvider::register()\n * @return \\Illuminate\\Http\\Client\\PendingRequest\n * @static\n */\n public static function planhatApi()\n {\n return \\Illuminate\\Http\\Client\\Factory::planhatApi();\n }\n\n /**\n * @see \\Jiminny\\Providers\\PlanhatServiceProvider::register()\n * @return \\Illuminate\\Http\\Client\\PendingRequest\n * @static\n */\n public static function planhatAnalyticsApi()\n {\n return \\Illuminate\\Http\\Client\\Factory::planhatAnalyticsApi();\n }\n\n }\n /**\n * @see \\Illuminate\\Translation\\Translator\n */\n class Lang {\n /**\n * Determine if a translation exists for a given locale.\n *\n * @param string $key\n * @param string|null $locale\n * @return bool\n * @static\n */\n public static function hasForLocale($key, $locale = null)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->hasForLocale($key, $locale);\n }\n\n /**\n * Determine if a translation exists.\n *\n * @param string $key\n * @param string|null $locale\n * @param bool $fallback\n * @return bool\n * @static\n */\n public static function has($key, $locale = null, $fallback = true)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->has($key, $locale, $fallback);\n }\n\n /**\n * Get the translation for the given key.\n *\n * @param string $key\n * @param array $replace\n * @param string|null $locale\n * @param bool $fallback\n * @return string|array\n * @static\n */\n public static function get($key, $replace = [], $locale = null, $fallback = true)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->get($key, $replace, $locale, $fallback);\n }\n\n /**\n * Get a translation according to an integer value.\n *\n * @param string $key\n * @param \\Countable|int|float|array $number\n * @param array $replace\n * @param string|null $locale\n * @return string\n * @static\n */\n public static function choice($key, $number, $replace = [], $locale = null)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->choice($key, $number, $replace, $locale);\n }\n\n /**\n * Add translation lines to the given locale.\n *\n * @param array $lines\n * @param string $locale\n * @param string $namespace\n * @return void\n * @static\n */\n public static function addLines($lines, $locale, $namespace = '*')\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->addLines($lines, $locale, $namespace);\n }\n\n /**\n * Load the specified language group.\n *\n * @param string $namespace\n * @param string $group\n * @param string $locale\n * @return void\n * @static\n */\n public static function load($namespace, $group, $locale)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->load($namespace, $group, $locale);\n }\n\n /**\n * Register a callback that is responsible for handling missing translation keys.\n *\n * @param callable|null $callback\n * @return static\n * @static\n */\n public static function handleMissingKeysUsing($callback)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->handleMissingKeysUsing($callback);\n }\n\n /**\n * Add a new namespace to the loader.\n *\n * @param string $namespace\n * @param string $hint\n * @return void\n * @static\n */\n public static function addNamespace($namespace, $hint)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->addNamespace($namespace, $hint);\n }\n\n /**\n * Add a new path to the loader.\n *\n * @param string $path\n * @return void\n * @static\n */\n public static function addPath($path)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->addPath($path);\n }\n\n /**\n * Add a new JSON path to the loader.\n *\n * @param string $path\n * @return void\n * @static\n */\n public static function addJsonPath($path)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->addJsonPath($path);\n }\n\n /**\n * Parse a key into namespace, group, and item.\n *\n * @param string $key\n * @return array\n * @static\n */\n public static function parseKey($key)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->parseKey($key);\n }\n\n /**\n * Specify a callback that should be invoked to determined the applicable locale array.\n *\n * @param callable $callback\n * @return void\n * @static\n */\n public static function determineLocalesUsing($callback)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->determineLocalesUsing($callback);\n }\n\n /**\n * Get the message selector instance.\n *\n * @return \\Illuminate\\Translation\\MessageSelector\n * @static\n */\n public static function getSelector()\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->getSelector();\n }\n\n /**\n * Set the message selector instance.\n *\n * @param \\Illuminate\\Translation\\MessageSelector $selector\n * @return void\n * @static\n */\n public static function setSelector($selector)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->setSelector($selector);\n }\n\n /**\n * Get the language line loader implementation.\n *\n * @return \\Illuminate\\Contracts\\Translation\\Loader\n * @static\n */\n public static function getLoader()\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->getLoader();\n }\n\n /**\n * Get the default locale being used.\n *\n * @return string\n * @static\n */\n public static function locale()\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->locale();\n }\n\n /**\n * Get the default locale being used.\n *\n * @return string\n * @static\n */\n public static function getLocale()\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->getLocale();\n }\n\n /**\n * Set the default locale.\n *\n * @param string $locale\n * @return void\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function setLocale($locale)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->setLocale($locale);\n }\n\n /**\n * Get the fallback locale being used.\n *\n * @return string\n * @static\n */\n public static function getFallback()\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->getFallback();\n }\n\n /**\n * Set the fallback locale being used.\n *\n * @param string $fallback\n * @return void\n * @static\n */\n public static function setFallback($fallback)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->setFallback($fallback);\n }\n\n /**\n * Set the loaded translation groups.\n *\n * @param array $loaded\n * @return void\n * @static\n */\n public static function setLoaded($loaded)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->setLoaded($loaded);\n }\n\n /**\n * Add a handler to be executed in order to format a given class to a string during translation replacements.\n *\n * @param callable|string $class\n * @param callable|null $handler\n * @return void\n * @static\n */\n public static function stringable($class, $handler = null)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->stringable($class, $handler);\n }\n\n /**\n * Set the parsed value of a key.\n *\n * @param string $key\n * @param array $parsed\n * @return void\n * @static\n */\n public static function setParsedKey($key, $parsed)\n {\n //Method inherited from \\Illuminate\\Support\\NamespacedItemResolver \n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->setParsedKey($key, $parsed);\n }\n\n /**\n * Flush the cache of parsed keys.\n *\n * @return void\n * @static\n */\n public static function flushParsedKeys()\n {\n //Method inherited from \\Illuminate\\Support\\NamespacedItemResolver \n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->flushParsedKeys();\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Translation\\Translator::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Translation\\Translator::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Translation\\Translator::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Translation\\Translator::flushMacros();\n }\n\n }\n /**\n * @method static void write(string $level, \\Illuminate\\Contracts\\Support\\Arrayable|\\Illuminate\\Contracts\\Support\\Jsonable|\\Illuminate\\Support\\Stringable|array|string $message, array $context = [])\n * @method static \\Illuminate\\Log\\Logger withContext(array $context = [])\n * @method static void listen(\\Closure $callback)\n * @method static \\Psr\\Log\\LoggerInterface getLogger()\n * @method static \\Illuminate\\Contracts\\Events\\Dispatcher getEventDispatcher()\n * @method static void setEventDispatcher(\\Illuminate\\Contracts\\Events\\Dispatcher $dispatcher)\n * @method static \\Illuminate\\Log\\Logger|mixed when(\\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null)\n * @method static \\Illuminate\\Log\\Logger|mixed unless(\\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null)\n * @see \\Illuminate\\Log\\LogManager\n */\n class Log {\n /**\n * Build an on-demand log channel.\n *\n * @param array $config\n * @return \\Psr\\Log\\LoggerInterface\n * @static\n */\n public static function build($config)\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->build($config);\n }\n\n /**\n * Create a new, on-demand aggregate logger instance.\n *\n * @param array $channels\n * @param string|null $channel\n * @return \\Psr\\Log\\LoggerInterface\n * @static\n */\n public static function stack($channels, $channel = null)\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->stack($channels, $channel);\n }\n\n /**\n * Get a log channel instance.\n *\n * @param string|null $channel\n * @return \\Psr\\Log\\LoggerInterface\n * @static\n */\n public static function channel($channel = null)\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->channel($channel);\n }\n\n /**\n * Get a log driver instance.\n *\n * @param string|null $driver\n * @return \\Psr\\Log\\LoggerInterface\n * @static\n */\n public static function driver($driver = null)\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->driver($driver);\n }\n\n /**\n * Share context across channels and stacks.\n *\n * @param array $context\n * @return \\Illuminate\\Log\\LogManager\n * @static\n */\n public static function shareContext($context)\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->shareContext($context);\n }\n\n /**\n * The context shared across channels and stacks.\n *\n * @return array\n * @static\n */\n public static function sharedContext()\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->sharedContext();\n }\n\n /**\n * Flush the log context on all currently resolved channels.\n *\n * @param string[]|null $keys\n * @return \\Illuminate\\Log\\LogManager\n * @static\n */\n public static function withoutContext($keys = null)\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->withoutContext($keys);\n }\n\n /**\n * Flush the shared context.\n *\n * @return \\Illuminate\\Log\\LogManager\n * @static\n */\n public static function flushSharedContext()\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->flushSharedContext();\n }\n\n /**\n * Get the default log driver name.\n *\n * @return string|null\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Set the default log driver name.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultDriver($name)\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->setDefaultDriver($name);\n }\n\n /**\n * Register a custom driver creator Closure.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @param-closure-this $this $callback\n * @return \\Illuminate\\Log\\LogManager\n * @static\n */\n public static function extend($driver, $callback)\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->extend($driver, $callback);\n }\n\n /**\n * Unset the given channel instance.\n *\n * @param string|null $driver\n * @return void\n * @static\n */\n public static function forgetChannel($driver = null)\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->forgetChannel($driver);\n }\n\n /**\n * Get all of the resolved log channels.\n *\n * @return array\n * @static\n */\n public static function getChannels()\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->getChannels();\n }\n\n /**\n * System is unusable.\n *\n * @param string|\\Stringable $message\n * @param array $context\n * @return void\n * @static\n */\n public static function emergency($message, $context = [])\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->emergency($message, $context);\n }\n\n /**\n * Action must be taken immediately.\n * \n * Example: Entire website down, database unavailable, etc. This should\n * trigger the SMS alerts and wake you up.\n *\n * @param string|\\Stringable $message\n * @param array $context\n * @return void\n * @static\n */\n public static function alert($message, $context = [])\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->alert($message, $context);\n }\n\n /**\n * Critical conditions.\n * \n * Example: Application component unavailable, unexpected exception.\n *\n * @param string|\\Stringable $message\n * @param array $context\n * @return void\n * @static\n */\n public static function critical($message, $context = [])\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->critical($message, $context);\n }\n\n /**\n * Runtime errors that do not require immediate action but should typically\n * be logged and monitored.\n *\n * @param string|\\Stringable $message\n * @param array $context\n * @return void\n * @static\n */\n public static function error($message, $context = [])\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->error($message, $context);\n }\n\n /**\n * Exceptional occurrences that are not errors.\n * \n * Example: Use of deprecated APIs, poor use of an API, undesirable things\n * that are not necessarily wrong.\n *\n * @param string|\\Stringable $message\n * @param array $context\n * @return void\n * @static\n */\n public static function warning($message, $context = [])\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->warning($message, $context);\n }\n\n /**\n * Normal but significant events.\n *\n * @param string|\\Stringable $message\n * @param array $context\n * @return void\n * @static\n */\n public static function notice($message, $context = [])\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->notice($message, $context);\n }\n\n /**\n * Interesting events.\n * \n * Example: User logs in, SQL logs.\n *\n * @param string|\\Stringable $message\n * @param array $context\n * @return void\n * @static\n */\n public static function info($message, $context = [])\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->info($message, $context);\n }\n\n /**\n * Detailed debug information.\n *\n * @param string|\\Stringable $message\n * @param array $context\n * @return void\n * @static\n */\n public static function debug($message, $context = [])\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->debug($message, $context);\n }\n\n /**\n * Logs with an arbitrary level.\n *\n * @param mixed $level\n * @param string|\\Stringable $message\n * @param array $context\n * @return void\n * @static\n */\n public static function log($level, $message, $context = [])\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->log($level, $message, $context);\n }\n\n /**\n * Set the application instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Foundation\\Application $app\n * @return \\Illuminate\\Log\\LogManager\n * @static\n */\n public static function setApplication($app)\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->setApplication($app);\n }\n\n }\n /**\n * @method static void alwaysFrom(string $address, string|null $name = null)\n * @method static void alwaysReplyTo(string $address, string|null $name = null)\n * @method static void alwaysReturnPath(string $address)\n * @method static void alwaysTo(string $address, string|null $name = null)\n * @method static \\Illuminate\\Mail\\SentMessage|null html(string $html, mixed $callback)\n * @method static \\Illuminate\\Mail\\SentMessage|null plain(string $view, array $data, mixed $callback)\n * @method static string render(string|array $view, array $data = [])\n * @method static mixed onQueue(\\BackedEnum|string|null $queue, \\Illuminate\\Contracts\\Mail\\Mailable $view)\n * @method static mixed queueOn(string $queue, \\Illuminate\\Contracts\\Mail\\Mailable $view)\n * @method static mixed laterOn(string $queue, \\DateTimeInterface|\\DateInterval|int $delay, \\Illuminate\\Contracts\\Mail\\Mailable $view)\n * @method static \\Symfony\\Component\\Mailer\\Transport\\TransportInterface getSymfonyTransport()\n * @method static \\Illuminate\\Contracts\\View\\Factory getViewFactory()\n * @method static void setSymfonyTransport(\\Symfony\\Component\\Mailer\\Transport\\TransportInterface $transport)\n * @method static \\Illuminate\\Mail\\Mailer setQueue(\\Illuminate\\Contracts\\Queue\\Factory $queue)\n * @method static void macro(string $name, object|callable $macro)\n * @method static void mixin(object $mixin, bool $replace = true)\n * @method static bool hasMacro(string $name)\n * @method static void flushMacros()\n * @see \\Illuminate\\Mail\\MailManager\n * @see \\Illuminate\\Support\\Testing\\Fakes\\MailFake\n */\n class Mail {\n /**\n * Get a mailer instance by name.\n *\n * @param string|null $name\n * @return \\Illuminate\\Contracts\\Mail\\Mailer\n * @static\n */\n public static function mailer($name = null)\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n return $instance->mailer($name);\n }\n\n /**\n * Get a mailer driver instance.\n *\n * @param string|null $driver\n * @return \\Illuminate\\Mail\\Mailer\n * @static\n */\n public static function driver($driver = null)\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n return $instance->driver($driver);\n }\n\n /**\n * Build a new mailer instance.\n *\n * @param array $config\n * @return \\Illuminate\\Mail\\Mailer\n * @static\n */\n public static function build($config)\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n return $instance->build($config);\n }\n\n /**\n * Create a new transport instance.\n *\n * @param array $config\n * @return \\Symfony\\Component\\Mailer\\Transport\\TransportInterface\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function createSymfonyTransport($config)\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n return $instance->createSymfonyTransport($config);\n }\n\n /**\n * Get the default mail driver name.\n *\n * @return string\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Set the default mail driver name.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultDriver($name)\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n $instance->setDefaultDriver($name);\n }\n\n /**\n * Disconnect the given mailer and remove from local cache.\n *\n * @param string|null $name\n * @return void\n * @static\n */\n public static function purge($name = null)\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n $instance->purge($name);\n }\n\n /**\n * Register a custom transport creator Closure.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @return \\Illuminate\\Mail\\MailManager\n * @static\n */\n public static function extend($driver, $callback)\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n return $instance->extend($driver, $callback);\n }\n\n /**\n * Get the application instance used by the manager.\n *\n * @return \\Illuminate\\Contracts\\Foundation\\Application\n * @static\n */\n public static function getApplication()\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n return $instance->getApplication();\n }\n\n /**\n * Set the application instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Foundation\\Application $app\n * @return \\Illuminate\\Mail\\MailManager\n * @static\n */\n public static function setApplication($app)\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n return $instance->setApplication($app);\n }\n\n /**\n * Forget all of the resolved mailer instances.\n *\n * @return \\Illuminate\\Mail\\MailManager\n * @static\n */\n public static function forgetMailers()\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n return $instance->forgetMailers();\n }\n\n /**\n * Assert if a mailable was sent based on a truth-test callback.\n *\n * @param string|\\Closure $mailable\n * @param callable|array|string|int|null $callback\n * @return void\n * @static\n */\n public static function assertSent($mailable, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertSent($mailable, $callback);\n }\n\n /**\n * Determine if a mailable was not sent or queued to be sent based on a truth-test callback.\n *\n * @param string|\\Closure $mailable\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertNotOutgoing($mailable, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertNotOutgoing($mailable, $callback);\n }\n\n /**\n * Determine if a mailable was not sent based on a truth-test callback.\n *\n * @param string|\\Closure $mailable\n * @param callable|array|string|null $callback\n * @return void\n * @static\n */\n public static function assertNotSent($mailable, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertNotSent($mailable, $callback);\n }\n\n /**\n * Assert that no mailables were sent or queued to be sent.\n *\n * @return void\n * @static\n */\n public static function assertNothingOutgoing()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertNothingOutgoing();\n }\n\n /**\n * Assert that no mailables were sent.\n *\n * @return void\n * @static\n */\n public static function assertNothingSent()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertNothingSent();\n }\n\n /**\n * Assert if a mailable was queued based on a truth-test callback.\n *\n * @param string|\\Closure $mailable\n * @param callable|array|string|int|null $callback\n * @return void\n * @static\n */\n public static function assertQueued($mailable, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertQueued($mailable, $callback);\n }\n\n /**\n * Determine if a mailable was not queued based on a truth-test callback.\n *\n * @param string|\\Closure $mailable\n * @param callable|array|string|null $callback\n * @return void\n * @static\n */\n public static function assertNotQueued($mailable, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertNotQueued($mailable, $callback);\n }\n\n /**\n * Assert that no mailables were queued.\n *\n * @return void\n * @static\n */\n public static function assertNothingQueued()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertNothingQueued();\n }\n\n /**\n * Assert the total number of mailables that were sent.\n *\n * @param int $count\n * @return void\n * @static\n */\n public static function assertSentCount($count)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertSentCount($count);\n }\n\n /**\n * Assert the total number of mailables that were queued.\n *\n * @param int $count\n * @return void\n * @static\n */\n public static function assertQueuedCount($count)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertQueuedCount($count);\n }\n\n /**\n * Assert the total number of mailables that were sent or queued.\n *\n * @param int $count\n * @return void\n * @static\n */\n public static function assertOutgoingCount($count)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertOutgoingCount($count);\n }\n\n /**\n * Get all of the mailables matching a truth-test callback.\n *\n * @param string|\\Closure $mailable\n * @param callable|null $callback\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function sent($mailable, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n return $instance->sent($mailable, $callback);\n }\n\n /**\n * Determine if the given mailable has been sent.\n *\n * @param string $mailable\n * @return bool\n * @static\n */\n public static function hasSent($mailable)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n return $instance->hasSent($mailable);\n }\n\n /**\n * Get all of the queued mailables matching a truth-test callback.\n *\n * @param string|\\Closure $mailable\n * @param callable|null $callback\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function queued($mailable, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n return $instance->queued($mailable, $callback);\n }\n\n /**\n * Determine if the given mailable has been queued.\n *\n * @param string $mailable\n * @return bool\n * @static\n */\n public static function hasQueued($mailable)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n return $instance->hasQueued($mailable);\n }\n\n /**\n * Begin the process of mailing a mailable class instance.\n *\n * @param mixed $users\n * @return \\Illuminate\\Mail\\PendingMail\n * @static\n */\n public static function to($users)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n return $instance->to($users);\n }\n\n /**\n * Begin the process of mailing a mailable class instance.\n *\n * @param mixed $users\n * @return \\Illuminate\\Mail\\PendingMail\n * @static\n */\n public static function cc($users)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n return $instance->cc($users);\n }\n\n /**\n * Begin the process of mailing a mailable class instance.\n *\n * @param mixed $users\n * @return \\Illuminate\\Mail\\PendingMail\n * @static\n */\n public static function bcc($users)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n return $instance->bcc($users);\n }\n\n /**\n * Send a new message with only a raw text part.\n *\n * @param string $text\n * @param \\Closure|string $callback\n * @return void\n * @static\n */\n public static function raw($text, $callback)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->raw($text, $callback);\n }\n\n /**\n * Send a new message using a view.\n *\n * @param \\Illuminate\\Contracts\\Mail\\Mailable|string|array $view\n * @param array $data\n * @param \\Closure|string|null $callback\n * @return mixed|void\n * @static\n */\n public static function send($view, $data = [], $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n return $instance->send($view, $data, $callback);\n }\n\n /**\n * Send a new message synchronously using a view.\n *\n * @param \\Illuminate\\Contracts\\Mail\\Mailable|string|array $mailable\n * @param array $data\n * @param \\Closure|string|null $callback\n * @return void\n * @static\n */\n public static function sendNow($mailable, $data = [], $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->sendNow($mailable, $data, $callback);\n }\n\n /**\n * Queue a new message for sending.\n *\n * @param \\Illuminate\\Contracts\\Mail\\Mailable|string|array $view\n * @param string|null $queue\n * @return mixed\n * @static\n */\n public static function queue($view, $queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n return $instance->queue($view, $queue);\n }\n\n /**\n * Queue a new e-mail message for sending after (n) seconds.\n *\n * @param \\DateTimeInterface|\\DateInterval|int $delay\n * @param \\Illuminate\\Contracts\\Mail\\Mailable|string|array $view\n * @param string|null $queue\n * @return mixed\n * @static\n */\n public static function later($delay, $view, $queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n return $instance->later($delay, $view, $queue);\n }\n\n }\n /**\n * @see \\Illuminate\\Notifications\\ChannelManager\n * @see \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake\n */\n class Notification {\n /**\n * Send the given notification to the given notifiable entities.\n *\n * @param \\Illuminate\\Support\\Collection|mixed $notifiables\n * @param mixed $notification\n * @return void\n * @static\n */\n public static function send($notifiables, $notification)\n {\n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n $instance->send($notifiables, $notification);\n }\n\n /**\n * Send the given notification immediately.\n *\n * @param \\Illuminate\\Support\\Collection|mixed $notifiables\n * @param mixed $notification\n * @param array|null $channels\n * @return void\n * @static\n */\n public static function sendNow($notifiables, $notification, $channels = null)\n {\n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n $instance->sendNow($notifiables, $notification, $channels);\n }\n\n /**\n * Get a channel instance.\n *\n * @param string|null $name\n * @return mixed\n * @static\n */\n public static function channel($name = null)\n {\n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n return $instance->channel($name);\n }\n\n /**\n * Get the default channel driver name.\n *\n * @return string\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Get the default channel driver name.\n *\n * @return string\n * @static\n */\n public static function deliversVia()\n {\n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n return $instance->deliversVia();\n }\n\n /**\n * Set the default channel driver name.\n *\n * @param string $channel\n * @return void\n * @static\n */\n public static function deliverVia($channel)\n {\n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n $instance->deliverVia($channel);\n }\n\n /**\n * Set the locale of notifications.\n *\n * @param string $locale\n * @return \\Illuminate\\Notifications\\ChannelManager\n * @static\n */\n public static function locale($locale)\n {\n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n return $instance->locale($locale);\n }\n\n /**\n * Get a driver instance.\n *\n * @param string|null $driver\n * @return mixed\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function driver($driver = null)\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n return $instance->driver($driver);\n }\n\n /**\n * Register a custom driver creator Closure.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @return \\Illuminate\\Notifications\\ChannelManager\n * @static\n */\n public static function extend($driver, $callback)\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n return $instance->extend($driver, $callback);\n }\n\n /**\n * Get all of the created \"drivers\".\n *\n * @return array\n * @static\n */\n public static function getDrivers()\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n return $instance->getDrivers();\n }\n\n /**\n * Get the container instance used by the manager.\n *\n * @return \\Illuminate\\Contracts\\Container\\Container\n * @static\n */\n public static function getContainer()\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n return $instance->getContainer();\n }\n\n /**\n * Set the container instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Container\\Container $container\n * @return \\Illuminate\\Notifications\\ChannelManager\n * @static\n */\n public static function setContainer($container)\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n return $instance->setContainer($container);\n }\n\n /**\n * Forget all of the resolved driver instances.\n *\n * @return \\Illuminate\\Notifications\\ChannelManager\n * @static\n */\n public static function forgetDrivers()\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n return $instance->forgetDrivers();\n }\n\n /**\n * Assert if a notification was sent on-demand based on a truth-test callback.\n *\n * @param string|\\Closure $notification\n * @param callable|null $callback\n * @return void\n * @throws \\Exception\n * @static\n */\n public static function assertSentOnDemand($notification, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n $instance->assertSentOnDemand($notification, $callback);\n }\n\n /**\n * Assert if a notification was sent based on a truth-test callback.\n *\n * @param mixed $notifiable\n * @param string|\\Closure $notification\n * @param callable|null $callback\n * @return void\n * @throws \\Exception\n * @static\n */\n public static function assertSentTo($notifiable, $notification, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n $instance->assertSentTo($notifiable, $notification, $callback);\n }\n\n /**\n * Assert if a notification was sent on-demand a number of times.\n *\n * @param string $notification\n * @param int $times\n * @return void\n * @static\n */\n public static function assertSentOnDemandTimes($notification, $times = 1)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n $instance->assertSentOnDemandTimes($notification, $times);\n }\n\n /**\n * Assert if a notification was sent a number of times.\n *\n * @param mixed $notifiable\n * @param string $notification\n * @param int $times\n * @return void\n * @static\n */\n public static function assertSentToTimes($notifiable, $notification, $times = 1)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n $instance->assertSentToTimes($notifiable, $notification, $times);\n }\n\n /**\n * Determine if a notification was sent based on a truth-test callback.\n *\n * @param mixed $notifiable\n * @param string|\\Closure $notification\n * @param callable|null $callback\n * @return void\n * @throws \\Exception\n * @static\n */\n public static function assertNotSentTo($notifiable, $notification, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n $instance->assertNotSentTo($notifiable, $notification, $callback);\n }\n\n /**\n * Assert that no notifications were sent.\n *\n * @return void\n * @static\n */\n public static function assertNothingSent()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n $instance->assertNothingSent();\n }\n\n /**\n * Assert that no notifications were sent to the given notifiable.\n *\n * @param mixed $notifiable\n * @return void\n * @throws \\Exception\n * @static\n */\n public static function assertNothingSentTo($notifiable)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n $instance->assertNothingSentTo($notifiable);\n }\n\n /**\n * Assert the total amount of times a notification was sent.\n *\n * @param string $notification\n * @param int $expectedCount\n * @return void\n * @static\n */\n public static function assertSentTimes($notification, $expectedCount)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n $instance->assertSentTimes($notification, $expectedCount);\n }\n\n /**\n * Assert the total count of notification that were sent.\n *\n * @param int $expectedCount\n * @return void\n * @static\n */\n public static function assertCount($expectedCount)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n $instance->assertCount($expectedCount);\n }\n\n /**\n * Get all of the notifications matching a truth-test callback.\n *\n * @param mixed $notifiable\n * @param string $notification\n * @param callable|null $callback\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function sent($notifiable, $notification, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n return $instance->sent($notifiable, $notification, $callback);\n }\n\n /**\n * Determine if there are more notifications left to inspect.\n *\n * @param mixed $notifiable\n * @param string $notification\n * @return bool\n * @static\n */\n public static function hasSent($notifiable, $notification)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n return $instance->hasSent($notifiable, $notification);\n }\n\n /**\n * Specify if notification should be serialized and restored when being \"pushed\" to the queue.\n *\n * @param bool $serializeAndRestore\n * @return \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake\n * @static\n */\n public static function serializeAndRestore($serializeAndRestore = true)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n return $instance->serializeAndRestore($serializeAndRestore);\n }\n\n /**\n * Get the notifications that have been sent.\n *\n * @return array\n * @static\n */\n public static function sentNotifications()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n return $instance->sentNotifications();\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake::flushMacros();\n }\n\n }\n /**\n * @method static string sendResetLink(array $credentials, \\Closure|null $callback = null)\n * @method static mixed reset(array $credentials, \\Closure $callback)\n * @method static \\Illuminate\\Contracts\\Auth\\CanResetPassword|null getUser(array $credentials)\n * @method static string createToken(\\Illuminate\\Contracts\\Auth\\CanResetPassword $user)\n * @method static void deleteToken(\\Illuminate\\Contracts\\Auth\\CanResetPassword $user)\n * @method static bool tokenExists(\\Illuminate\\Contracts\\Auth\\CanResetPassword $user, string $token)\n * @method static \\Illuminate\\Auth\\Passwords\\TokenRepositoryInterface getRepository()\n * @method static \\Illuminate\\Support\\Timebox getTimebox()\n * @see \\Illuminate\\Auth\\Passwords\\PasswordBrokerManager\n * @see \\Illuminate\\Auth\\Passwords\\PasswordBroker\n */\n class Password {\n /**\n * Attempt to get the broker from the local cache.\n *\n * @param string|null $name\n * @return \\Illuminate\\Contracts\\Auth\\PasswordBroker\n * @static\n */\n public static function broker($name = null)\n {\n /** @var \\Illuminate\\Auth\\Passwords\\PasswordBrokerManager $instance */\n return $instance->broker($name);\n }\n\n /**\n * Get the default password broker name.\n *\n * @return string\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Auth\\Passwords\\PasswordBrokerManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Set the default password broker name.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultDriver($name)\n {\n /** @var \\Illuminate\\Auth\\Passwords\\PasswordBrokerManager $instance */\n $instance->setDefaultDriver($name);\n }\n\n }\n /**\n * @method static \\Illuminate\\Process\\PendingProcess command(array|string $command)\n * @method static \\Illuminate\\Process\\PendingProcess path(string $path)\n * @method static \\Illuminate\\Process\\PendingProcess timeout(int $timeout)\n * @method static \\Illuminate\\Process\\PendingProcess idleTimeout(int $timeout)\n * @method static \\Illuminate\\Process\\PendingProcess forever()\n * @method static \\Illuminate\\Process\\PendingProcess env(array $environment)\n * @method static \\Illuminate\\Process\\PendingProcess input(\\Traversable|resource|string|int|float|bool|null $input)\n * @method static \\Illuminate\\Process\\PendingProcess quietly()\n * @method static \\Illuminate\\Process\\PendingProcess tty(bool $tty = true)\n * @method static \\Illuminate\\Process\\PendingProcess options(array $options)\n * @method static \\Illuminate\\Contracts\\Process\\ProcessResult run(array|string|null $command = null, callable|null $output = null)\n * @method static \\Illuminate\\Process\\InvokedProcess start(array|string|null $command = null, callable|null $output = null)\n * @method static bool supportsTty()\n * @method static \\Illuminate\\Process\\PendingProcess withFakeHandlers(array $fakeHandlers)\n * @method static \\Illuminate\\Process\\PendingProcess|mixed when(\\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null)\n * @method static \\Illuminate\\Process\\PendingProcess|mixed unless(\\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null)\n * @see \\Illuminate\\Process\\PendingProcess\n * @see \\Illuminate\\Process\\Factory\n */\n class Process {\n /**\n * Create a new fake process response for testing purposes.\n *\n * @param array|string $output\n * @param array|string $errorOutput\n * @param int $exitCode\n * @return \\Illuminate\\Process\\FakeProcessResult\n * @static\n */\n public static function result($output = '', $errorOutput = '', $exitCode = 0)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->result($output, $errorOutput, $exitCode);\n }\n\n /**\n * Begin describing a fake process lifecycle.\n *\n * @return \\Illuminate\\Process\\FakeProcessDescription\n * @static\n */\n public static function describe()\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->describe();\n }\n\n /**\n * Begin describing a fake process sequence.\n *\n * @param array $processes\n * @return \\Illuminate\\Process\\FakeProcessSequence\n * @static\n */\n public static function sequence($processes = [])\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->sequence($processes);\n }\n\n /**\n * Indicate that the process factory should fake processes.\n *\n * @param \\Closure|array|null $callback\n * @return \\Illuminate\\Process\\Factory\n * @static\n */\n public static function fake($callback = null)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->fake($callback);\n }\n\n /**\n * Determine if the process factory has fake process handlers and is recording processes.\n *\n * @return bool\n * @static\n */\n public static function isRecording()\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->isRecording();\n }\n\n /**\n * Record the given process if processes should be recorded.\n *\n * @param \\Illuminate\\Process\\PendingProcess $process\n * @param \\Illuminate\\Contracts\\Process\\ProcessResult $result\n * @return \\Illuminate\\Process\\Factory\n * @static\n */\n public static function recordIfRecording($process, $result)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->recordIfRecording($process, $result);\n }\n\n /**\n * Record the given process.\n *\n * @param \\Illuminate\\Process\\PendingProcess $process\n * @param \\Illuminate\\Contracts\\Process\\ProcessResult $result\n * @return \\Illuminate\\Process\\Factory\n * @static\n */\n public static function record($process, $result)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->record($process, $result);\n }\n\n /**\n * Indicate that an exception should be thrown if any process is not faked.\n *\n * @param bool $prevent\n * @return \\Illuminate\\Process\\Factory\n * @static\n */\n public static function preventStrayProcesses($prevent = true)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->preventStrayProcesses($prevent);\n }\n\n /**\n * Determine if stray processes are being prevented.\n *\n * @return bool\n * @static\n */\n public static function preventingStrayProcesses()\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->preventingStrayProcesses();\n }\n\n /**\n * Assert that a process was recorded matching a given truth test.\n *\n * @param \\Closure|string $callback\n * @return \\Illuminate\\Process\\Factory\n * @static\n */\n public static function assertRan($callback)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->assertRan($callback);\n }\n\n /**\n * Assert that a process was recorded a given number of times matching a given truth test.\n *\n * @param \\Closure|string $callback\n * @param int $times\n * @return \\Illuminate\\Process\\Factory\n * @static\n */\n public static function assertRanTimes($callback, $times = 1)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->assertRanTimes($callback, $times);\n }\n\n /**\n * Assert that a process was not recorded matching a given truth test.\n *\n * @param \\Closure|string $callback\n * @return \\Illuminate\\Process\\Factory\n * @static\n */\n public static function assertNotRan($callback)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->assertNotRan($callback);\n }\n\n /**\n * Assert that a process was not recorded matching a given truth test.\n *\n * @param \\Closure|string $callback\n * @return \\Illuminate\\Process\\Factory\n * @static\n */\n public static function assertDidntRun($callback)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->assertDidntRun($callback);\n }\n\n /**\n * Assert that no processes were recorded.\n *\n * @return \\Illuminate\\Process\\Factory\n * @static\n */\n public static function assertNothingRan()\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->assertNothingRan();\n }\n\n /**\n * Start defining a pool of processes.\n *\n * @param callable $callback\n * @return \\Illuminate\\Process\\Pool\n * @static\n */\n public static function pool($callback)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->pool($callback);\n }\n\n /**\n * Start defining a series of piped processes.\n *\n * @param callable|array $callback\n * @return \\Illuminate\\Contracts\\Process\\ProcessResult\n * @static\n */\n public static function pipe($callback, $output = null)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->pipe($callback, $output);\n }\n\n /**\n * Run a pool of processes and wait for them to finish executing.\n *\n * @param callable $callback\n * @param callable|null $output\n * @return \\Illuminate\\Process\\ProcessPoolResults\n * @static\n */\n public static function concurrently($callback, $output = null)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->concurrently($callback, $output);\n }\n\n /**\n * Create a new pending process associated with this factory.\n *\n * @return \\Illuminate\\Process\\PendingProcess\n * @static\n */\n public static function newPendingProcess()\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->newPendingProcess();\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Process\\Factory::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Process\\Factory::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Process\\Factory::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Process\\Factory::flushMacros();\n }\n\n /**\n * Dynamically handle calls to the class.\n *\n * @param string $method\n * @param array $parameters\n * @return mixed\n * @throws \\BadMethodCallException\n * @static\n */\n public static function macroCall($method, $parameters)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->macroCall($method, $parameters);\n }\n\n }\n /**\n * @see \\Illuminate\\Queue\\QueueManager\n * @see \\Illuminate\\Queue\\Queue\n * @see \\Illuminate\\Support\\Testing\\Fakes\\QueueFake\n */\n class Queue {\n /**\n * Register an event listener for the before job event.\n *\n * @param mixed $callback\n * @return void\n * @static\n */\n public static function before($callback)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n $instance->before($callback);\n }\n\n /**\n * Register an event listener for the after job event.\n *\n * @param mixed $callback\n * @return void\n * @static\n */\n public static function after($callback)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n $instance->after($callback);\n }\n\n /**\n * Register an event listener for the exception occurred job event.\n *\n * @param mixed $callback\n * @return void\n * @static\n */\n public static function exceptionOccurred($callback)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n $instance->exceptionOccurred($callback);\n }\n\n /**\n * Register an event listener for the daemon queue loop.\n *\n * @param mixed $callback\n * @return void\n * @static\n */\n public static function looping($callback)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n $instance->looping($callback);\n }\n\n /**\n * Register an event listener for the failed job event.\n *\n * @param mixed $callback\n * @return void\n * @static\n */\n public static function failing($callback)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n $instance->failing($callback);\n }\n\n /**\n * Register an event listener for the daemon queue starting.\n *\n * @param mixed $callback\n * @return void\n * @static\n */\n public static function starting($callback)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n $instance->starting($callback);\n }\n\n /**\n * Register an event listener for the daemon queue stopping.\n *\n * @param mixed $callback\n * @return void\n * @static\n */\n public static function stopping($callback)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n $instance->stopping($callback);\n }\n\n /**\n * Determine if the driver is connected.\n *\n * @param string|null $name\n * @return bool\n * @static\n */\n public static function connected($name = null)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n return $instance->connected($name);\n }\n\n /**\n * Resolve a queue connection instance.\n *\n * @param string|null $name\n * @return \\Illuminate\\Contracts\\Queue\\Queue\n * @static\n */\n public static function connection($name = null)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n return $instance->connection($name);\n }\n\n /**\n * Add a queue connection resolver.\n *\n * @param string $driver\n * @param \\Closure $resolver\n * @return void\n * @static\n */\n public static function extend($driver, $resolver)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n $instance->extend($driver, $resolver);\n }\n\n /**\n * Add a queue connection resolver.\n *\n * @param string $driver\n * @param \\Closure $resolver\n * @return void\n * @static\n */\n public static function addConnector($driver, $resolver)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n $instance->addConnector($driver, $resolver);\n }\n\n /**\n * Get the name of the default queue connection.\n *\n * @return string\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Set the name of the default queue connection.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultDriver($name)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n $instance->setDefaultDriver($name);\n }\n\n /**\n * Get the full name for the given connection.\n *\n * @param string|null $connection\n * @return string\n * @static\n */\n public static function getName($connection = null)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n return $instance->getName($connection);\n }\n\n /**\n * Get the application instance used by the manager.\n *\n * @return \\Illuminate\\Contracts\\Foundation\\Application\n * @static\n */\n public static function getApplication()\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n return $instance->getApplication();\n }\n\n /**\n * Set the application instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Foundation\\Application $app\n * @return \\Illuminate\\Queue\\QueueManager\n * @static\n */\n public static function setApplication($app)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n return $instance->setApplication($app);\n }\n\n /**\n * Specify the jobs that should be queued instead of faked.\n *\n * @param array|string $jobsToBeQueued\n * @return \\Illuminate\\Support\\Testing\\Fakes\\QueueFake\n * @static\n */\n public static function except($jobsToBeQueued)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->except($jobsToBeQueued);\n }\n\n /**\n * Assert if a job was pushed based on a truth-test callback.\n *\n * @param string|\\Closure $job\n * @param callable|int|null $callback\n * @return void\n * @static\n */\n public static function assertPushed($job, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n $instance->assertPushed($job, $callback);\n }\n\n /**\n * Assert if a job was pushed based on a truth-test callback.\n *\n * @param string $queue\n * @param string|\\Closure $job\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertPushedOn($queue, $job, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n $instance->assertPushedOn($queue, $job, $callback);\n }\n\n /**\n * Assert if a job was pushed with chained jobs based on a truth-test callback.\n *\n * @param string $job\n * @param array $expectedChain\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertPushedWithChain($job, $expectedChain = [], $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n $instance->assertPushedWithChain($job, $expectedChain, $callback);\n }\n\n /**\n * Assert if a job was pushed with an empty chain based on a truth-test callback.\n *\n * @param string $job\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertPushedWithoutChain($job, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n $instance->assertPushedWithoutChain($job, $callback);\n }\n\n /**\n * Assert if a closure was pushed based on a truth-test callback.\n *\n * @param callable|int|null $callback\n * @return void\n * @static\n */\n public static function assertClosurePushed($callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n $instance->assertClosurePushed($callback);\n }\n\n /**\n * Assert that a closure was not pushed based on a truth-test callback.\n *\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertClosureNotPushed($callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n $instance->assertClosureNotPushed($callback);\n }\n\n /**\n * Determine if a job was pushed based on a truth-test callback.\n *\n * @param string|\\Closure $job\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertNotPushed($job, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n $instance->assertNotPushed($job, $callback);\n }\n\n /**\n * Assert the total count of jobs that were pushed.\n *\n * @param int $expectedCount\n * @return void\n * @static\n */\n public static function assertCount($expectedCount)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n $instance->assertCount($expectedCount);\n }\n\n /**\n * Assert that no jobs were pushed.\n *\n * @return void\n * @static\n */\n public static function assertNothingPushed()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n $instance->assertNothingPushed();\n }\n\n /**\n * Get all of the jobs matching a truth-test callback.\n *\n * @param string $job\n * @param callable|null $callback\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function pushed($job, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->pushed($job, $callback);\n }\n\n /**\n * Get all of the raw pushes matching a truth-test callback.\n *\n * @param null|\\Closure(string, ?string, array): bool $callback\n * @return \\Illuminate\\Support\\Collection<int, RawPushType>\n * @static\n */\n public static function pushedRaw($callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->pushedRaw($callback);\n }\n\n /**\n * Get all of the jobs by listener class, passing an optional truth-test callback.\n *\n * @param class-string $listenerClass\n * @param (\\Closure(mixed, \\Illuminate\\Events\\CallQueuedListener, string|null, mixed): bool)|null $callback\n * @return \\Illuminate\\Support\\Collection<int, \\Illuminate\\Events\\CallQueuedListener>\n * @static\n */\n public static function listenersPushed($listenerClass, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->listenersPushed($listenerClass, $callback);\n }\n\n /**\n * Determine if there are any stored jobs for a given class.\n *\n * @param string $job\n * @return bool\n * @static\n */\n public static function hasPushed($job)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->hasPushed($job);\n }\n\n /**\n * Get the size of the queue.\n *\n * @param string|null $queue\n * @return int\n * @static\n */\n public static function size($queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->size($queue);\n }\n\n /**\n * Get the number of pending jobs.\n *\n * @param string|null $queue\n * @return int\n * @static\n */\n public static function pendingSize($queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->pendingSize($queue);\n }\n\n /**\n * Get the number of delayed jobs.\n *\n * @param string|null $queue\n * @return int\n * @static\n */\n public static function delayedSize($queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->delayedSize($queue);\n }\n\n /**\n * Get the number of reserved jobs.\n *\n * @param string|null $queue\n * @return int\n * @static\n */\n public static function reservedSize($queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->reservedSize($queue);\n }\n\n /**\n * Get the creation timestamp of the oldest pending job, excluding delayed jobs.\n *\n * @param string|null $queue\n * @return int|null\n * @static\n */\n public static function creationTimeOfOldestPendingJob($queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->creationTimeOfOldestPendingJob($queue);\n }\n\n /**\n * Push a new job onto the queue.\n *\n * @param string|object $job\n * @param mixed $data\n * @param string|null $queue\n * @return mixed\n * @static\n */\n public static function push($job, $data = '', $queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->push($job, $data, $queue);\n }\n\n /**\n * Determine if a job should be faked or actually dispatched.\n *\n * @param object $job\n * @return bool\n * @static\n */\n public static function shouldFakeJob($job)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->shouldFakeJob($job);\n }\n\n /**\n * Push a raw payload onto the queue.\n *\n * @param string $payload\n * @param string|null $queue\n * @param array $options\n * @return mixed\n * @static\n */\n public static function pushRaw($payload, $queue = null, $options = [])\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->pushRaw($payload, $queue, $options);\n }\n\n /**\n * Push a new job onto the queue after (n) seconds.\n *\n * @param \\DateTimeInterface|\\DateInterval|int $delay\n * @param string|object $job\n * @param mixed $data\n * @param string|null $queue\n * @return mixed\n * @static\n */\n public static function later($delay, $job, $data = '', $queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->later($delay, $job, $data, $queue);\n }\n\n /**\n * Push a new job onto the queue.\n *\n * @param string $queue\n * @param string|object $job\n * @param mixed $data\n * @return mixed\n * @static\n */\n public static function pushOn($queue, $job, $data = '')\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->pushOn($queue, $job, $data);\n }\n\n /**\n * Push a new job onto a specific queue after (n) seconds.\n *\n * @param string $queue\n * @param \\DateTimeInterface|\\DateInterval|int $delay\n * @param string|object $job\n * @param mixed $data\n * @return mixed\n * @static\n */\n public static function laterOn($queue, $delay, $job, $data = '')\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->laterOn($queue, $delay, $job, $data);\n }\n\n /**\n * Pop the next job off of the queue.\n *\n * @param string|null $queue\n * @return \\Illuminate\\Contracts\\Queue\\Job|null\n * @static\n */\n public static function pop($queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->pop($queue);\n }\n\n /**\n * Push an array of jobs onto the queue.\n *\n * @param array $jobs\n * @param mixed $data\n * @param string|null $queue\n * @return mixed\n * @static\n */\n public static function bulk($jobs, $data = '', $queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->bulk($jobs, $data, $queue);\n }\n\n /**\n * Get the jobs that have been pushed.\n *\n * @return array\n * @static\n */\n public static function pushedJobs()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->pushedJobs();\n }\n\n /**\n * Get the payloads that were pushed raw.\n *\n * @return list<RawPushType>\n * @static\n */\n public static function rawPushes()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->rawPushes();\n }\n\n /**\n * Specify if jobs should be serialized and restored when being \"pushed\" to the queue.\n *\n * @param bool $serializeAndRestore\n * @return \\Illuminate\\Support\\Testing\\Fakes\\QueueFake\n * @static\n */\n public static function serializeAndRestore($serializeAndRestore = true)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->serializeAndRestore($serializeAndRestore);\n }\n\n /**\n * Get the connection name for the queue.\n *\n * @return string\n * @static\n */\n public static function getConnectionName()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->getConnectionName();\n }\n\n /**\n * Set the connection name for the queue.\n *\n * @param string $name\n * @return \\Illuminate\\Support\\Testing\\Fakes\\QueueFake\n * @static\n */\n public static function setConnectionName($name)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->setConnectionName($name);\n }\n\n /**\n * Migrate the delayed jobs that are ready to the regular queue.\n *\n * @param string $from\n * @param string $to\n * @return array\n * @static\n */\n public static function migrateExpiredJobs($from, $to)\n {\n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n return $instance->migrateExpiredJobs($from, $to);\n }\n\n /**\n * Delete a reserved job from the queue.\n *\n * @param string $queue\n * @param \\Illuminate\\Queue\\Jobs\\RedisJob $job\n * @return void\n * @static\n */\n public static function deleteReserved($queue, $job)\n {\n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n $instance->deleteReserved($queue, $job);\n }\n\n /**\n * Delete a reserved job from the reserved queue and release it.\n *\n * @param string $queue\n * @param \\Illuminate\\Queue\\Jobs\\RedisJob $job\n * @param int $delay\n * @return void\n * @static\n */\n public static function deleteAndRelease($queue, $job, $delay)\n {\n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n $instance->deleteAndRelease($queue, $job, $delay);\n }\n\n /**\n * Delete all of the jobs from the queue.\n *\n * @param string $queue\n * @return int\n * @static\n */\n public static function clear($queue)\n {\n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n return $instance->clear($queue);\n }\n\n /**\n * Get the queue or return the default.\n *\n * @param string|null $queue\n * @return string\n * @static\n */\n public static function getQueue($queue)\n {\n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n return $instance->getQueue($queue);\n }\n\n /**\n * Get the connection for the queue.\n *\n * @return \\Illuminate\\Redis\\Connections\\Connection\n * @static\n */\n public static function getConnection()\n {\n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n return $instance->getConnection();\n }\n\n /**\n * Get the underlying Redis instance.\n *\n * @return \\Illuminate\\Contracts\\Redis\\Factory\n * @static\n */\n public static function getRedis()\n {\n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n return $instance->getRedis();\n }\n\n /**\n * Get the maximum number of attempts for an object-based queue handler.\n *\n * @param mixed $job\n * @return mixed\n * @static\n */\n public static function getJobTries($job)\n {\n //Method inherited from \\Illuminate\\Queue\\Queue \n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n return $instance->getJobTries($job);\n }\n\n /**\n * Get the backoff for an object-based queue handler.\n *\n * @param mixed $job\n * @return mixed\n * @static\n */\n public static function getJobBackoff($job)\n {\n //Method inherited from \\Illuminate\\Queue\\Queue \n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n return $instance->getJobBackoff($job);\n }\n\n /**\n * Get the expiration timestamp for an object-based queue handler.\n *\n * @param mixed $job\n * @return mixed\n * @static\n */\n public static function getJobExpiration($job)\n {\n //Method inherited from \\Illuminate\\Queue\\Queue \n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n return $instance->getJobExpiration($job);\n }\n\n /**\n * Register a callback to be executed when creating job payloads.\n *\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function createPayloadUsing($callback)\n {\n //Method inherited from \\Illuminate\\Queue\\Queue \n \\Illuminate\\Queue\\RedisQueue::createPayloadUsing($callback);\n }\n\n /**\n * Get the container instance being used by the connection.\n *\n * @return \\Illuminate\\Container\\Container\n * @static\n */\n public static function getContainer()\n {\n //Method inherited from \\Illuminate\\Queue\\Queue \n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n return $instance->getContainer();\n }\n\n /**\n * Set the IoC container instance.\n *\n * @param \\Illuminate\\Container\\Container $container\n * @return void\n * @static\n */\n public static function setContainer($container)\n {\n //Method inherited from \\Illuminate\\Queue\\Queue \n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n $instance->setContainer($container);\n }\n\n }\n /**\n * @see \\Illuminate\\Cache\\RateLimiter\n */\n class RateLimiter {\n /**\n * Register a named limiter configuration.\n *\n * @param \\BackedEnum|\\UnitEnum|string $name\n * @param \\Closure $callback\n * @return \\Illuminate\\Cache\\RateLimiter\n * @static\n */\n public static function for($name, $callback)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->for($name, $callback);\n }\n\n /**\n * Get the given named rate limiter.\n *\n * @param \\BackedEnum|\\UnitEnum|string $name\n * @return \\Closure|null\n * @static\n */\n public static function limiter($name)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->limiter($name);\n }\n\n /**\n * Attempts to execute a callback if it's not limited.\n *\n * @param string $key\n * @param int $maxAttempts\n * @param \\Closure $callback\n * @param \\DateTimeInterface|\\DateInterval|int $decaySeconds\n * @return mixed\n * @static\n */\n public static function attempt($key, $maxAttempts, $callback, $decaySeconds = 60)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->attempt($key, $maxAttempts, $callback, $decaySeconds);\n }\n\n /**\n * Determine if the given key has been \"accessed\" too many times.\n *\n * @param string $key\n * @param int $maxAttempts\n * @return bool\n * @static\n */\n public static function tooManyAttempts($key, $maxAttempts)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->tooManyAttempts($key, $maxAttempts);\n }\n\n /**\n * Increment (by 1) the counter for a given key for a given decay time.\n *\n * @param string $key\n * @param \\DateTimeInterface|\\DateInterval|int $decaySeconds\n * @return int\n * @static\n */\n public static function hit($key, $decaySeconds = 60)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->hit($key, $decaySeconds);\n }\n\n /**\n * Increment the counter for a given key for a given decay time by a given amount.\n *\n * @param string $key\n * @param \\DateTimeInterface|\\DateInterval|int $decaySeconds\n * @param int $amount\n * @return int\n * @static\n */\n public static function increment($key, $decaySeconds = 60, $amount = 1)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->increment($key, $decaySeconds, $amount);\n }\n\n /**\n * Decrement the counter for a given key for a given decay time by a given amount.\n *\n * @param string $key\n * @param \\DateTimeInterface|\\DateInterval|int $decaySeconds\n * @param int $amount\n * @return int\n * @static\n */\n public static function decrement($key, $decaySeconds = 60, $amount = 1)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->decrement($key, $decaySeconds, $amount);\n }\n\n /**\n * Get the number of attempts for the given key.\n *\n * @param string $key\n * @return mixed\n * @static\n */\n public static function attempts($key)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->attempts($key);\n }\n\n /**\n * Reset the number of attempts for the given key.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function resetAttempts($key)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->resetAttempts($key);\n }\n\n /**\n * Get the number of retries left for the given key.\n *\n * @param string $key\n * @param int $maxAttempts\n * @return int\n * @static\n */\n public static function remaining($key, $maxAttempts)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->remaining($key, $maxAttempts);\n }\n\n /**\n * Get the number of retries left for the given key.\n *\n * @param string $key\n * @param int $maxAttempts\n * @return int\n * @static\n */\n public static function retriesLeft($key, $maxAttempts)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->retriesLeft($key, $maxAttempts);\n }\n\n /**\n * Clear the hits and lockout timer for the given key.\n *\n * @param string $key\n * @return void\n * @static\n */\n public static function clear($key)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n $instance->clear($key);\n }\n\n /**\n * Get the number of seconds until the \"key\" is accessible again.\n *\n * @param string $key\n * @return int\n * @static\n */\n public static function availableIn($key)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->availableIn($key);\n }\n\n /**\n * Clean the rate limiter key from unicode characters.\n *\n * @param string $key\n * @return string\n * @static\n */\n public static function cleanRateLimiterKey($key)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->cleanRateLimiterKey($key);\n }\n\n }\n /**\n * @see \\Illuminate\\Routing\\Redirector\n */\n class Redirect {\n /**\n * Create a new redirect response to the previous location.\n *\n * @param int $status\n * @param array $headers\n * @param mixed $fallback\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function back($status = 302, $headers = [], $fallback = false)\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->back($status, $headers, $fallback);\n }\n\n /**\n * Create a new redirect response to the current URI.\n *\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function refresh($status = 302, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->refresh($status, $headers);\n }\n\n /**\n * Create a new redirect response, while putting the current URL in the session.\n *\n * @param string $path\n * @param int $status\n * @param array $headers\n * @param bool|null $secure\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function guest($path, $status = 302, $headers = [], $secure = null)\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->guest($path, $status, $headers, $secure);\n }\n\n /**\n * Create a new redirect response to the previously intended location.\n *\n * @param mixed $default\n * @param int $status\n * @param array $headers\n * @param bool|null $secure\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function intended($default = '/', $status = 302, $headers = [], $secure = null)\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->intended($default, $status, $headers, $secure);\n }\n\n /**\n * Create a new redirect response to the given path.\n *\n * @param string $path\n * @param int $status\n * @param array $headers\n * @param bool|null $secure\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function to($path, $status = 302, $headers = [], $secure = null)\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->to($path, $status, $headers, $secure);\n }\n\n /**\n * Create a new redirect response to an external URL (no validation).\n *\n * @param string $path\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function away($path, $status = 302, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->away($path, $status, $headers);\n }\n\n /**\n * Create a new redirect response to the given HTTPS path.\n *\n * @param string $path\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function secure($path, $status = 302, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->secure($path, $status, $headers);\n }\n\n /**\n * Create a new redirect response to a named route.\n *\n * @param \\BackedEnum|string $route\n * @param mixed $parameters\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function route($route, $parameters = [], $status = 302, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->route($route, $parameters, $status, $headers);\n }\n\n /**\n * Create a new redirect response to a signed named route.\n *\n * @param \\BackedEnum|string $route\n * @param mixed $parameters\n * @param \\DateTimeInterface|\\DateInterval|int|null $expiration\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function signedRoute($route, $parameters = [], $expiration = null, $status = 302, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->signedRoute($route, $parameters, $expiration, $status, $headers);\n }\n\n /**\n * Create a new redirect response to a signed named route.\n *\n * @param \\BackedEnum|string $route\n * @param \\DateTimeInterface|\\DateInterval|int|null $expiration\n * @param mixed $parameters\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function temporarySignedRoute($route, $expiration, $parameters = [], $status = 302, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->temporarySignedRoute($route, $expiration, $parameters, $status, $headers);\n }\n\n /**\n * Create a new redirect response to a controller action.\n *\n * @param string|array $action\n * @param mixed $parameters\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function action($action, $parameters = [], $status = 302, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->action($action, $parameters, $status, $headers);\n }\n\n /**\n * Get the URL generator instance.\n *\n * @return \\Illuminate\\Routing\\UrlGenerator\n * @static\n */\n public static function getUrlGenerator()\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->getUrlGenerator();\n }\n\n /**\n * Set the active session store.\n *\n * @param \\Illuminate\\Session\\Store $session\n * @return void\n * @static\n */\n public static function setSession($session)\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n $instance->setSession($session);\n }\n\n /**\n * Get the \"intended\" URL from the session.\n *\n * @return string|null\n * @static\n */\n public static function getIntendedUrl()\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->getIntendedUrl();\n }\n\n /**\n * Set the \"intended\" URL in the session.\n *\n * @param string $url\n * @return \\Illuminate\\Routing\\Redirector\n * @static\n */\n public static function setIntendedUrl($url)\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->setIntendedUrl($url);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Routing\\Redirector::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Routing\\Redirector::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Routing\\Redirector::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Routing\\Redirector::flushMacros();\n }\n\n }\n /**\n * @see \\Illuminate\\Http\\Request\n */\n class Request {\n /**\n * Create a new Illuminate HTTP request from server variables.\n *\n * @return static\n * @static\n */\n public static function capture()\n {\n return \\Illuminate\\Http\\Request::capture();\n }\n\n /**\n * Return the Request instance.\n *\n * @return \\Illuminate\\Http\\Request\n * @static\n */\n public static function instance()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->instance();\n }\n\n /**\n * Get the request method.\n *\n * @return string\n * @static\n */\n public static function method()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->method();\n }\n\n /**\n * Get a URI instance for the request.\n *\n * @return \\Illuminate\\Support\\Uri\n * @static\n */\n public static function uri()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->uri();\n }\n\n /**\n * Get the root URL for the application.\n *\n * @return string\n * @static\n */\n public static function root()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->root();\n }\n\n /**\n * Get the URL (no query string) for the request.\n *\n * @return string\n * @static\n */\n public static function url()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->url();\n }\n\n /**\n * Get the full URL for the request.\n *\n * @return string\n * @static\n */\n public static function fullUrl()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->fullUrl();\n }\n\n /**\n * Get the full URL for the request with the added query string parameters.\n *\n * @param array $query\n * @return string\n * @static\n */\n public static function fullUrlWithQuery($query)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->fullUrlWithQuery($query);\n }\n\n /**\n * Get the full URL for the request without the given query string parameters.\n *\n * @param array|string $keys\n * @return string\n * @static\n */\n public static function fullUrlWithoutQuery($keys)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->fullUrlWithoutQuery($keys);\n }\n\n /**\n * Get the current path info for the request.\n *\n * @return string\n * @static\n */\n public static function path()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->path();\n }\n\n /**\n * Get the current decoded path info for the request.\n *\n * @return string\n * @static\n */\n public static function decodedPath()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->decodedPath();\n }\n\n /**\n * Get a segment from the URI (1 based index).\n *\n * @param int $index\n * @param string|null $default\n * @return string|null\n * @static\n */\n public static function segment($index, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->segment($index, $default);\n }\n\n /**\n * Get all of the segments for the request path.\n *\n * @return array\n * @static\n */\n public static function segments()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->segments();\n }\n\n /**\n * Determine if the current request URI matches a pattern.\n *\n * @param mixed $patterns\n * @return bool\n * @static\n */\n public static function is(...$patterns)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->is(...$patterns);\n }\n\n /**\n * Determine if the route name matches a given pattern.\n *\n * @param mixed $patterns\n * @return bool\n * @static\n */\n public static function routeIs(...$patterns)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->routeIs(...$patterns);\n }\n\n /**\n * Determine if the current request URL and query string match a pattern.\n *\n * @param mixed $patterns\n * @return bool\n * @static\n */\n public static function fullUrlIs(...$patterns)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->fullUrlIs(...$patterns);\n }\n\n /**\n * Get the host name.\n *\n * @return string\n * @static\n */\n public static function host()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->host();\n }\n\n /**\n * Get the HTTP host being requested.\n *\n * @return string\n * @static\n */\n public static function httpHost()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->httpHost();\n }\n\n /**\n * Get the scheme and HTTP host.\n *\n * @return string\n * @static\n */\n public static function schemeAndHttpHost()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->schemeAndHttpHost();\n }\n\n /**\n * Determine if the request is the result of an AJAX call.\n *\n * @return bool\n * @static\n */\n public static function ajax()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->ajax();\n }\n\n /**\n * Determine if the request is the result of a PJAX call.\n *\n * @return bool\n * @static\n */\n public static function pjax()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->pjax();\n }\n\n /**\n * Determine if the request is the result of a prefetch call.\n *\n * @return bool\n * @static\n */\n public static function prefetch()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->prefetch();\n }\n\n /**\n * Determine if the request is over HTTPS.\n *\n * @return bool\n * @static\n */\n public static function secure()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->secure();\n }\n\n /**\n * Get the client IP address.\n *\n * @return string|null\n * @static\n */\n public static function ip()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->ip();\n }\n\n /**\n * Get the client IP addresses.\n *\n * @return array\n * @static\n */\n public static function ips()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->ips();\n }\n\n /**\n * Get the client user agent.\n *\n * @return string|null\n * @static\n */\n public static function userAgent()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->userAgent();\n }\n\n /**\n * Merge new input into the current request's input array.\n *\n * @param array $input\n * @return \\Illuminate\\Http\\Request\n * @static\n */\n public static function merge($input)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->merge($input);\n }\n\n /**\n * Merge new input into the request's input, but only when that key is missing from the request.\n *\n * @param array $input\n * @return \\Illuminate\\Http\\Request\n * @static\n */\n public static function mergeIfMissing($input)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->mergeIfMissing($input);\n }\n\n /**\n * Replace the input values for the current request.\n *\n * @param array $input\n * @return \\Illuminate\\Http\\Request\n * @static\n */\n public static function replace($input)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->replace($input);\n }\n\n /**\n * This method belongs to Symfony HttpFoundation and is not usually needed when using Laravel.\n * \n * Instead, you may use the \"input\" method.\n *\n * @param string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function get($key, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->get($key, $default);\n }\n\n /**\n * Get the JSON payload for the request.\n *\n * @param string|null $key\n * @param mixed $default\n * @return ($key is null ? \\Symfony\\Component\\HttpFoundation\\InputBag : mixed)\n * @static\n */\n public static function json($key = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->json($key, $default);\n }\n\n /**\n * Create a new request instance from the given Laravel request.\n *\n * @param \\Illuminate\\Http\\Request $from\n * @param \\Illuminate\\Http\\Request|null $to\n * @return static\n * @static\n */\n public static function createFrom($from, $to = null)\n {\n return \\Illuminate\\Http\\Request::createFrom($from, $to);\n }\n\n /**\n * Create an Illuminate request from a Symfony instance.\n *\n * @param \\Symfony\\Component\\HttpFoundation\\Request $request\n * @return static\n * @static\n */\n public static function createFromBase($request)\n {\n return \\Illuminate\\Http\\Request::createFromBase($request);\n }\n\n /**\n * Clones a request and overrides some of its parameters.\n *\n * @return static\n * @param array|null $query The GET parameters\n * @param array|null $request The POST parameters\n * @param array|null $attributes The request attributes (parameters parsed from the PATH_INFO, ...)\n * @param array|null $cookies The COOKIE parameters\n * @param array|null $files The FILES parameters\n * @param array|null $server The SERVER parameters\n * @static\n */\n public static function duplicate($query = null, $request = null, $attributes = null, $cookies = null, $files = null, $server = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->duplicate($query, $request, $attributes, $cookies, $files, $server);\n }\n\n /**\n * Whether the request contains a Session object.\n * \n * This method does not give any information about the state of the session object,\n * like whether the session is started or not. It is just a way to check if this Request\n * is associated with a Session instance.\n *\n * @param bool $skipIfUninitialized When true, ignores factories injected by `setSessionFactory`\n * @static\n */\n public static function hasSession($skipIfUninitialized = false)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->hasSession($skipIfUninitialized);\n }\n\n /**\n * Gets the Session.\n *\n * @throws SessionNotFoundException When session is not set properly\n * @static\n */\n public static function getSession()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getSession();\n }\n\n /**\n * Get the session associated with the request.\n *\n * @return \\Illuminate\\Contracts\\Session\\Session\n * @throws \\RuntimeException\n * @static\n */\n public static function session()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->session();\n }\n\n /**\n * Set the session instance on the request.\n *\n * @param \\Illuminate\\Contracts\\Session\\Session $session\n * @return void\n * @static\n */\n public static function setLaravelSession($session)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n $instance->setLaravelSession($session);\n }\n\n /**\n * Set the locale for the request instance.\n *\n * @param string $locale\n * @return void\n * @static\n */\n public static function setRequestLocale($locale)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n $instance->setRequestLocale($locale);\n }\n\n /**\n * Set the default locale for the request instance.\n *\n * @param string $locale\n * @return void\n * @static\n */\n public static function setDefaultRequestLocale($locale)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n $instance->setDefaultRequestLocale($locale);\n }\n\n /**\n * Get the user making the request.\n *\n * @param string|null $guard\n * @return mixed\n * @static\n */\n public static function user($guard = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->user($guard);\n }\n\n /**\n * Get the route handling the request.\n *\n * @param string|null $param\n * @param mixed $default\n * @return ($param is null ? \\Illuminate\\Routing\\Route : object|string|null)\n * @static\n */\n public static function route($param = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->route($param, $default);\n }\n\n /**\n * Get a unique fingerprint for the request / route / IP address.\n *\n * @return string\n * @throws \\RuntimeException\n * @static\n */\n public static function fingerprint()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->fingerprint();\n }\n\n /**\n * Set the JSON payload for the request.\n *\n * @param \\Symfony\\Component\\HttpFoundation\\InputBag $json\n * @return \\Illuminate\\Http\\Request\n * @static\n */\n public static function setJson($json)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->setJson($json);\n }\n\n /**\n * Get the user resolver callback.\n *\n * @return \\Closure\n * @static\n */\n public static function getUserResolver()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getUserResolver();\n }\n\n /**\n * Set the user resolver callback.\n *\n * @param \\Closure $callback\n * @return \\Illuminate\\Http\\Request\n * @static\n */\n public static function setUserResolver($callback)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->setUserResolver($callback);\n }\n\n /**\n * Get the route resolver callback.\n *\n * @return \\Closure\n * @static\n */\n public static function getRouteResolver()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getRouteResolver();\n }\n\n /**\n * Set the route resolver callback.\n *\n * @param \\Closure $callback\n * @return \\Illuminate\\Http\\Request\n * @static\n */\n public static function setRouteResolver($callback)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->setRouteResolver($callback);\n }\n\n /**\n * Get all of the input and files for the request.\n *\n * @return array\n * @static\n */\n public static function toArray()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->toArray();\n }\n\n /**\n * Determine if the given offset exists.\n *\n * @param string $offset\n * @return bool\n * @static\n */\n public static function offsetExists($offset)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->offsetExists($offset);\n }\n\n /**\n * Get the value at the given offset.\n *\n * @param string $offset\n * @return mixed\n * @static\n */\n public static function offsetGet($offset)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->offsetGet($offset);\n }\n\n /**\n * Set the value at the given offset.\n *\n * @param string $offset\n * @param mixed $value\n * @return void\n * @static\n */\n public static function offsetSet($offset, $value)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n $instance->offsetSet($offset, $value);\n }\n\n /**\n * Remove the value at the given offset.\n *\n * @param string $offset\n * @return void\n * @static\n */\n public static function offsetUnset($offset)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n $instance->offsetUnset($offset);\n }\n\n /**\n * Sets the parameters for this request.\n * \n * This method also re-initializes all properties.\n *\n * @param array $query The GET parameters\n * @param array $request The POST parameters\n * @param array $attributes The request attributes (parameters parsed from the PATH_INFO, ...)\n * @param array $cookies The COOKIE parameters\n * @param array $files The FILES parameters\n * @param array $server The SERVER parameters\n * @param string|resource|null $content The raw body data\n * @static\n */\n public static function initialize($query = [], $request = [], $attributes = [], $cookies = [], $files = [], $server = [], $content = null)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->initialize($query, $request, $attributes, $cookies, $files, $server, $content);\n }\n\n /**\n * Creates a new request with values from PHP's super globals.\n *\n * @static\n */\n public static function createFromGlobals()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::createFromGlobals();\n }\n\n /**\n * Creates a Request based on a given URI and configuration.\n * \n * The information contained in the URI always take precedence\n * over the other information (server and parameters).\n *\n * @param string $uri The URI\n * @param string $method The HTTP method\n * @param array $parameters The query (GET) or request (POST) parameters\n * @param array $cookies The request cookies ($_COOKIE)\n * @param array $files The request files ($_FILES)\n * @param array $server The server parameters ($_SERVER)\n * @param string|resource|null $content The raw body data\n * @throws BadRequestException When the URI is invalid\n * @static\n */\n public static function create($uri, $method = 'GET', $parameters = [], $cookies = [], $files = [], $server = [], $content = null)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::create($uri, $method, $parameters, $cookies, $files, $server, $content);\n }\n\n /**\n * Sets a callable able to create a Request instance.\n * \n * This is mainly useful when you need to override the Request class\n * to keep BC with an existing system. It should not be used for any\n * other purpose.\n *\n * @static\n */\n public static function setFactory($callable)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::setFactory($callable);\n }\n\n /**\n * Overrides the PHP global variables according to this request instance.\n * \n * It overrides $_GET, $_POST, $_REQUEST, $_SERVER, $_COOKIE.\n * $_FILES is never overridden, see rfc1867\n *\n * @static\n */\n public static function overrideGlobals()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->overrideGlobals();\n }\n\n /**\n * Sets a list of trusted proxies.\n * \n * You should only list the reverse proxies that you manage directly.\n *\n * @param array $proxies A list of trusted proxies, the string 'REMOTE_ADDR' will be replaced with $_SERVER['REMOTE_ADDR'] and 'PRIVATE_SUBNETS' by IpUtils::PRIVATE_SUBNETS\n * @param int-mask-of<Request::HEADER_*> $trustedHeaderSet A bit field to set which headers to trust from your proxies\n * @static\n */\n public static function setTrustedProxies($proxies, $trustedHeaderSet)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::setTrustedProxies($proxies, $trustedHeaderSet);\n }\n\n /**\n * Gets the list of trusted proxies.\n *\n * @return string[]\n * @static\n */\n public static function getTrustedProxies()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::getTrustedProxies();\n }\n\n /**\n * Gets the set of trusted headers from trusted proxies.\n *\n * @return int A bit field of Request::HEADER_* that defines which headers are trusted from your proxies\n * @static\n */\n public static function getTrustedHeaderSet()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::getTrustedHeaderSet();\n }\n\n /**\n * Sets a list of trusted host patterns.\n * \n * You should only list the hosts you manage using regexs.\n *\n * @param array $hostPatterns A list of trusted host patterns\n * @static\n */\n public static function setTrustedHosts($hostPatterns)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::setTrustedHosts($hostPatterns);\n }\n\n /**\n * Gets the list of trusted host patterns.\n *\n * @return string[]\n * @static\n */\n public static function getTrustedHosts()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::getTrustedHosts();\n }\n\n /**\n * Normalizes a query string.\n * \n * It builds a normalized query string, where keys/value pairs are alphabetized,\n * have consistent escaping and unneeded delimiters are removed.\n *\n * @static\n */\n public static function normalizeQueryString($qs)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::normalizeQueryString($qs);\n }\n\n /**\n * Enables support for the _method request parameter to determine the intended HTTP method.\n * \n * Be warned that enabling this feature might lead to CSRF issues in your code.\n * Check that you are using CSRF tokens when required.\n * If the HTTP method parameter override is enabled, an html-form with method \"POST\" can be altered\n * and used to send a \"PUT\" or \"DELETE\" request via the _method request parameter.\n * If these methods are not protected against CSRF, this presents a possible vulnerability.\n * \n * The HTTP method can only be overridden when the real HTTP method is POST.\n *\n * @static\n */\n public static function enableHttpMethodParameterOverride()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::enableHttpMethodParameterOverride();\n }\n\n /**\n * Checks whether support for the _method request parameter is enabled.\n *\n * @static\n */\n public static function getHttpMethodParameterOverride()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::getHttpMethodParameterOverride();\n }\n\n /**\n * Sets the list of HTTP methods that can be overridden.\n * \n * Set to null to allow all methods to be overridden (default). Set to an\n * empty array to disallow overrides entirely. Otherwise, provide the list\n * of uppercased method names that are allowed.\n *\n * @param \\Symfony\\Component\\HttpFoundation\\uppercase-string[]|null $methods\n * @static\n */\n public static function setAllowedHttpMethodOverride($methods)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::setAllowedHttpMethodOverride($methods);\n }\n\n /**\n * Gets the list of HTTP methods that can be overridden.\n *\n * @return \\Symfony\\Component\\HttpFoundation\\uppercase-string[]|null\n * @static\n */\n public static function getAllowedHttpMethodOverride()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::getAllowedHttpMethodOverride();\n }\n\n /**\n * Whether the request contains a Session which was started in one of the\n * previous requests.\n *\n * @static\n */\n public static function hasPreviousSession()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->hasPreviousSession();\n }\n\n /**\n * @static\n */\n public static function setSession($session)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->setSession($session);\n }\n\n /**\n * @internal\n * @param callable(): SessionInterface $factory\n * @static\n */\n public static function setSessionFactory($factory)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->setSessionFactory($factory);\n }\n\n /**\n * Returns the client IP addresses.\n * \n * In the returned array the most trusted IP address is first, and the\n * least trusted one last. The \"real\" client IP address is the last one,\n * but this is also the least trusted one. Trusted proxies are stripped.\n * \n * Use this method carefully; you should use getClientIp() instead.\n *\n * @see getClientIp()\n * @static\n */\n public static function getClientIps()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getClientIps();\n }\n\n /**\n * Returns the client IP address.\n * \n * This method can read the client IP address from the \"X-Forwarded-For\" header\n * when trusted proxies were set via \"setTrustedProxies()\". The \"X-Forwarded-For\"\n * header value is a comma+space separated list of IP addresses, the left-most\n * being the original client, and each successive proxy that passed the request\n * adding the IP address where it received the request from.\n * \n * If your reverse proxy uses a different header name than \"X-Forwarded-For\",\n * (\"Client-Ip\" for instance), configure it via the $trustedHeaderSet\n * argument of the Request::setTrustedProxies() method instead.\n *\n * @see getClientIps()\n * @see https://wikipedia.org/wiki/X-Forwarded-For\n * @static\n */\n public static function getClientIp()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getClientIp();\n }\n\n /**\n * Returns current script name.\n *\n * @static\n */\n public static function getScriptName()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getScriptName();\n }\n\n /**\n * Returns the path being requested relative to the executed script.\n * \n * The path info always starts with a /.\n * \n * Suppose this request is instantiated from /mysite on localhost:\n * \n * * http://localhost/mysite returns an empty string\n * * http://localhost/mysite/about returns '/about'\n * * http://localhost/mysite/enco%20ded returns '/enco%20ded'\n * * http://localhost/mysite/about?var=1 returns '/about'\n *\n * @return string The raw path (i.e. not urldecoded)\n * @static\n */\n public static function getPathInfo()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getPathInfo();\n }\n\n /**\n * Returns the root path from which this request is executed.\n * \n * Suppose that an index.php file instantiates this request object:\n * \n * * http://localhost/index.php returns an empty string\n * * http://localhost/index.php/page returns an empty string\n * * http://localhost/web/index.php returns '/web'\n * * http://localhost/we%20b/index.php returns '/we%20b'\n *\n * @return string The raw path (i.e. not urldecoded)\n * @static\n */\n public static function getBasePath()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getBasePath();\n }\n\n /**\n * Returns the root URL from which this request is executed.\n * \n * The base URL never ends with a /.\n * \n * This is similar to getBasePath(), except that it also includes the\n * script filename (e.g. index.php) if one exists.\n *\n * @return string The raw URL (i.e. not urldecoded)\n * @static\n */\n public static function getBaseUrl()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getBaseUrl();\n }\n\n /**\n * Gets the request's scheme.\n *\n * @static\n */\n public static function getScheme()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getScheme();\n }\n\n /**\n * Returns the port on which the request is made.\n * \n * This method can read the client port from the \"X-Forwarded-Port\" header\n * when trusted proxies were set via \"setTrustedProxies()\".\n * \n * The \"X-Forwarded-Port\" header must contain the client port.\n *\n * @return int|string|null Can be a string if fetched from the server bag\n * @static\n */\n public static function getPort()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getPort();\n }\n\n /**\n * Returns the user.\n *\n * @static\n */\n public static function getUser()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getUser();\n }\n\n /**\n * Returns the password.\n *\n * @static\n */\n public static function getPassword()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getPassword();\n }\n\n /**\n * Gets the user info.\n *\n * @return string|null A user name if any and, optionally, scheme-specific information about how to gain authorization to access the server\n * @static\n */\n public static function getUserInfo()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getUserInfo();\n }\n\n /**\n * Returns the HTTP host being requested.\n * \n * The port name will be appended to the host if it's non-standard.\n *\n * @static\n */\n public static function getHttpHost()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getHttpHost();\n }\n\n /**\n * Returns the requested URI (path and query string).\n *\n * @return string The raw URI (i.e. not URI decoded)\n * @static\n */\n public static function getRequestUri()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getRequestUri();\n }\n\n /**\n * Gets the scheme and HTTP host.\n * \n * If the URL was called with basic authentication, the user\n * and the password are not added to the generated string.\n *\n * @static\n */\n public static function getSchemeAndHttpHost()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getSchemeAndHttpHost();\n }\n\n /**\n * Generates a normalized URI (URL) for the Request.\n *\n * @see getQueryString()\n * @static\n */\n public static function getUri()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getUri();\n }\n\n /**\n * Generates a normalized URI for the given path.\n *\n * @param string $path A path to use instead of the current one\n * @static\n */\n public static function getUriForPath($path)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getUriForPath($path);\n }\n\n /**\n * Returns the path as relative reference from the current Request path.\n * \n * Only the URIs path component (no schema, host etc.) is relevant and must be given.\n * Both paths must be absolute and not contain relative parts.\n * Relative URLs from one resource to another are useful when generating self-contained downloadable document archives.\n * Furthermore, they can be used to reduce the link size in documents.\n * \n * Example target paths, given a base path of \"/a/b/c/d\":\n * - \"/a/b/c/d\" -> \"\"\n * - \"/a/b/c/\" -> \"./\"\n * - \"/a/b/\" -> \"../\"\n * - \"/a/b/c/other\" -> \"other\"\n * - \"/a/x/y\" -> \"../../x/y\"\n *\n * @static\n */\n public static function getRelativeUriForPath($path)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getRelativeUriForPath($path);\n }\n\n /**\n * Generates the normalized query string for the Request.\n * \n * It builds a normalized query string, where keys/value pairs are alphabetized\n * and have consistent escaping.\n *\n * @static\n */\n public static function getQueryString()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getQueryString();\n }\n\n /**\n * Checks whether the request is secure or not.\n * \n * This method can read the client protocol from the \"X-Forwarded-Proto\" header\n * when trusted proxies were set via \"setTrustedProxies()\".\n * \n * The \"X-Forwarded-Proto\" header must contain the protocol: \"https\" or \"http\".\n *\n * @static\n */\n public static function isSecure()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isSecure();\n }\n\n /**\n * Returns the host name.\n * \n * This method can read the client host name from the \"X-Forwarded-Host\" header\n * when trusted proxies were set via \"setTrustedProxies()\".\n * \n * The \"X-Forwarded-Host\" header must contain the client host name.\n *\n * @throws SuspiciousOperationException when the host name is invalid or not trusted\n * @static\n */\n public static function getHost()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getHost();\n }\n\n /**\n * Sets the request method.\n *\n * @static\n */\n public static function setMethod($method)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->setMethod($method);\n }\n\n /**\n * Gets the request \"intended\" method.\n * \n * If the X-HTTP-Method-Override header is set, and if the method is a POST,\n * then it is used to determine the \"real\" intended HTTP method.\n * \n * The _method request parameter can also be used to determine the HTTP method,\n * but only if enableHttpMethodParameterOverride() has been called.\n * \n * The method is always an uppercased string.\n *\n * @see getRealMethod()\n * @static\n */\n public static function getMethod()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getMethod();\n }\n\n /**\n * Gets the \"real\" request method.\n *\n * @see getMethod()\n * @static\n */\n public static function getRealMethod()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getRealMethod();\n }\n\n /**\n * Gets the mime type associated with the format.\n *\n * @static\n */\n public static function getMimeType($format)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getMimeType($format);\n }\n\n /**\n * Gets the mime types associated with the format.\n *\n * @return string[]\n * @static\n */\n public static function getMimeTypes($format)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::getMimeTypes($format);\n }\n\n /**\n * Gets the format associated with the mime type.\n * \n * Resolution order:\n * 1) Exact match on the full MIME type (e.g. \"application/json\").\n * 2) Match on the canonical MIME type (i.e. before the first \";\" parameter).\n * 3) If the type is \"application/*+suffix\", use the structured syntax suffix\n * mapping (e.g. \"application/foo+json\" → \"json\"), when available.\n * 4) If $subtypeFallback is true and no match was found:\n * - return the MIME subtype (without \"x-\" prefix), provided it does not\n * contain a \"+\" (e.g. \"application/x-yaml\" → \"yaml\", \"text/csv\" → \"csv\").\n *\n * @param string|null $mimeType The mime type to check\n * @param bool $subtypeFallback Whether to fall back to the subtype if no exact match is found\n * @static\n */\n public static function getFormat($mimeType)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getFormat($mimeType);\n }\n\n /**\n * Associates a format with mime types.\n *\n * @param string $format The format to set\n * @param string|string[] $mimeTypes The associated mime types (the preferred one must be the first as it will be used as the content type)\n * @static\n */\n public static function setFormat($format, $mimeTypes)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->setFormat($format, $mimeTypes);\n }\n\n /**\n * Gets the request format.\n * \n * Here is the process to determine the format:\n * \n * * format defined by the user (with setRequestFormat())\n * * _format request attribute\n * * $default\n *\n * @see getPreferredFormat\n * @static\n */\n public static function getRequestFormat($default = 'html')\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getRequestFormat($default);\n }\n\n /**\n * Sets the request format.\n *\n * @static\n */\n public static function setRequestFormat($format)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->setRequestFormat($format);\n }\n\n /**\n * Gets the usual name of the format associated with the request's media type (provided in the Content-Type header).\n *\n * @see Request::$formats\n * @static\n */\n public static function getContentTypeFormat()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getContentTypeFormat();\n }\n\n /**\n * Sets the default locale.\n *\n * @static\n */\n public static function setDefaultLocale($locale)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->setDefaultLocale($locale);\n }\n\n /**\n * Get the default locale.\n *\n * @static\n */\n public static function getDefaultLocale()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getDefaultLocale();\n }\n\n /**\n * Sets the locale.\n *\n * @static\n */\n public static function setLocale($locale)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->setLocale($locale);\n }\n\n /**\n * Get the locale.\n *\n * @static\n */\n public static function getLocale()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getLocale();\n }\n\n /**\n * Checks if the request method is of specified type.\n *\n * @param string $method Uppercase request method (GET, POST etc)\n * @static\n */\n public static function isMethod($method)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isMethod($method);\n }\n\n /**\n * Checks whether or not the method is safe.\n *\n * @see https://tools.ietf.org/html/rfc7231#section-4.2.1\n * @static\n */\n public static function isMethodSafe()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isMethodSafe();\n }\n\n /**\n * Checks whether or not the method is idempotent.\n *\n * @static\n */\n public static function isMethodIdempotent()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isMethodIdempotent();\n }\n\n /**\n * Checks whether the method is cacheable or not.\n *\n * @see https://tools.ietf.org/html/rfc7231#section-4.2.3\n * @static\n */\n public static function isMethodCacheable()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isMethodCacheable();\n }\n\n /**\n * Returns the protocol version.\n * \n * If the application is behind a proxy, the protocol version used in the\n * requests between the client and the proxy and between the proxy and the\n * server might be different. This returns the former (from the \"Via\" header)\n * if the proxy is trusted (see \"setTrustedProxies()\"), otherwise it returns\n * the latter (from the \"SERVER_PROTOCOL\" server parameter).\n *\n * @static\n */\n public static function getProtocolVersion()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getProtocolVersion();\n }\n\n /**\n * Returns the request body content.\n *\n * @param bool $asResource If true, a resource will be returned\n * @return string|resource\n * @psalm-return ($asResource is true ? resource : string)\n * @static\n */\n public static function getContent($asResource = false)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getContent($asResource);\n }\n\n /**\n * Gets the decoded form or json request body.\n *\n * @throws JsonException When the body cannot be decoded to an array\n * @static\n */\n public static function getPayload()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getPayload();\n }\n\n /**\n * Gets the Etags.\n *\n * @static\n */\n public static function getETags()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getETags();\n }\n\n /**\n * @static\n */\n public static function isNoCache()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isNoCache();\n }\n\n /**\n * Gets the preferred format for the response by inspecting, in the following order:\n * * the request format set using setRequestFormat;\n * * the values of the Accept HTTP header.\n * \n * Note that if you use this method, you should send the \"Vary: Accept\" header\n * in the response to prevent any issues with intermediary HTTP caches.\n *\n * @static\n */\n public static function getPreferredFormat($default = 'html')\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getPreferredFormat($default);\n }\n\n /**\n * Returns the preferred language.\n *\n * @param string[] $locales An array of ordered available locales\n * @static\n */\n public static function getPreferredLanguage($locales = null)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getPreferredLanguage($locales);\n }\n\n /**\n * Gets a list of languages acceptable by the client browser ordered in the user browser preferences.\n *\n * @return string[]\n * @static\n */\n public static function getLanguages()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getLanguages();\n }\n\n /**\n * Gets a list of charsets acceptable by the client browser in preferable order.\n *\n * @return string[]\n * @static\n */\n public static function getCharsets()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getCharsets();\n }\n\n /**\n * Gets a list of encodings acceptable by the client browser in preferable order.\n *\n * @return string[]\n * @static\n */\n public static function getEncodings()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getEncodings();\n }\n\n /**\n * Gets a list of content types acceptable by the client browser in preferable order.\n *\n * @return string[]\n * @static\n */\n public static function getAcceptableContentTypes()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getAcceptableContentTypes();\n }\n\n /**\n * Returns true if the request is an XMLHttpRequest.\n * \n * It works if your JavaScript library sets an X-Requested-With HTTP header.\n * It is known to work with common JavaScript frameworks:\n *\n * @see https://wikipedia.org/wiki/List_of_Ajax_frameworks#JavaScript\n * @static\n */\n public static function isXmlHttpRequest()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isXmlHttpRequest();\n }\n\n /**\n * Checks whether the client browser prefers safe content or not according to RFC8674.\n *\n * @see https://tools.ietf.org/html/rfc8674\n * @static\n */\n public static function preferSafeContent()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->preferSafeContent();\n }\n\n /**\n * Indicates whether this request originated from a trusted proxy.\n * \n * This can be useful to determine whether or not to trust the\n * contents of a proxy-specific header.\n *\n * @static\n */\n public static function isFromTrustedProxy()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isFromTrustedProxy();\n }\n\n /**\n * Filter the given array of rules into an array of rules that are included in precognitive headers.\n *\n * @param array $rules\n * @return array\n * @static\n */\n public static function filterPrecognitiveRules($rules)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->filterPrecognitiveRules($rules);\n }\n\n /**\n * Determine if the request is attempting to be precognitive.\n *\n * @return bool\n * @static\n */\n public static function isAttemptingPrecognition()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isAttemptingPrecognition();\n }\n\n /**\n * Determine if the request is precognitive.\n *\n * @return bool\n * @static\n */\n public static function isPrecognitive()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isPrecognitive();\n }\n\n /**\n * Determine if the request is sending JSON.\n *\n * @return bool\n * @static\n */\n public static function isJson()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isJson();\n }\n\n /**\n * Determine if the current request probably expects a JSON response.\n *\n * @return bool\n * @static\n */\n public static function expectsJson()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->expectsJson();\n }\n\n /**\n * Determine if the current request is asking for JSON.\n *\n * @return bool\n * @static\n */\n public static function wantsJson()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->wantsJson();\n }\n\n /**\n * Determines whether the current requests accepts a given content type.\n *\n * @param string|array $contentTypes\n * @return bool\n * @static\n */\n public static function accepts($contentTypes)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->accepts($contentTypes);\n }\n\n /**\n * Return the most suitable content type from the given array based on content negotiation.\n *\n * @param string|array $contentTypes\n * @return string|null\n * @static\n */\n public static function prefers($contentTypes)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->prefers($contentTypes);\n }\n\n /**\n * Determine if the current request accepts any content type.\n *\n * @return bool\n * @static\n */\n public static function acceptsAnyContentType()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->acceptsAnyContentType();\n }\n\n /**\n * Determines whether a request accepts JSON.\n *\n * @return bool\n * @static\n */\n public static function acceptsJson()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->acceptsJson();\n }\n\n /**\n * Determines whether a request accepts HTML.\n *\n * @return bool\n * @static\n */\n public static function acceptsHtml()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->acceptsHtml();\n }\n\n /**\n * Determine if the given content types match.\n *\n * @param string $actual\n * @param string $type\n * @return bool\n * @static\n */\n public static function matchesType($actual, $type)\n {\n return \\Illuminate\\Http\\Request::matchesType($actual, $type);\n }\n\n /**\n * Get the data format expected in the response.\n *\n * @param string $default\n * @return string\n * @static\n */\n public static function format($default = 'html')\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->format($default);\n }\n\n /**\n * Retrieve an old input item.\n *\n * @param string|null $key\n * @param \\Illuminate\\Database\\Eloquent\\Model|string|array|null $default\n * @return string|array|null\n * @static\n */\n public static function old($key = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->old($key, $default);\n }\n\n /**\n * Flash the input for the current request to the session.\n *\n * @return void\n * @static\n */\n public static function flash()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n $instance->flash();\n }\n\n /**\n * Flash only some of the input to the session.\n *\n * @param mixed $keys\n * @return void\n * @static\n */\n public static function flashOnly($keys)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n $instance->flashOnly($keys);\n }\n\n /**\n * Flash only some of the input to the session.\n *\n * @param mixed $keys\n * @return void\n * @static\n */\n public static function flashExcept($keys)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n $instance->flashExcept($keys);\n }\n\n /**\n * Flush all of the old input from the session.\n *\n * @return void\n * @static\n */\n public static function flush()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n $instance->flush();\n }\n\n /**\n * Retrieve a server variable from the request.\n *\n * @param string|null $key\n * @param string|array|null $default\n * @return string|array|null\n * @static\n */\n public static function server($key = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->server($key, $default);\n }\n\n /**\n * Determine if a header is set on the request.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function hasHeader($key)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->hasHeader($key);\n }\n\n /**\n * Retrieve a header from the request.\n *\n * @param string|null $key\n * @param string|array|null $default\n * @return string|array|null\n * @static\n */\n public static function header($key = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->header($key, $default);\n }\n\n /**\n * Get the bearer token from the request headers.\n *\n * @return string|null\n * @static\n */\n public static function bearerToken()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->bearerToken();\n }\n\n /**\n * Get the keys for all of the input and files.\n *\n * @return array\n * @static\n */\n public static function keys()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->keys();\n }\n\n /**\n * Get all of the input and files for the request.\n *\n * @param mixed $keys\n * @return array\n * @static\n */\n public static function all($keys = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->all($keys);\n }\n\n /**\n * Retrieve an input item from the request.\n *\n * @param string|null $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function input($key = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->input($key, $default);\n }\n\n /**\n * Retrieve input from the request as a Fluent object instance.\n *\n * @param array|string|null $key\n * @return \\Illuminate\\Support\\Fluent\n * @static\n */\n public static function fluent($key = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->fluent($key);\n }\n\n /**\n * Retrieve a query string item from the request.\n *\n * @param string|null $key\n * @param string|array|null $default\n * @return string|array|null\n * @static\n */\n public static function query($key = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->query($key, $default);\n }\n\n /**\n * Retrieve a request payload item from the request.\n *\n * @param string|null $key\n * @param string|array|null $default\n * @return string|array|null\n * @static\n */\n public static function post($key = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->post($key, $default);\n }\n\n /**\n * Determine if a cookie is set on the request.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function hasCookie($key)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->hasCookie($key);\n }\n\n /**\n * Retrieve a cookie from the request.\n *\n * @param string|null $key\n * @param string|array|null $default\n * @return string|array|null\n * @static\n */\n public static function cookie($key = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->cookie($key, $default);\n }\n\n /**\n * Get an array of all of the files on the request.\n *\n * @return array<string, \\Illuminate\\Http\\UploadedFile|\\Illuminate\\Http\\UploadedFile[]>\n * @static\n */\n public static function allFiles()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->allFiles();\n }\n\n /**\n * Determine if the uploaded data contains a file.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function hasFile($key)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->hasFile($key);\n }\n\n /**\n * Retrieve a file from the request.\n *\n * @param string|null $key\n * @param mixed $default\n * @return ($key is null ? array<string, \\Illuminate\\Http\\UploadedFile|\\Illuminate\\Http\\UploadedFile[]> : \\Illuminate\\Http\\UploadedFile|\\Illuminate\\Http\\UploadedFile[]|null)\n * @static\n */\n public static function file($key = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->file($key, $default);\n }\n\n /**\n * Dump the items.\n *\n * @param mixed $keys\n * @return \\Illuminate\\Http\\Request\n * @static\n */\n public static function dump($keys = [])\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->dump($keys);\n }\n\n /**\n * Dump the given arguments and terminate execution.\n *\n * @param mixed $args\n * @return never\n * @static\n */\n public static function dd(...$args)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->dd(...$args);\n }\n\n /**\n * Determine if the data contains a given key.\n *\n * @param string|array $key\n * @return bool\n * @static\n */\n public static function exists($key)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->exists($key);\n }\n\n /**\n * Determine if the data contains a given key.\n *\n * @param string|array $key\n * @return bool\n * @static\n */\n public static function has($key)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->has($key);\n }\n\n /**\n * Determine if the instance contains any of the given keys.\n *\n * @param string|array $keys\n * @return bool\n * @static\n */\n public static function hasAny($keys)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->hasAny($keys);\n }\n\n /**\n * Apply the callback if the instance contains the given key.\n *\n * @param string $key\n * @param callable $callback\n * @param callable|null $default\n * @return $this|mixed\n * @static\n */\n public static function whenHas($key, $callback, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->whenHas($key, $callback, $default);\n }\n\n /**\n * Determine if the instance contains a non-empty value for the given key.\n *\n * @param string|array $key\n * @return bool\n * @static\n */\n public static function filled($key)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->filled($key);\n }\n\n /**\n * Determine if the instance contains an empty value for the given key.\n *\n * @param string|array $key\n * @return bool\n * @static\n */\n public static function isNotFilled($key)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isNotFilled($key);\n }\n\n /**\n * Determine if the instance contains a non-empty value for any of the given keys.\n *\n * @param string|array $keys\n * @return bool\n * @static\n */\n public static function anyFilled($keys)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->anyFilled($keys);\n }\n\n /**\n * Apply the callback if the instance contains a non-empty value for the given key.\n *\n * @param string $key\n * @param callable $callback\n * @param callable|null $default\n * @return $this|mixed\n * @static\n */\n public static function whenFilled($key, $callback, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->whenFilled($key, $callback, $default);\n }\n\n /**\n * Determine if the instance is missing a given key.\n *\n * @param string|array $key\n * @return bool\n * @static\n */\n public static function missing($key)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->missing($key);\n }\n\n /**\n * Apply the callback if the instance is missing the given key.\n *\n * @param string $key\n * @param callable $callback\n * @param callable|null $default\n * @return $this|mixed\n * @static\n */\n public static function whenMissing($key, $callback, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->whenMissing($key, $callback, $default);\n }\n\n /**\n * Retrieve data from the instance as a Stringable instance.\n *\n * @param string $key\n * @param mixed $default\n * @return \\Illuminate\\Support\\Stringable\n * @static\n */\n public static function str($key, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->str($key, $default);\n }\n\n /**\n * Retrieve data from the instance as a Stringable instance.\n *\n * @param string $key\n * @param mixed $default\n * @return \\Illuminate\\Support\\Stringable\n * @static\n */\n public static function string($key, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->string($key, $default);\n }\n\n /**\n * Retrieve data as a boolean value.\n * \n * Returns true when value is \"1\", \"true\", \"on\", and \"yes\". Otherwise, returns false.\n *\n * @param string|null $key\n * @param bool $default\n * @return bool\n * @static\n */\n public static function boolean($key = null, $default = false)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->boolean($key, $default);\n }\n\n /**\n * Retrieve data as an integer value.\n *\n * @param string $key\n * @param int $default\n * @return int\n * @static\n */\n public static function integer($key, $default = 0)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->integer($key, $default);\n }\n\n /**\n * Retrieve data as a float value.\n *\n * @param string $key\n * @param float $default\n * @return float\n * @static\n */\n public static function float($key, $default = 0.0)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->float($key, $default);\n }\n\n /**\n * Retrieve data from the instance as a Carbon instance.\n *\n * @param string $key\n * @param string|null $format\n * @param \\UnitEnum|string|null $tz\n * @return \\Illuminate\\Support\\Carbon|null\n * @throws \\Carbon\\Exceptions\\InvalidFormatException\n * @static\n */\n public static function date($key, $format = null, $tz = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->date($key, $format, $tz);\n }\n\n /**\n * Retrieve data from the instance as an enum.\n *\n * @template TEnum of \\BackedEnum\n * @param string $key\n * @param class-string<TEnum> $enumClass\n * @param TEnum|null $default\n * @return TEnum|null\n * @static\n */\n public static function enum($key, $enumClass, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->enum($key, $enumClass, $default);\n }\n\n /**\n * Retrieve data from the instance as an array of enums.\n *\n * @template TEnum of \\BackedEnum\n * @param string $key\n * @param class-string<TEnum> $enumClass\n * @return TEnum[]\n * @static\n */\n public static function enums($key, $enumClass)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->enums($key, $enumClass);\n }\n\n /**\n * Retrieve data from the instance as an array.\n *\n * @param array|string|null $key\n * @return array\n * @static\n */\n public static function array($key = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->array($key);\n }\n\n /**\n * Retrieve data from the instance as a collection.\n *\n * @param array|string|null $key\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function collect($key = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->collect($key);\n }\n\n /**\n * Get a subset containing the provided keys with values from the instance data.\n *\n * @param mixed $keys\n * @return array\n * @static\n */\n public static function only($keys)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->only($keys);\n }\n\n /**\n * Get all of the data except for a specified array of items.\n *\n * @param mixed $keys\n * @return array\n * @static\n */\n public static function except($keys)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->except($keys);\n }\n\n /**\n * Apply the callback if the given \"value\" is (or resolves to) truthy.\n *\n * @template TWhenParameter\n * @template TWhenReturnType\n * @param (\\Closure($this): TWhenParameter)|TWhenParameter|null $value\n * @param (callable($this, TWhenParameter): TWhenReturnType)|null $callback\n * @param (callable($this, TWhenParameter): TWhenReturnType)|null $default\n * @return $this|TWhenReturnType\n * @static\n */\n public static function when($value = null, $callback = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->when($value, $callback, $default);\n }\n\n /**\n * Apply the callback if the given \"value\" is (or resolves to) falsy.\n *\n * @template TUnlessParameter\n * @template TUnlessReturnType\n * @param (\\Closure($this): TUnlessParameter)|TUnlessParameter|null $value\n * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $callback\n * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $default\n * @return $this|TUnlessReturnType\n * @static\n */\n public static function unless($value = null, $callback = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->unless($value, $callback, $default);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Http\\Request::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Http\\Request::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Http\\Request::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Http\\Request::flushMacros();\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestValidation()\n * @param array $rules\n * @param mixed $params\n * @static\n */\n public static function validate($rules, ...$params)\n {\n return \\Illuminate\\Http\\Request::validate($rules, ...$params);\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestValidation()\n * @param string $errorBag\n * @param array $rules\n * @param mixed $params\n * @static\n */\n public static function validateWithBag($errorBag, $rules, ...$params)\n {\n return \\Illuminate\\Http\\Request::validateWithBag($errorBag, $rules, ...$params);\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestSignatureValidation()\n * @param mixed $absolute\n * @static\n */\n public static function hasValidSignature($absolute = true)\n {\n return \\Illuminate\\Http\\Request::hasValidSignature($absolute);\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestSignatureValidation()\n * @static\n */\n public static function hasValidRelativeSignature()\n {\n return \\Illuminate\\Http\\Request::hasValidRelativeSignature();\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestSignatureValidation()\n * @param mixed $ignoreQuery\n * @param mixed $absolute\n * @static\n */\n public static function hasValidSignatureWhileIgnoring($ignoreQuery = [], $absolute = true)\n {\n return \\Illuminate\\Http\\Request::hasValidSignatureWhileIgnoring($ignoreQuery, $absolute);\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestSignatureValidation()\n * @param mixed $ignoreQuery\n * @static\n */\n public static function hasValidRelativeSignatureWhileIgnoring($ignoreQuery = [])\n {\n return \\Illuminate\\Http\\Request::hasValidRelativeSignatureWhileIgnoring($ignoreQuery);\n }\n\n }\n /**\n * @see \\Illuminate\\Routing\\ResponseFactory\n */\n class Response {\n /**\n * Create a new response instance.\n *\n * @param mixed $content\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\Response\n * @static\n */\n public static function make($content = '', $status = 200, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->make($content, $status, $headers);\n }\n\n /**\n * Create a new \"no content\" response.\n *\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\Response\n * @static\n */\n public static function noContent($status = 204, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->noContent($status, $headers);\n }\n\n /**\n * Create a new response for a given view.\n *\n * @param string|array $view\n * @param array $data\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\Response\n * @static\n */\n public static function view($view, $data = [], $status = 200, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->view($view, $data, $status, $headers);\n }\n\n /**\n * Create a new JSON response instance.\n *\n * @param mixed $data\n * @param int $status\n * @param array $headers\n * @param int $options\n * @return \\Illuminate\\Http\\JsonResponse\n * @static\n */\n public static function json($data = [], $status = 200, $headers = [], $options = 0)\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->json($data, $status, $headers, $options);\n }\n\n /**\n * Create a new JSONP response instance.\n *\n * @param string $callback\n * @param mixed $data\n * @param int $status\n * @param array $headers\n * @param int $options\n * @return \\Illuminate\\Http\\JsonResponse\n * @static\n */\n public static function jsonp($callback, $data = [], $status = 200, $headers = [], $options = 0)\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->jsonp($callback, $data, $status, $headers, $options);\n }\n\n /**\n * Create a new event stream response.\n *\n * @param \\Closure $callback\n * @param array $headers\n * @param \\Illuminate\\Http\\StreamedEvent|string|null $endStreamWith\n * @return \\Symfony\\Component\\HttpFoundation\\StreamedResponse\n * @static\n */\n public static function eventStream($callback, $headers = [], $endStreamWith = '</stream>')\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->eventStream($callback, $headers, $endStreamWith);\n }\n\n /**\n * Create a new streamed response instance.\n *\n * @param callable|null $callback\n * @param int $status\n * @param array $headers\n * @return \\Symfony\\Component\\HttpFoundation\\StreamedResponse\n * @static\n */\n public static function stream($callback, $status = 200, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->stream($callback, $status, $headers);\n }\n\n /**\n * Create a new streamed JSON response instance.\n *\n * @param array $data\n * @param int $status\n * @param array $headers\n * @param int $encodingOptions\n * @return \\Symfony\\Component\\HttpFoundation\\StreamedJsonResponse\n * @static\n */\n public static function streamJson($data, $status = 200, $headers = [], $encodingOptions = 15)\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->streamJson($data, $status, $headers, $encodingOptions);\n }\n\n /**\n * Create a new streamed response instance as a file download.\n *\n * @param callable $callback\n * @param string|null $name\n * @param array $headers\n * @param string|null $disposition\n * @return \\Symfony\\Component\\HttpFoundation\\StreamedResponse\n * @throws \\Illuminate\\Routing\\Exceptions\\StreamedResponseException\n * @static\n */\n public static function streamDownload($callback, $name = null, $headers = [], $disposition = 'attachment')\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->streamDownload($callback, $name, $headers, $disposition);\n }\n\n /**\n * Create a new file download response.\n *\n * @param \\SplFileInfo|string $file\n * @param string|null $name\n * @param array $headers\n * @param string|null $disposition\n * @return \\Symfony\\Component\\HttpFoundation\\BinaryFileResponse\n * @static\n */\n public static function download($file, $name = null, $headers = [], $disposition = 'attachment')\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->download($file, $name, $headers, $disposition);\n }\n\n /**\n * Return the raw contents of a binary file.\n *\n * @param \\SplFileInfo|string $file\n * @param array $headers\n * @return \\Symfony\\Component\\HttpFoundation\\BinaryFileResponse\n * @static\n */\n public static function file($file, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->file($file, $headers);\n }\n\n /**\n * Create a new redirect response to the given path.\n *\n * @param string $path\n * @param int $status\n * @param array $headers\n * @param bool|null $secure\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function redirectTo($path, $status = 302, $headers = [], $secure = null)\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->redirectTo($path, $status, $headers, $secure);\n }\n\n /**\n * Create a new redirect response to a named route.\n *\n * @param \\BackedEnum|string $route\n * @param mixed $parameters\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function redirectToRoute($route, $parameters = [], $status = 302, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->redirectToRoute($route, $parameters, $status, $headers);\n }\n\n /**\n * Create a new redirect response to a controller action.\n *\n * @param array|string $action\n * @param mixed $parameters\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function redirectToAction($action, $parameters = [], $status = 302, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->redirectToAction($action, $parameters, $status, $headers);\n }\n\n /**\n * Create a new redirect response, while putting the current URL in the session.\n *\n * @param string $path\n * @param int $status\n * @param array $headers\n * @param bool|null $secure\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function redirectGuest($path, $status = 302, $headers = [], $secure = null)\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->redirectGuest($path, $status, $headers, $secure);\n }\n\n /**\n * Create a new redirect response to the previously intended location.\n *\n * @param string $default\n * @param int $status\n * @param array $headers\n * @param bool|null $secure\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function redirectToIntended($default = '/', $status = 302, $headers = [], $secure = null)\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->redirectToIntended($default, $status, $headers, $secure);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Routing\\ResponseFactory::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Routing\\ResponseFactory::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Routing\\ResponseFactory::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Routing\\ResponseFactory::flushMacros();\n }\n\n /**\n * @see \\Jiminny\\Providers\\ResponseMacroServiceProvider::boot()\n * @param mixed $data\n * @param mixed $status\n * @param array $headers\n * @param mixed $options\n * @static\n */\n public static function twiml($data = null, $status = 200, $headers = [], $options = 0)\n {\n return \\Illuminate\\Routing\\ResponseFactory::twiml($data, $status, $headers, $options);\n }\n\n }\n /**\n * @method static \\Illuminate\\Routing\\RouteRegistrar attribute(string $key, mixed $value)\n * @method static \\Illuminate\\Routing\\RouteRegistrar whereAlpha(array|string $parameters)\n * @method static \\Illuminate\\Routing\\RouteRegistrar whereAlphaNumeric(array|string $parameters)\n * @method static \\Illuminate\\Routing\\RouteRegistrar whereNumber(array|string $parameters)\n * @method static \\Illuminate\\Routing\\RouteRegistrar whereUlid(array|string $parameters)\n * @method static \\Illuminate\\Routing\\RouteRegistrar whereUuid(array|string $parameters)\n * @method static \\Illuminate\\Routing\\RouteRegistrar whereIn(array|string $parameters, array $values)\n * @method static \\Illuminate\\Routing\\RouteRegistrar as(string $value)\n * @method static \\Illuminate\\Routing\\RouteRegistrar can(\\UnitEnum|string $ability, array|string $models = [])\n * @method static \\Illuminate\\Routing\\RouteRegistrar controller(string $controller)\n * @method static \\Illuminate\\Routing\\RouteRegistrar domain(\\BackedEnum|string $value)\n * @method static \\Illuminate\\Routing\\RouteRegistrar middleware(array|string|null $middleware)\n * @method static \\Illuminate\\Routing\\RouteRegistrar missing(\\Closure $missing)\n * @method static \\Illuminate\\Routing\\RouteRegistrar name(\\BackedEnum|string $value)\n * @method static \\Illuminate\\Routing\\RouteRegistrar namespace(string|null $value)\n * @method static \\Illuminate\\Routing\\RouteRegistrar prefix(string $prefix)\n * @method static \\Illuminate\\Routing\\RouteRegistrar scopeBindings()\n * @method static \\Illuminate\\Routing\\RouteRegistrar where(array $where)\n * @method static \\Illuminate\\Routing\\RouteRegistrar withoutMiddleware(array|string $middleware)\n * @method static \\Illuminate\\Routing\\RouteRegistrar withoutScopedBindings()\n * @see \\Illuminate\\Routing\\Router\n */\n class Route {\n /**\n * Register a new GET route with the router.\n *\n * @param string $uri\n * @param array|string|callable|null $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function get($uri, $action = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->get($uri, $action);\n }\n\n /**\n * Register a new POST route with the router.\n *\n * @param string $uri\n * @param array|string|callable|null $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function post($uri, $action = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->post($uri, $action);\n }\n\n /**\n * Register a new PUT route with the router.\n *\n * @param string $uri\n * @param array|string|callable|null $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function put($uri, $action = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->put($uri, $action);\n }\n\n /**\n * Register a new PATCH route with the router.\n *\n * @param string $uri\n * @param array|string|callable|null $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function patch($uri, $action = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->patch($uri, $action);\n }\n\n /**\n * Register a new DELETE route with the router.\n *\n * @param string $uri\n * @param array|string|callable|null $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function delete($uri, $action = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->delete($uri, $action);\n }\n\n /**\n * Register a new OPTIONS route with the router.\n *\n * @param string $uri\n * @param array|string|callable|null $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function options($uri, $action = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->options($uri, $action);\n }\n\n /**\n * Register a new route responding to all verbs.\n *\n * @param string $uri\n * @param array|string|callable|null $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function any($uri, $action = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->any($uri, $action);\n }\n\n /**\n * Register a new fallback route with the router.\n *\n * @param array|string|callable|null $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function fallback($action)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->fallback($action);\n }\n\n /**\n * Create a redirect from one URI to another.\n *\n * @param string $uri\n * @param string $destination\n * @param int $status\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function redirect($uri, $destination, $status = 302)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->redirect($uri, $destination, $status);\n }\n\n /**\n * Create a permanent redirect from one URI to another.\n *\n * @param string $uri\n * @param string $destination\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function permanentRedirect($uri, $destination)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->permanentRedirect($uri, $destination);\n }\n\n /**\n * Register a new route that returns a view.\n *\n * @param string $uri\n * @param string $view\n * @param array $data\n * @param int|array $status\n * @param array $headers\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function view($uri, $view, $data = [], $status = 200, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->view($uri, $view, $data, $status, $headers);\n }\n\n /**\n * Register a new route with the given verbs.\n *\n * @param array|string $methods\n * @param string $uri\n * @param array|string|callable|null $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function match($methods, $uri, $action = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->match($methods, $uri, $action);\n }\n\n /**\n * Register an array of resource controllers.\n *\n * @param array $resources\n * @param array $options\n * @return void\n * @static\n */\n public static function resources($resources, $options = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->resources($resources, $options);\n }\n\n /**\n * Register an array of resource controllers that can be soft deleted.\n *\n * @param array $resources\n * @param array $options\n * @return void\n * @static\n */\n public static function softDeletableResources($resources, $options = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->softDeletableResources($resources, $options);\n }\n\n /**\n * Route a resource to a controller.\n *\n * @param string $name\n * @param string $controller\n * @param array $options\n * @return \\Illuminate\\Routing\\PendingResourceRegistration\n * @static\n */\n public static function resource($name, $controller, $options = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->resource($name, $controller, $options);\n }\n\n /**\n * Register an array of API resource controllers.\n *\n * @param array $resources\n * @param array $options\n * @return void\n * @static\n */\n public static function apiResources($resources, $options = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->apiResources($resources, $options);\n }\n\n /**\n * Route an API resource to a controller.\n *\n * @param string $name\n * @param string $controller\n * @param array $options\n * @return \\Illuminate\\Routing\\PendingResourceRegistration\n * @static\n */\n public static function apiResource($name, $controller, $options = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->apiResource($name, $controller, $options);\n }\n\n /**\n * Register an array of singleton resource controllers.\n *\n * @param array $singletons\n * @param array $options\n * @return void\n * @static\n */\n public static function singletons($singletons, $options = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->singletons($singletons, $options);\n }\n\n /**\n * Route a singleton resource to a controller.\n *\n * @param string $name\n * @param string $controller\n * @param array $options\n * @return \\Illuminate\\Routing\\PendingSingletonResourceRegistration\n * @static\n */\n public static function singleton($name, $controller, $options = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->singleton($name, $controller, $options);\n }\n\n /**\n * Register an array of API singleton resource controllers.\n *\n * @param array $singletons\n * @param array $options\n * @return void\n * @static\n */\n public static function apiSingletons($singletons, $options = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->apiSingletons($singletons, $options);\n }\n\n /**\n * Route an API singleton resource to a controller.\n *\n * @param string $name\n * @param string $controller\n * @param array $options\n * @return \\Illuminate\\Routing\\PendingSingletonResourceRegistration\n * @static\n */\n public static function apiSingleton($name, $controller, $options = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->apiSingleton($name, $controller, $options);\n }\n\n /**\n * Create a route group with shared attributes.\n *\n * @param array $attributes\n * @param \\Closure|array|string $routes\n * @return \\Illuminate\\Routing\\Router\n * @static\n */\n public static function group($attributes, $routes)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->group($attributes, $routes);\n }\n\n /**\n * Merge the given array with the last group stack.\n *\n * @param array $new\n * @param bool $prependExistingPrefix\n * @return array\n * @static\n */\n public static function mergeWithLastGroup($new, $prependExistingPrefix = true)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->mergeWithLastGroup($new, $prependExistingPrefix);\n }\n\n /**\n * Get the prefix from the last group on the stack.\n *\n * @return string\n * @static\n */\n public static function getLastGroupPrefix()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->getLastGroupPrefix();\n }\n\n /**\n * Add a route to the underlying route collection.\n *\n * @param array|string $methods\n * @param string $uri\n * @param array|string|callable|null $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function addRoute($methods, $uri, $action)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->addRoute($methods, $uri, $action);\n }\n\n /**\n * Create a new Route object.\n *\n * @param array|string $methods\n * @param string $uri\n * @param mixed $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function newRoute($methods, $uri, $action)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->newRoute($methods, $uri, $action);\n }\n\n /**\n * Return the response returned by the given route.\n *\n * @param string $name\n * @return \\Symfony\\Component\\HttpFoundation\\Response\n * @static\n */\n public static function respondWithRoute($name)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->respondWithRoute($name);\n }\n\n /**\n * Dispatch the request to the application.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @return \\Symfony\\Component\\HttpFoundation\\Response\n * @static\n */\n public static function dispatch($request)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->dispatch($request);\n }\n\n /**\n * Dispatch the request to a route and return the response.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @return \\Symfony\\Component\\HttpFoundation\\Response\n * @static\n */\n public static function dispatchToRoute($request)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->dispatchToRoute($request);\n }\n\n /**\n * Gather the middleware for the given route with resolved class names.\n *\n * @param \\Illuminate\\Routing\\Route $route\n * @return array\n * @static\n */\n public static function gatherRouteMiddleware($route)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->gatherRouteMiddleware($route);\n }\n\n /**\n * Resolve a flat array of middleware classes from the provided array.\n *\n * @param array $middleware\n * @param array $excluded\n * @return array\n * @static\n */\n public static function resolveMiddleware($middleware, $excluded = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->resolveMiddleware($middleware, $excluded);\n }\n\n /**\n * Create a response instance from the given value.\n *\n * @param \\Symfony\\Component\\HttpFoundation\\Request $request\n * @param mixed $response\n * @return \\Symfony\\Component\\HttpFoundation\\Response\n * @static\n */\n public static function prepareResponse($request, $response)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->prepareResponse($request, $response);\n }\n\n /**\n * Static version of prepareResponse.\n *\n * @param \\Symfony\\Component\\HttpFoundation\\Request $request\n * @param mixed $response\n * @return \\Symfony\\Component\\HttpFoundation\\Response\n * @static\n */\n public static function toResponse($request, $response)\n {\n return \\Illuminate\\Routing\\Router::toResponse($request, $response);\n }\n\n /**\n * Substitute the route bindings onto the route.\n *\n * @param \\Illuminate\\Routing\\Route $route\n * @return \\Illuminate\\Routing\\Route\n * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException<\\Illuminate\\Database\\Eloquent\\Model>\n * @throws \\Illuminate\\Routing\\Exceptions\\BackedEnumCaseNotFoundException\n * @static\n */\n public static function substituteBindings($route)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->substituteBindings($route);\n }\n\n /**\n * Substitute the implicit route bindings for the given route.\n *\n * @param \\Illuminate\\Routing\\Route $route\n * @return void\n * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException<\\Illuminate\\Database\\Eloquent\\Model>\n * @throws \\Illuminate\\Routing\\Exceptions\\BackedEnumCaseNotFoundException\n * @static\n */\n public static function substituteImplicitBindings($route)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->substituteImplicitBindings($route);\n }\n\n /**\n * Register a callback to run after implicit bindings are substituted.\n *\n * @param callable $callback\n * @return \\Illuminate\\Routing\\Router\n * @static\n */\n public static function substituteImplicitBindingsUsing($callback)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->substituteImplicitBindingsUsing($callback);\n }\n\n /**\n * Register a route matched event listener.\n *\n * @param string|callable $callback\n * @return void\n * @static\n */\n public static function matched($callback)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->matched($callback);\n }\n\n /**\n * Get all of the defined middleware short-hand names.\n *\n * @return array\n * @static\n */\n public static function getMiddleware()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->getMiddleware();\n }\n\n /**\n * Register a short-hand name for a middleware.\n *\n * @param string $name\n * @param string $class\n * @return \\Illuminate\\Routing\\Router\n * @static\n */\n public static function aliasMiddleware($name, $class)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->aliasMiddleware($name, $class);\n }\n\n /**\n * Check if a middlewareGroup with the given name exists.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMiddlewareGroup($name)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->hasMiddlewareGroup($name);\n }\n\n /**\n * Get all of the defined middleware groups.\n *\n * @return array\n * @static\n */\n public static function getMiddlewareGroups()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->getMiddlewareGroups();\n }\n\n /**\n * Register a group of middleware.\n *\n * @param string $name\n * @param array $middleware\n * @return \\Illuminate\\Routing\\Router\n * @static\n */\n public static function middlewareGroup($name, $middleware)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->middlewareGroup($name, $middleware);\n }\n\n /**\n * Add a middleware to the beginning of a middleware group.\n * \n * If the middleware is already in the group, it will not be added again.\n *\n * @param string $group\n * @param string $middleware\n * @return \\Illuminate\\Routing\\Router\n * @static\n */\n public static function prependMiddlewareToGroup($group, $middleware)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->prependMiddlewareToGroup($group, $middleware);\n }\n\n /**\n * Add a middleware to the end of a middleware group.\n * \n * If the middleware is already in the group, it will not be added again.\n *\n * @param string $group\n * @param string $middleware\n * @return \\Illuminate\\Routing\\Router\n * @static\n */\n public static function pushMiddlewareToGroup($group, $middleware)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->pushMiddlewareToGroup($group, $middleware);\n }\n\n /**\n * Remove the given middleware from the specified group.\n *\n * @param string $group\n * @param string $middleware\n * @return \\Illuminate\\Routing\\Router\n * @static\n */\n public static function removeMiddlewareFromGroup($group, $middleware)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->removeMiddlewareFromGroup($group, $middleware);\n }\n\n /**\n * Flush the router's middleware groups.\n *\n * @return \\Illuminate\\Routing\\Router\n * @static\n */\n public static function flushMiddlewareGroups()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->flushMiddlewareGroups();\n }\n\n /**\n * Add a new route parameter binder.\n *\n * @param string $key\n * @param string|callable $binder\n * @return void\n * @static\n */\n public static function bind($key, $binder)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->bind($key, $binder);\n }\n\n /**\n * Register a model binder for a wildcard.\n *\n * @param string $key\n * @param string $class\n * @param \\Closure|null $callback\n * @return void\n * @static\n */\n public static function model($key, $class, $callback = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->model($key, $class, $callback);\n }\n\n /**\n * Get the binding callback for a given binding.\n *\n * @param string $key\n * @return \\Closure|null\n * @static\n */\n public static function getBindingCallback($key)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->getBindingCallback($key);\n }\n\n /**\n * Get the global \"where\" patterns.\n *\n * @return array\n * @static\n */\n public static function getPatterns()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->getPatterns();\n }\n\n /**\n * Set a global where pattern on all routes.\n *\n * @param string $key\n * @param string $pattern\n * @return void\n * @static\n */\n public static function pattern($key, $pattern)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->pattern($key, $pattern);\n }\n\n /**\n * Set a group of global where patterns on all routes.\n *\n * @param array $patterns\n * @return void\n * @static\n */\n public static function patterns($patterns)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->patterns($patterns);\n }\n\n /**\n * Determine if the router currently has a group stack.\n *\n * @return bool\n * @static\n */\n public static function hasGroupStack()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->hasGroupStack();\n }\n\n /**\n * Get the current group stack for the router.\n *\n * @return array\n * @static\n */\n public static function getGroupStack()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->getGroupStack();\n }\n\n /**\n * Get a route parameter for the current route.\n *\n * @param string $key\n * @param string|null $default\n * @return mixed\n * @static\n */\n public static function input($key, $default = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->input($key, $default);\n }\n\n /**\n * Get the request currently being dispatched.\n *\n * @return \\Illuminate\\Http\\Request\n * @static\n */\n public static function getCurrentRequest()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->getCurrentRequest();\n }\n\n /**\n * Get the currently dispatched route instance.\n *\n * @return \\Illuminate\\Routing\\Route|null\n * @static\n */\n public static function getCurrentRoute()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->getCurrentRoute();\n }\n\n /**\n * Get the currently dispatched route instance.\n *\n * @return \\Illuminate\\Routing\\Route|null\n * @static\n */\n public static function current()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->current();\n }\n\n /**\n * Check if a route with the given name exists.\n *\n * @param string|array $name\n * @return bool\n * @static\n */\n public static function has($name)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->has($name);\n }\n\n /**\n * Get the current route name.\n *\n * @return string|null\n * @static\n */\n public static function currentRouteName()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->currentRouteName();\n }\n\n /**\n * Alias for the \"currentRouteNamed\" method.\n *\n * @param mixed $patterns\n * @return bool\n * @static\n */\n public static function is(...$patterns)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->is(...$patterns);\n }\n\n /**\n * Determine if the current route matches a pattern.\n *\n * @param mixed $patterns\n * @return bool\n * @static\n */\n public static function currentRouteNamed(...$patterns)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->currentRouteNamed(...$patterns);\n }\n\n /**\n * Get the current route action.\n *\n * @return string|null\n * @static\n */\n public static function currentRouteAction()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->currentRouteAction();\n }\n\n /**\n * Alias for the \"currentRouteUses\" method.\n *\n * @param array|string $patterns\n * @return bool\n * @static\n */\n public static function uses(...$patterns)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->uses(...$patterns);\n }\n\n /**\n * Determine if the current route action matches a given action.\n *\n * @param string $action\n * @return bool\n * @static\n */\n public static function currentRouteUses($action)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->currentRouteUses($action);\n }\n\n /**\n * Set the unmapped global resource parameters to singular.\n *\n * @param bool $singular\n * @return void\n * @static\n */\n public static function singularResourceParameters($singular = true)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->singularResourceParameters($singular);\n }\n\n /**\n * Set the global resource parameter mapping.\n *\n * @param array $parameters\n * @return void\n * @static\n */\n public static function resourceParameters($parameters = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->resourceParameters($parameters);\n }\n\n /**\n * Get or set the verbs used in the resource URIs.\n *\n * @param array $verbs\n * @return array|null\n * @static\n */\n public static function resourceVerbs($verbs = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->resourceVerbs($verbs);\n }\n\n /**\n * Get the underlying route collection.\n *\n * @return \\Illuminate\\Routing\\RouteCollectionInterface\n * @static\n */\n public static function getRoutes()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->getRoutes();\n }\n\n /**\n * Set the route collection instance.\n *\n * @param \\Illuminate\\Routing\\RouteCollection $routes\n * @return void\n * @static\n */\n public static function setRoutes($routes)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->setRoutes($routes);\n }\n\n /**\n * Set the compiled route collection instance.\n *\n * @param array $routes\n * @return void\n * @static\n */\n public static function setCompiledRoutes($routes)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->setCompiledRoutes($routes);\n }\n\n /**\n * Remove any duplicate middleware from the given array.\n *\n * @param array $middleware\n * @return array\n * @static\n */\n public static function uniqueMiddleware($middleware)\n {\n return \\Illuminate\\Routing\\Router::uniqueMiddleware($middleware);\n }\n\n /**\n * Set the container instance used by the router.\n *\n * @param \\Illuminate\\Container\\Container $container\n * @return \\Illuminate\\Routing\\Router\n * @static\n */\n public static function setContainer($container)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->setContainer($container);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Routing\\Router::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Routing\\Router::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Routing\\Router::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Routing\\Router::flushMacros();\n }\n\n /**\n * Dynamically handle calls to the class.\n *\n * @param string $method\n * @param array $parameters\n * @return mixed\n * @throws \\BadMethodCallException\n * @static\n */\n public static function macroCall($method, $parameters)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->macroCall($method, $parameters);\n }\n\n /**\n * Call the given Closure with this instance then return the instance.\n *\n * @param (callable($this): mixed)|null $callback\n * @return ($callback is null ? \\Illuminate\\Support\\HigherOrderTapProxy : $this)\n * @static\n */\n public static function tap($callback = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->tap($callback);\n }\n\n /**\n * @see \\Laravel\\Ui\\AuthRouteMethods::auth()\n * @param mixed $options\n * @static\n */\n public static function auth($options = [])\n {\n return \\Illuminate\\Routing\\Router::auth($options);\n }\n\n /**\n * @see \\Laravel\\Ui\\AuthRouteMethods::resetPassword()\n * @static\n */\n public static function resetPassword()\n {\n return \\Illuminate\\Routing\\Router::resetPassword();\n }\n\n /**\n * @see \\Laravel\\Ui\\AuthRouteMethods::confirmPassword()\n * @static\n */\n public static function confirmPassword()\n {\n return \\Illuminate\\Routing\\Router::confirmPassword();\n }\n\n /**\n * @see \\Laravel\\Ui\\AuthRouteMethods::emailVerification()\n * @static\n */\n public static function emailVerification()\n {\n return \\Illuminate\\Routing\\Router::emailVerification();\n }\n\n }\n /**\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes withoutOverlapping(int $expiresAt = 1440)\n * @method static void mergeAttributes(\\Illuminate\\Console\\Scheduling\\Event $event)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes user(string $user)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes environments(mixed $environments)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes evenInMaintenanceMode()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes onOneServer()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes runInBackground()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes when(\\Closure|bool $callback)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes skip(\\Closure|bool $callback)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes name(string $description)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes description(string $description)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes cron(string $expression)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes between(string $startTime, string $endTime)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes unlessBetween(string $startTime, string $endTime)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everySecond()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyTwoSeconds()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyFiveSeconds()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyTenSeconds()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyFifteenSeconds()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyTwentySeconds()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyThirtySeconds()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyMinute()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyTwoMinutes()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyThreeMinutes()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyFourMinutes()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyFiveMinutes()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyTenMinutes()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyFifteenMinutes()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyThirtyMinutes()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes hourly()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes hourlyAt(array|string|int|int[] $offset)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyOddHour(array|string|int $offset = 0)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyTwoHours(array|string|int $offset = 0)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyThreeHours(array|string|int $offset = 0)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyFourHours(array|string|int $offset = 0)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everySixHours(array|string|int $offset = 0)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes daily()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes at(string $time)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes dailyAt(string $time)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes twiceDaily(int $first = 1, int $second = 13)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes twiceDailyAt(int $first = 1, int $second = 13, int $offset = 0)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes weekdays()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes weekends()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes mondays()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes tuesdays()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes wednesdays()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes thursdays()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes fridays()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes saturdays()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes sundays()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes weekly()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes weeklyOn(mixed $dayOfWeek, string $time = '0:0')\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes monthly()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes monthlyOn(int $dayOfMonth = 1, string $time = '0:0')\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes twiceMonthly(int $first = 1, int $second = 16, string $time = '0:0')\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes lastDayOfMonth(string $time = '0:0')\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes quarterly()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes quarterlyOn(int $dayOfQuarter = 1, string $time = '0:0')\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes yearly()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes yearlyOn(int $month = 1, int|string $dayOfMonth = 1, string $time = '0:0')\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes days(mixed $days)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes timezone(\\UnitEnum|\\DateTimeZone|string $timezone)\n * @see \\Illuminate\\Console\\Scheduling\\Schedule\n */\n class Schedule {\n /**\n * Add a new callback event to the schedule.\n *\n * @param string|callable $callback\n * @param array $parameters\n * @return \\Illuminate\\Console\\Scheduling\\CallbackEvent\n * @static\n */\n public static function call($callback, $parameters = [])\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n return $instance->call($callback, $parameters);\n }\n\n /**\n * Add a new Artisan command event to the schedule.\n *\n * @param \\Symfony\\Component\\Console\\Command\\Command|string $command\n * @param array $parameters\n * @return \\Illuminate\\Console\\Scheduling\\Event\n * @static\n */\n public static function command($command, $parameters = [])\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n return $instance->command($command, $parameters);\n }\n\n /**\n * Add a new job callback event to the schedule.\n *\n * @param object|string $job\n * @param \\UnitEnum|string|null $queue\n * @param \\UnitEnum|string|null $connection\n * @return \\Illuminate\\Console\\Scheduling\\CallbackEvent\n * @static\n */\n public static function job($job, $queue = null, $connection = null)\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n return $instance->job($job, $queue, $connection);\n }\n\n /**\n * Add a new command event to the schedule.\n *\n * @param string $command\n * @param array $parameters\n * @return \\Illuminate\\Console\\Scheduling\\Event\n * @static\n */\n public static function exec($command, $parameters = [])\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n return $instance->exec($command, $parameters);\n }\n\n /**\n * Create new schedule group.\n *\n * @param \\Illuminate\\Console\\Scheduling\\Event $event\n * @return void\n * @throws \\RuntimeException\n * @static\n */\n public static function group($events)\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n $instance->group($events);\n }\n\n /**\n * Compile array input for a command.\n *\n * @param string|int $key\n * @param array $value\n * @return string\n * @static\n */\n public static function compileArrayInput($key, $value)\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n return $instance->compileArrayInput($key, $value);\n }\n\n /**\n * Determine if the server is allowed to run this event.\n *\n * @param \\Illuminate\\Console\\Scheduling\\Event $event\n * @param \\DateTimeInterface $time\n * @return bool\n * @static\n */\n public static function serverShouldRun($event, $time)\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n return $instance->serverShouldRun($event, $time);\n }\n\n /**\n * Get all of the events on the schedule that are due.\n *\n * @param \\Illuminate\\Contracts\\Foundation\\Application $app\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function dueEvents($app)\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n return $instance->dueEvents($app);\n }\n\n /**\n * Get all of the events on the schedule.\n *\n * @return \\Illuminate\\Console\\Scheduling\\Event[]\n * @static\n */\n public static function events()\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n return $instance->events();\n }\n\n /**\n * Specify the cache store that should be used to store mutexes.\n *\n * @param string $store\n * @return \\Illuminate\\Console\\Scheduling\\Schedule\n * @static\n */\n public static function useCache($store)\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n return $instance->useCache($store);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Console\\Scheduling\\Schedule::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Console\\Scheduling\\Schedule::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Console\\Scheduling\\Schedule::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Console\\Scheduling\\Schedule::flushMacros();\n }\n\n /**\n * Dynamically handle calls to the class.\n *\n * @param string $method\n * @param array $parameters\n * @return mixed\n * @throws \\BadMethodCallException\n * @static\n */\n public static function macroCall($method, $parameters)\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n return $instance->macroCall($method, $parameters);\n }\n\n }\n /**\n * @see \\Illuminate\\Database\\Schema\\Builder\n */\n class Schema {\n /**\n * Drop all tables from the database.\n *\n * @return void\n * @static\n */\n public static function dropAllTables()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\MySqlBuilder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->dropAllTables();\n }\n\n /**\n * Drop all views from the database.\n *\n * @return void\n * @static\n */\n public static function dropAllViews()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\MySqlBuilder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->dropAllViews();\n }\n\n /**\n * Get the names of current schemas for the connection.\n *\n * @return string[]|null\n * @static\n */\n public static function getCurrentSchemaListing()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\MySqlBuilder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getCurrentSchemaListing();\n }\n\n /**\n * Set the default string length for migrations.\n *\n * @param int $length\n * @return void\n * @static\n */\n public static function defaultStringLength($length)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n \\Illuminate\\Database\\Schema\\MariaDbBuilder::defaultStringLength($length);\n }\n\n /**\n * Set the default time precision for migrations.\n *\n * @static\n */\n public static function defaultTimePrecision($precision)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n return \\Illuminate\\Database\\Schema\\MariaDbBuilder::defaultTimePrecision($precision);\n }\n\n /**\n * Set the default morph key type for migrations.\n *\n * @param string $type\n * @return void\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function defaultMorphKeyType($type)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n \\Illuminate\\Database\\Schema\\MariaDbBuilder::defaultMorphKeyType($type);\n }\n\n /**\n * Set the default morph key type for migrations to UUIDs.\n *\n * @return void\n * @static\n */\n public static function morphUsingUuids()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n \\Illuminate\\Database\\Schema\\MariaDbBuilder::morphUsingUuids();\n }\n\n /**\n * Set the default morph key type for migrations to ULIDs.\n *\n * @return void\n * @static\n */\n public static function morphUsingUlids()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n \\Illuminate\\Database\\Schema\\MariaDbBuilder::morphUsingUlids();\n }\n\n /**\n * Create a database in the schema.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function createDatabase($name)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->createDatabase($name);\n }\n\n /**\n * Drop a database from the schema if the database exists.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function dropDatabaseIfExists($name)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->dropDatabaseIfExists($name);\n }\n\n /**\n * Get the schemas that belong to the connection.\n *\n * @return \\Illuminate\\Database\\Schema\\list<array{name: string, path: string|null, default: bool}>\n * @static\n */\n public static function getSchemas()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getSchemas();\n }\n\n /**\n * Determine if the given table exists.\n *\n * @param string $table\n * @return bool\n * @static\n */\n public static function hasTable($table)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->hasTable($table);\n }\n\n /**\n * Determine if the given view exists.\n *\n * @param string $view\n * @return bool\n * @static\n */\n public static function hasView($view)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->hasView($view);\n }\n\n /**\n * Get the tables that belong to the connection.\n *\n * @param string|string[]|null $schema\n * @return \\Illuminate\\Database\\Schema\\list<array{name: string, schema: string|null, schema_qualified_name: string, size: int|null, comment: string|null, collation: string|null, engine: string|null}>\n * @static\n */\n public static function getTables($schema = null)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getTables($schema);\n }\n\n /**\n * Get the names of the tables that belong to the connection.\n *\n * @param string|string[]|null $schema\n * @param bool $schemaQualified\n * @return list<string>\n * @static\n */\n public static function getTableListing($schema = null, $schemaQualified = true)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getTableListing($schema, $schemaQualified);\n }\n\n /**\n * Get the views that belong to the connection.\n *\n * @param string|string[]|null $schema\n * @return \\Illuminate\\Database\\Schema\\list<array{name: string, schema: string|null, schema_qualified_name: string, definition: string}>\n * @static\n */\n public static function getViews($schema = null)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getViews($schema);\n }\n\n /**\n * Get the user-defined types that belong to the connection.\n *\n * @param string|string[]|null $schema\n * @return \\Illuminate\\Database\\Schema\\list<array{name: string, schema: string, type: string, type: string, category: string, implicit: bool}>\n * @static\n */\n public static function getTypes($schema = null)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getTypes($schema);\n }\n\n /**\n * Determine if the given table has a given column.\n *\n * @param string $table\n * @param string $column\n * @return bool\n * @static\n */\n public static function hasColumn($table, $column)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->hasColumn($table, $column);\n }\n\n /**\n * Determine if the given table has given columns.\n *\n * @param string $table\n * @param array<string> $columns\n * @return bool\n * @static\n */\n public static function hasColumns($table, $columns)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->hasColumns($table, $columns);\n }\n\n /**\n * Execute a table builder callback if the given table has a given column.\n *\n * @param string $table\n * @param string $column\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function whenTableHasColumn($table, $column, $callback)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->whenTableHasColumn($table, $column, $callback);\n }\n\n /**\n * Execute a table builder callback if the given table doesn't have a given column.\n *\n * @param string $table\n * @param string $column\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function whenTableDoesntHaveColumn($table, $column, $callback)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->whenTableDoesntHaveColumn($table, $column, $callback);\n }\n\n /**\n * Get the data type for the given column name.\n *\n * @param string $table\n * @param string $column\n * @param bool $fullDefinition\n * @return string\n * @static\n */\n public static function getColumnType($table, $column, $fullDefinition = false)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getColumnType($table, $column, $fullDefinition);\n }\n\n /**\n * Get the column listing for a given table.\n *\n * @param string $table\n * @return list<string>\n * @static\n */\n public static function getColumnListing($table)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getColumnListing($table);\n }\n\n /**\n * Get the columns for a given table.\n *\n * @param string $table\n * @return \\Illuminate\\Database\\Schema\\list<array{name: string, type: string, type_name: string, nullable: bool, default: mixed, auto_increment: bool, comment: string|null, generation: array{type: string, expression: string|null}|null}>\n * @static\n */\n public static function getColumns($table)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getColumns($table);\n }\n\n /**\n * Get the indexes for a given table.\n *\n * @param string $table\n * @return \\Illuminate\\Database\\Schema\\list<array{name: string, columns: list<string>, type: string, unique: bool, primary: bool}>\n * @static\n */\n public static function getIndexes($table)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getIndexes($table);\n }\n\n /**\n * Get the names of the indexes for a given table.\n *\n * @param string $table\n * @return list<string>\n * @static\n */\n public static function getIndexListing($table)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getIndexListing($table);\n }\n\n /**\n * Determine if the given table has a given index.\n *\n * @param string $table\n * @param string|array $index\n * @param string|null $type\n * @return bool\n * @static\n */\n public static function hasIndex($table, $index, $type = null)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->hasIndex($table, $index, $type);\n }\n\n /**\n * Get the foreign keys for a given table.\n *\n * @param string $table\n * @return array\n * @static\n */\n public static function getForeignKeys($table)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getForeignKeys($table);\n }\n\n /**\n * Modify a table on the schema.\n *\n * @param string $table\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function table($table, $callback)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->table($table, $callback);\n }\n\n /**\n * Create a new table on the schema.\n *\n * @param string $table\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function create($table, $callback)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->create($table, $callback);\n }\n\n /**\n * Drop a table from the schema.\n *\n * @param string $table\n * @return void\n * @static\n */\n public static function drop($table)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->drop($table);\n }\n\n /**\n * Drop a table from the schema if it exists.\n *\n * @param string $table\n * @return void\n * @static\n */\n public static function dropIfExists($table)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->dropIfExists($table);\n }\n\n /**\n * Drop columns from a table schema.\n *\n * @param string $table\n * @param string|array<string> $columns\n * @return void\n * @static\n */\n public static function dropColumns($table, $columns)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->dropColumns($table, $columns);\n }\n\n /**\n * Drop all types from the database.\n *\n * @return void\n * @throws \\LogicException\n * @static\n */\n public static function dropAllTypes()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->dropAllTypes();\n }\n\n /**\n * Rename a table on the schema.\n *\n * @param string $from\n * @param string $to\n * @return void\n * @static\n */\n public static function rename($from, $to)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->rename($from, $to);\n }\n\n /**\n * Enable foreign key constraints.\n *\n * @return bool\n * @static\n */\n public static function enableForeignKeyConstraints()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->enableForeignKeyConstraints();\n }\n\n /**\n * Disable foreign key constraints.\n *\n * @return bool\n * @static\n */\n public static function disableForeignKeyConstraints()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->disableForeignKeyConstraints();\n }\n\n /**\n * Disable foreign key constraints during the execution of a callback.\n *\n * @param \\Closure $callback\n * @return mixed\n * @static\n */\n public static function withoutForeignKeyConstraints($callback)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->withoutForeignKeyConstraints($callback);\n }\n\n /**\n * Get the default schema name for the connection.\n *\n * @return string|null\n * @static\n */\n public static function getCurrentSchemaName()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getCurrentSchemaName();\n }\n\n /**\n * Parse the given database object reference and extract the schema and table.\n *\n * @param string $reference\n * @param string|bool|null $withDefaultSchema\n * @return array\n * @static\n */\n public static function parseSchemaAndTable($reference, $withDefaultSchema = null)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->parseSchemaAndTable($reference, $withDefaultSchema);\n }\n\n /**\n * Get the database connection instance.\n *\n * @return \\Illuminate\\Database\\Connection\n * @static\n */\n public static function getConnection()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getConnection();\n }\n\n /**\n * Set the Schema Blueprint resolver callback.\n *\n * @param \\Closure(\\Illuminate\\Database\\Connection, string, \\Closure|null): \\Illuminate\\Database\\Schema\\Blueprint $resolver\n * @return void\n * @static\n */\n public static function blueprintResolver($resolver)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->blueprintResolver($resolver);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n \\Illuminate\\Database\\Schema\\MariaDbBuilder::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n \\Illuminate\\Database\\Schema\\MariaDbBuilder::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n return \\Illuminate\\Database\\Schema\\MariaDbBuilder::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n \\Illuminate\\Database\\Schema\\MariaDbBuilder::flushMacros();\n }\n\n }\n /**\n * @see \\Illuminate\\Session\\SessionManager\n */\n class Session {\n /**\n * Determine if requests for the same session should wait for each to finish before executing.\n *\n * @return bool\n * @static\n */\n public static function shouldBlock()\n {\n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->shouldBlock();\n }\n\n /**\n * Get the name of the cache store / driver that should be used to acquire session locks.\n *\n * @return string|null\n * @static\n */\n public static function blockDriver()\n {\n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->blockDriver();\n }\n\n /**\n * Get the maximum number of seconds the session lock should be held for.\n *\n * @return int\n * @static\n */\n public static function defaultRouteBlockLockSeconds()\n {\n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->defaultRouteBlockLockSeconds();\n }\n\n /**\n * Get the maximum number of seconds to wait while attempting to acquire a route block session lock.\n *\n * @return int\n * @static\n */\n public static function defaultRouteBlockWaitSeconds()\n {\n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->defaultRouteBlockWaitSeconds();\n }\n\n /**\n * Get the session configuration.\n *\n * @return array\n * @static\n */\n public static function getSessionConfig()\n {\n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->getSessionConfig();\n }\n\n /**\n * Get the default session driver name.\n *\n * @return string|null\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Set the default session driver name.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultDriver($name)\n {\n /** @var \\Illuminate\\Session\\SessionManager $instance */\n $instance->setDefaultDriver($name);\n }\n\n /**\n * Get a driver instance.\n *\n * @param string|null $driver\n * @return mixed\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function driver($driver = null)\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->driver($driver);\n }\n\n /**\n * Register a custom driver creator Closure.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @return \\Illuminate\\Session\\SessionManager\n * @static\n */\n public static function extend($driver, $callback)\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->extend($driver, $callback);\n }\n\n /**\n * Get all of the created \"drivers\".\n *\n * @return array\n * @static\n */\n public static function getDrivers()\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->getDrivers();\n }\n\n /**\n * Get the container instance used by the manager.\n *\n * @return \\Illuminate\\Contracts\\Container\\Container\n * @static\n */\n public static function getContainer()\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->getContainer();\n }\n\n /**\n * Set the container instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Container\\Container $container\n * @return \\Illuminate\\Session\\SessionManager\n * @static\n */\n public static function setContainer($container)\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->setContainer($container);\n }\n\n /**\n * Forget all of the resolved driver instances.\n *\n * @return \\Illuminate\\Session\\SessionManager\n * @static\n */\n public static function forgetDrivers()\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->forgetDrivers();\n }\n\n /**\n * Start the session, reading the data from a handler.\n *\n * @return bool\n * @static\n */\n public static function start()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->start();\n }\n\n /**\n * Save the session data to storage.\n *\n * @return void\n * @static\n */\n public static function save()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->save();\n }\n\n /**\n * Age the flash data for the session.\n *\n * @return void\n * @static\n */\n public static function ageFlashData()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->ageFlashData();\n }\n\n /**\n * Get all of the session data.\n *\n * @return array\n * @static\n */\n public static function all()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->all();\n }\n\n /**\n * Get a subset of the session data.\n *\n * @param array $keys\n * @return array\n * @static\n */\n public static function only($keys)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->only($keys);\n }\n\n /**\n * Get all the session data except for a specified array of items.\n *\n * @param array $keys\n * @return array\n * @static\n */\n public static function except($keys)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->except($keys);\n }\n\n /**\n * Checks if a key exists.\n *\n * @param string|array $key\n * @return bool\n * @static\n */\n public static function exists($key)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->exists($key);\n }\n\n /**\n * Determine if the given key is missing from the session data.\n *\n * @param string|array $key\n * @return bool\n * @static\n */\n public static function missing($key)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->missing($key);\n }\n\n /**\n * Determine if a key is present and not null.\n *\n * @param string|array $key\n * @return bool\n * @static\n */\n public static function has($key)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->has($key);\n }\n\n /**\n * Determine if any of the given keys are present and not null.\n *\n * @param string|array $key\n * @return bool\n * @static\n */\n public static function hasAny($key)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->hasAny($key);\n }\n\n /**\n * Get an item from the session.\n *\n * @param string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function get($key, $default = null)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->get($key, $default);\n }\n\n /**\n * Get the value of a given key and then forget it.\n *\n * @param string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function pull($key, $default = null)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->pull($key, $default);\n }\n\n /**\n * Determine if the session contains old input.\n *\n * @param string|null $key\n * @return bool\n * @static\n */\n public static function hasOldInput($key = null)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->hasOldInput($key);\n }\n\n /**\n * Get the requested item from the flashed input array.\n *\n * @param string|null $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function getOldInput($key = null, $default = null)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->getOldInput($key, $default);\n }\n\n /**\n * Replace the given session attributes entirely.\n *\n * @param array $attributes\n * @return void\n * @static\n */\n public static function replace($attributes)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->replace($attributes);\n }\n\n /**\n * Put a key / value pair or array of key / value pairs in the session.\n *\n * @param string|array $key\n * @param mixed $value\n * @return void\n * @static\n */\n public static function put($key, $value = null)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->put($key, $value);\n }\n\n /**\n * Get an item from the session, or store the default value.\n *\n * @param string $key\n * @param \\Closure $callback\n * @return mixed\n * @static\n */\n public static function remember($key, $callback)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->remember($key, $callback);\n }\n\n /**\n * Push a value onto a session array.\n *\n * @param string $key\n * @param mixed $value\n * @return void\n * @static\n */\n public static function push($key, $value)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->push($key, $value);\n }\n\n /**\n * Increment the value of an item in the session.\n *\n * @param string $key\n * @param int $amount\n * @return mixed\n * @static\n */\n public static function increment($key, $amount = 1)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->increment($key, $amount);\n }\n\n /**\n * Decrement the value of an item in the session.\n *\n * @param string $key\n * @param int $amount\n * @return int\n * @static\n */\n public static function decrement($key, $amount = 1)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->decrement($key, $amount);\n }\n\n /**\n * Flash a key / value pair to the session.\n *\n * @param string $key\n * @param mixed $value\n * @return void\n * @static\n */\n public static function flash($key, $value = true)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->flash($key, $value);\n }\n\n /**\n * Flash a key / value pair to the session for immediate use.\n *\n * @param string $key\n * @param mixed $value\n * @return void\n * @static\n */\n public static function now($key, $value)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->now($key, $value);\n }\n\n /**\n * Reflash all of the session flash data.\n *\n * @return void\n * @static\n */\n public static function reflash()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->reflash();\n }\n\n /**\n * Reflash a subset of the current flash data.\n *\n * @param mixed $keys\n * @return void\n * @static\n */\n public static function keep($keys = null)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->keep($keys);\n }\n\n /**\n * Flash an input array to the session.\n *\n * @param array $value\n * @return void\n * @static\n */\n public static function flashInput($value)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->flashInput($value);\n }\n\n /**\n * Get the session cache instance.\n *\n * @return \\Illuminate\\Contracts\\Cache\\Repository\n * @static\n */\n public static function cache()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->cache();\n }\n\n /**\n * Remove an item from the session, returning its value.\n *\n * @param string $key\n * @return mixed\n * @static\n */\n public static function remove($key)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->remove($key);\n }\n\n /**\n * Remove one or many items from the session.\n *\n * @param string|array $keys\n * @return void\n * @static\n */\n public static function forget($keys)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->forget($keys);\n }\n\n /**\n * Remove all of the items from the session.\n *\n * @return void\n * @static\n */\n public static function flush()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->flush();\n }\n\n /**\n * Flush the session data and regenerate the ID.\n *\n * @return bool\n * @static\n */\n public static function invalidate()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->invalidate();\n }\n\n /**\n * Generate a new session identifier.\n *\n * @param bool $destroy\n * @return bool\n * @static\n */\n public static function regenerate($destroy = false)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->regenerate($destroy);\n }\n\n /**\n * Generate a new session ID for the session.\n *\n * @param bool $destroy\n * @return bool\n * @static\n */\n public static function migrate($destroy = false)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->migrate($destroy);\n }\n\n /**\n * Determine if the session has been started.\n *\n * @return bool\n * @static\n */\n public static function isStarted()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->isStarted();\n }\n\n /**\n * Get the name of the session.\n *\n * @return string\n * @static\n */\n public static function getName()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->getName();\n }\n\n /**\n * Set the name of the session.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setName($name)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->setName($name);\n }\n\n /**\n * Get the current session ID.\n *\n * @return string\n * @static\n */\n public static function id()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->id();\n }\n\n /**\n * Get the current session ID.\n *\n * @return string\n * @static\n */\n public static function getId()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->getId();\n }\n\n /**\n * Set the session ID.\n *\n * @param string|null $id\n * @return void\n * @static\n */\n public static function setId($id)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->setId($id);\n }\n\n /**\n * Determine if this is a valid session ID.\n *\n * @param string|null $id\n * @return bool\n * @static\n */\n public static function isValidId($id)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->isValidId($id);\n }\n\n /**\n * Set the existence of the session on the handler if applicable.\n *\n * @param bool $value\n * @return void\n * @static\n */\n public static function setExists($value)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->setExists($value);\n }\n\n /**\n * Get the CSRF token value.\n *\n * @return string\n * @static\n */\n public static function token()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->token();\n }\n\n /**\n * Regenerate the CSRF token value.\n *\n * @return void\n * @static\n */\n public static function regenerateToken()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->regenerateToken();\n }\n\n /**\n * Determine if the previous URI is available.\n *\n * @return bool\n * @static\n */\n public static function hasPreviousUri()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->hasPreviousUri();\n }\n\n /**\n * Get the previous URL from the session as a URI instance.\n *\n * @return \\Illuminate\\Support\\Uri\n * @throws \\RuntimeException\n * @static\n */\n public static function previousUri()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->previousUri();\n }\n\n /**\n * Get the previous URL from the session.\n *\n * @return string|null\n * @static\n */\n public static function previousUrl()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->previousUrl();\n }\n\n /**\n * Set the \"previous\" URL in the session.\n *\n * @param string $url\n * @return void\n * @static\n */\n public static function setPreviousUrl($url)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->setPreviousUrl($url);\n }\n\n /**\n * Specify that the user has confirmed their password.\n *\n * @return void\n * @static\n */\n public static function passwordConfirmed()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->passwordConfirmed();\n }\n\n /**\n * Get the underlying session handler implementation.\n *\n * @return \\SessionHandlerInterface\n * @static\n */\n public static function getHandler()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->getHandler();\n }\n\n /**\n * Set the underlying session handler implementation.\n *\n * @param \\SessionHandlerInterface $handler\n * @return \\SessionHandlerInterface\n * @static\n */\n public static function setHandler($handler)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->setHandler($handler);\n }\n\n /**\n * Determine if the session handler needs a request.\n *\n * @return bool\n * @static\n */\n public static function handlerNeedsRequest()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->handlerNeedsRequest();\n }\n\n /**\n * Set the request on the handler instance.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @return void\n * @static\n */\n public static function setRequestOnHandler($request)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->setRequestOnHandler($request);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Session\\Store::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Session\\Store::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Session\\Store::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Session\\Store::flushMacros();\n }\n\n }\n /**\n * @method static bool has(string $location)\n * @method static string read(string $location)\n * @method static \\League\\Flysystem\\DirectoryListing listContents(string $location, bool $deep = false)\n * @method static int fileSize(string $path)\n * @method static string visibility(string $path)\n * @method static void write(string $location, string $contents, array $config = [])\n * @method static void createDirectory(string $location, array $config = [])\n * @see \\Illuminate\\Filesystem\\FilesystemManager\n */\n class Storage {\n /**\n * Get a filesystem instance.\n *\n * @param string|null $name\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function drive($name = null)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->drive($name);\n }\n\n /**\n * Get a filesystem instance.\n *\n * @param \\UnitEnum|string|null $name\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function disk($name = null)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->disk($name);\n }\n\n /**\n * Get a default cloud filesystem instance.\n *\n * @return \\Illuminate\\Contracts\\Filesystem\\Cloud\n * @static\n */\n public static function cloud()\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->cloud();\n }\n\n /**\n * Build an on-demand disk.\n *\n * @param string|array $config\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function build($config)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->build($config);\n }\n\n /**\n * Create an instance of the local driver.\n *\n * @param array $config\n * @param string $name\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function createLocalDriver($config, $name = 'local')\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->createLocalDriver($config, $name);\n }\n\n /**\n * Create an instance of the ftp driver.\n *\n * @param array $config\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function createFtpDriver($config)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->createFtpDriver($config);\n }\n\n /**\n * Create an instance of the sftp driver.\n *\n * @param array $config\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function createSftpDriver($config)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->createSftpDriver($config);\n }\n\n /**\n * Create an instance of the Amazon S3 driver.\n *\n * @param array $config\n * @return \\Illuminate\\Contracts\\Filesystem\\Cloud\n * @static\n */\n public static function createS3Driver($config)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->createS3Driver($config);\n }\n\n /**\n * Create a scoped driver.\n *\n * @param array $config\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function createScopedDriver($config)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->createScopedDriver($config);\n }\n\n /**\n * Set the given disk instance.\n *\n * @param string $name\n * @param mixed $disk\n * @return \\Illuminate\\Filesystem\\FilesystemManager\n * @static\n */\n public static function set($name, $disk)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->set($name, $disk);\n }\n\n /**\n * Get the default driver name.\n *\n * @return string\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Get the default cloud driver name.\n *\n * @return string\n * @static\n */\n public static function getDefaultCloudDriver()\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->getDefaultCloudDriver();\n }\n\n /**\n * Unset the given disk instances.\n *\n * @param array|string $disk\n * @return \\Illuminate\\Filesystem\\FilesystemManager\n * @static\n */\n public static function forgetDisk($disk)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->forgetDisk($disk);\n }\n\n /**\n * Disconnect the given disk and remove from local cache.\n *\n * @param string|null $name\n * @return void\n * @static\n */\n public static function purge($name = null)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n $instance->purge($name);\n }\n\n /**\n * Register a custom driver creator Closure.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @return \\Illuminate\\Filesystem\\FilesystemManager\n * @static\n */\n public static function extend($driver, $callback)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->extend($driver, $callback);\n }\n\n /**\n * Set the application instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Foundation\\Application $app\n * @return \\Illuminate\\Filesystem\\FilesystemManager\n * @static\n */\n public static function setApplication($app)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->setApplication($app);\n }\n\n /**\n * Determine if temporary URLs can be generated.\n *\n * @return bool\n * @static\n */\n public static function providesTemporaryUrls()\n {\n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->providesTemporaryUrls();\n }\n\n /**\n * Get a temporary URL for the file at the given path.\n *\n * @param string $path\n * @param \\DateTimeInterface $expiration\n * @param array $options\n * @return string\n * @static\n */\n public static function temporaryUrl($path, $expiration, $options = [])\n {\n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->temporaryUrl($path, $expiration, $options);\n }\n\n /**\n * Specify the name of the disk the adapter is managing.\n *\n * @param string $disk\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function diskName($disk)\n {\n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->diskName($disk);\n }\n\n /**\n * Indicate that signed URLs should serve the corresponding files.\n *\n * @param bool $serve\n * @param \\Closure|null $urlGeneratorResolver\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function shouldServeSignedUrls($serve = true, $urlGeneratorResolver = null)\n {\n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->shouldServeSignedUrls($serve, $urlGeneratorResolver);\n }\n\n /**\n * Assert that the given file or directory exists.\n *\n * @param string|array $path\n * @param string|null $content\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function assertExists($path, $content = null)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->assertExists($path, $content);\n }\n\n /**\n * Assert that the number of files in path equals the expected count.\n *\n * @param string $path\n * @param int $count\n * @param bool $recursive\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function assertCount($path, $count, $recursive = false)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->assertCount($path, $count, $recursive);\n }\n\n /**\n * Assert that the given file or directory does not exist.\n *\n * @param string|array $path\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function assertMissing($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->assertMissing($path);\n }\n\n /**\n * Assert that the given directory is empty.\n *\n * @param string $path\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function assertDirectoryEmpty($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->assertDirectoryEmpty($path);\n }\n\n /**\n * Determine if a file or directory exists.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function exists($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->exists($path);\n }\n\n /**\n * Determine if a file or directory is missing.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function missing($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->missing($path);\n }\n\n /**\n * Determine if a file exists.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function fileExists($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->fileExists($path);\n }\n\n /**\n * Determine if a file is missing.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function fileMissing($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->fileMissing($path);\n }\n\n /**\n * Determine if a directory exists.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function directoryExists($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->directoryExists($path);\n }\n\n /**\n * Determine if a directory is missing.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function directoryMissing($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->directoryMissing($path);\n }\n\n /**\n * Get the full path to the file that exists at the given relative path.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function path($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->path($path);\n }\n\n /**\n * Get the contents of a file.\n *\n * @param string $path\n * @return string|null\n * @static\n */\n public static function get($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->get($path);\n }\n\n /**\n * Get the contents of a file as decoded JSON.\n *\n * @param string $path\n * @param int $flags\n * @return array|null\n * @static\n */\n public static function json($path, $flags = 0)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->json($path, $flags);\n }\n\n /**\n * Create a streamed response for a given file.\n *\n * @param string $path\n * @param string|null $name\n * @param array $headers\n * @param string|null $disposition\n * @return \\Symfony\\Component\\HttpFoundation\\StreamedResponse\n * @static\n */\n public static function response($path, $name = null, $headers = [], $disposition = 'inline')\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->response($path, $name, $headers, $disposition);\n }\n\n /**\n * Create a streamed download response for a given file.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @param string $path\n * @param string|null $name\n * @param array $headers\n * @return \\Symfony\\Component\\HttpFoundation\\StreamedResponse\n * @static\n */\n public static function serve($request, $path, $name = null, $headers = [])\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->serve($request, $path, $name, $headers);\n }\n\n /**\n * Create a streamed download response for a given file.\n *\n * @param string $path\n * @param string|null $name\n * @param array $headers\n * @return \\Symfony\\Component\\HttpFoundation\\StreamedResponse\n * @static\n */\n public static function download($path, $name = null, $headers = [])\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->download($path, $name, $headers);\n }\n\n /**\n * Write the contents of a file.\n *\n * @param string $path\n * @param \\Psr\\Http\\Message\\StreamInterface|\\Illuminate\\Http\\File|\\Illuminate\\Http\\UploadedFile|string|resource $contents\n * @param mixed $options\n * @return string|bool\n * @static\n */\n public static function put($path, $contents, $options = [])\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->put($path, $contents, $options);\n }\n\n /**\n * Store the uploaded file on the disk.\n *\n * @param \\Illuminate\\Http\\File|\\Illuminate\\Http\\UploadedFile|string $path\n * @param \\Illuminate\\Http\\File|\\Illuminate\\Http\\UploadedFile|string|array|null $file\n * @param mixed $options\n * @return string|false\n * @static\n */\n public static function putFile($path, $file = null, $options = [])\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->putFile($path, $file, $options);\n }\n\n /**\n * Store the uploaded file on the disk with a given name.\n *\n * @param \\Illuminate\\Http\\File|\\Illuminate\\Http\\UploadedFile|string $path\n * @param \\Illuminate\\Http\\File|\\Illuminate\\Http\\UploadedFile|string|array|null $file\n * @param string|array|null $name\n * @param mixed $options\n * @return string|false\n * @static\n */\n public static function putFileAs($path, $file, $name = null, $options = [])\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->putFileAs($path, $file, $name, $options);\n }\n\n /**\n * Get the visibility for the given path.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function getVisibility($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->getVisibility($path);\n }\n\n /**\n * Set the visibility for the given path.\n *\n * @param string $path\n * @param string $visibility\n * @return bool\n * @static\n */\n public static function setVisibility($path, $visibility)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->setVisibility($path, $visibility);\n }\n\n /**\n * Prepend to a file.\n *\n * @param string $path\n * @param string $data\n * @param string $separator\n * @return bool\n * @static\n */\n public static function prepend($path, $data, $separator = '\n')\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->prepend($path, $data, $separator);\n }\n\n /**\n * Append to a file.\n *\n * @param string $path\n * @param string $data\n * @param string $separator\n * @return bool\n * @static\n */\n public static function append($path, $data, $separator = '\n')\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->append($path, $data, $separator);\n }\n\n /**\n * Delete the file at a given path.\n *\n * @param string|array $paths\n * @return bool\n * @static\n */\n public static function delete($paths)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->delete($paths);\n }\n\n /**\n * Copy a file to a new location.\n *\n * @param string $from\n * @param string $to\n * @return bool\n * @static\n */\n public static function copy($from, $to)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->copy($from, $to);\n }\n\n /**\n * Move a file to a new location.\n *\n * @param string $from\n * @param string $to\n * @return bool\n * @static\n */\n public static function move($from, $to)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->move($from, $to);\n }\n\n /**\n * Get the file size of a given file.\n *\n * @param string $path\n * @return int\n * @static\n */\n public static function size($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->size($path);\n }\n\n /**\n * Get the checksum for a file.\n *\n * @return string|false\n * @throws UnableToProvideChecksum\n * @static\n */\n public static function checksum($path, $options = [])\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->checksum($path, $options);\n }\n\n /**\n * Get the mime-type of a given file.\n *\n * @param string $path\n * @return string|false\n * @static\n */\n public static function mimeType($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->mimeType($path);\n }\n\n /**\n * Get the file's last modification time.\n *\n * @param string $path\n * @return int\n * @static\n */\n public static function lastModified($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->lastModified($path);\n }\n\n /**\n * Get a resource to read the file.\n *\n * @param string $path\n * @return resource|null The path resource or null on failure.\n * @static\n */\n public static function readStream($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->readStream($path);\n }\n\n /**\n * Write a new file using a stream.\n *\n * @param string $path\n * @param resource $resource\n * @param array $options\n * @return bool\n * @static\n */\n public static function writeStream($path, $resource, $options = [])\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->writeStream($path, $resource, $options);\n }\n\n /**\n * Get the URL for the file at the given path.\n *\n * @param string $path\n * @return string\n * @throws \\RuntimeException\n * @static\n */\n public static function url($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->url($path);\n }\n\n /**\n * Get a temporary upload URL for the file at the given path.\n *\n * @param string $path\n * @param \\DateTimeInterface $expiration\n * @param array $options\n * @return array\n * @throws \\RuntimeException\n * @static\n */\n public static function temporaryUploadUrl($path, $expiration, $options = [])\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->temporaryUploadUrl($path, $expiration, $options);\n }\n\n /**\n * Get an array of all files in a directory.\n *\n * @param string|null $directory\n * @param bool $recursive\n * @return array\n * @static\n */\n public static function files($directory = null, $recursive = false)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->files($directory, $recursive);\n }\n\n /**\n * Get all of the files from the given directory (recursive).\n *\n * @param string|null $directory\n * @return array\n * @static\n */\n public static function allFiles($directory = null)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->allFiles($directory);\n }\n\n /**\n * Get all of the directories within a given directory.\n *\n * @param string|null $directory\n * @param bool $recursive\n * @return array\n * @static\n */\n public static function directories($directory = null, $recursive = false)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->directories($directory, $recursive);\n }\n\n /**\n * Get all the directories within a given directory (recursive).\n *\n * @param string|null $directory\n * @return array\n * @static\n */\n public static function allDirectories($directory = null)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->allDirectories($directory);\n }\n\n /**\n * Create a directory.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function makeDirectory($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->makeDirectory($path);\n }\n\n /**\n * Recursively delete a directory.\n *\n * @param string $directory\n * @return bool\n * @static\n */\n public static function deleteDirectory($directory)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->deleteDirectory($directory);\n }\n\n /**\n * Get the Flysystem driver.\n *\n * @return \\League\\Flysystem\\FilesystemOperator\n * @static\n */\n public static function getDriver()\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->getDriver();\n }\n\n /**\n * Get the Flysystem adapter.\n *\n * @return \\League\\Flysystem\\FilesystemAdapter\n * @static\n */\n public static function getAdapter()\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->getAdapter();\n }\n\n /**\n * Get the configuration values.\n *\n * @return array\n * @static\n */\n public static function getConfig()\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->getConfig();\n }\n\n /**\n * Define a custom callback that generates file download responses.\n *\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function serveUsing($callback)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n $instance->serveUsing($callback);\n }\n\n /**\n * Define a custom temporary URL builder callback.\n *\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function buildTemporaryUrlsUsing($callback)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n $instance->buildTemporaryUrlsUsing($callback);\n }\n\n /**\n * Apply the callback if the given \"value\" is (or resolves to) truthy.\n *\n * @template TWhenParameter\n * @template TWhenReturnType\n * @param (\\Closure($this): TWhenParameter)|TWhenParameter|null $value\n * @param (callable($this, TWhenParameter): TWhenReturnType)|null $callback\n * @param (callable($this, TWhenParameter): TWhenReturnType)|null $default\n * @return $this|TWhenReturnType\n * @static\n */\n public static function when($value = null, $callback = null, $default = null)\n {\n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->when($value, $callback, $default);\n }\n\n /**\n * Apply the callback if the given \"value\" is (or resolves to) falsy.\n *\n * @template TUnlessParameter\n * @template TUnlessReturnType\n * @param (\\Closure($this): TUnlessParameter)|TUnlessParameter|null $value\n * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $callback\n * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $default\n * @return $this|TUnlessReturnType\n * @static\n */\n public static function unless($value = null, $callback = null, $default = null)\n {\n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->unless($value, $callback, $default);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n \\Illuminate\\Filesystem\\LocalFilesystemAdapter::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n \\Illuminate\\Filesystem\\LocalFilesystemAdapter::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n return \\Illuminate\\Filesystem\\LocalFilesystemAdapter::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n \\Illuminate\\Filesystem\\LocalFilesystemAdapter::flushMacros();\n }\n\n /**\n * Dynamically handle calls to the class.\n *\n * @param string $method\n * @param array $parameters\n * @return mixed\n * @throws \\BadMethodCallException\n * @static\n */\n public static function macroCall($method, $parameters)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->macroCall($method, $parameters);\n }\n\n }\n /**\n * @see \\Illuminate\\Routing\\UrlGenerator\n */\n class URL {\n /**\n * Get the full URL for the current request.\n *\n * @return string\n * @static\n */\n public static function full()\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->full();\n }\n\n /**\n * Get the current URL for the request.\n *\n * @return string\n * @static\n */\n public static function current()\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->current();\n }\n\n /**\n * Get the URL for the previous request.\n *\n * @param mixed $fallback\n * @return string\n * @static\n */\n public static function previous($fallback = false)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->previous($fallback);\n }\n\n /**\n * Get the previous path info for the request.\n *\n * @param mixed $fallback\n * @return string\n * @static\n */\n public static function previousPath($fallback = false)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->previousPath($fallback);\n }\n\n /**\n * Generate an absolute URL to the given path.\n *\n * @param string $path\n * @param mixed $extra\n * @param bool|null $secure\n * @return string\n * @static\n */\n public static function to($path, $extra = [], $secure = null)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->to($path, $extra, $secure);\n }\n\n /**\n * Generate an absolute URL with the given query parameters.\n *\n * @param string $path\n * @param array $query\n * @param mixed $extra\n * @param bool|null $secure\n * @return string\n * @static\n */\n public static function query($path, $query = [], $extra = [], $secure = null)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->query($path, $query, $extra, $secure);\n }\n\n /**\n * Generate a secure, absolute URL to the given path.\n *\n * @param string $path\n * @param array $parameters\n * @return string\n * @static\n */\n public static function secure($path, $parameters = [])\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->secure($path, $parameters);\n }\n\n /**\n * Generate the URL to an application asset.\n *\n * @param string $path\n * @param bool|null $secure\n * @return string\n * @static\n */\n public static function asset($path, $secure = null)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->asset($path, $secure);\n }\n\n /**\n * Generate the URL to a secure asset.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function secureAsset($path)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->secureAsset($path);\n }\n\n /**\n * Generate the URL to an asset from a custom root domain such as CDN, etc.\n *\n * @param string $root\n * @param string $path\n * @param bool|null $secure\n * @return string\n * @static\n */\n public static function assetFrom($root, $path, $secure = null)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->assetFrom($root, $path, $secure);\n }\n\n /**\n * Get the default scheme for a raw URL.\n *\n * @param bool|null $secure\n * @return string\n * @static\n */\n public static function formatScheme($secure = null)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->formatScheme($secure);\n }\n\n /**\n * Create a signed route URL for a named route.\n *\n * @param \\BackedEnum|string $name\n * @param mixed $parameters\n * @param \\DateTimeInterface|\\DateInterval|int|null $expiration\n * @param bool $absolute\n * @return string\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function signedRoute($name, $parameters = [], $expiration = null, $absolute = true)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->signedRoute($name, $parameters, $expiration, $absolute);\n }\n\n /**\n * Create a temporary signed route URL for a named route.\n *\n * @param \\BackedEnum|string $name\n * @param \\DateTimeInterface|\\DateInterval|int $expiration\n * @param array $parameters\n * @param bool $absolute\n * @return string\n * @static\n */\n public static function temporarySignedRoute($name, $expiration, $parameters = [], $absolute = true)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->temporarySignedRoute($name, $expiration, $parameters, $absolute);\n }\n\n /**\n * Determine if the given request has a valid signature.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @param bool $absolute\n * @param \\Closure|array $ignoreQuery\n * @return bool\n * @static\n */\n public static function hasValidSignature($request, $absolute = true, $ignoreQuery = [])\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->hasValidSignature($request, $absolute, $ignoreQuery);\n }\n\n /**\n * Determine if the given request has a valid signature for a relative URL.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @param \\Closure|array $ignoreQuery\n * @return bool\n * @static\n */\n public static function hasValidRelativeSignature($request, $ignoreQuery = [])\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->hasValidRelativeSignature($request, $ignoreQuery);\n }\n\n /**\n * Determine if the signature from the given request matches the URL.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @param bool $absolute\n * @param \\Closure|array $ignoreQuery\n * @return bool\n * @static\n */\n public static function hasCorrectSignature($request, $absolute = true, $ignoreQuery = [])\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->hasCorrectSignature($request, $absolute, $ignoreQuery);\n }\n\n /**\n * Determine if the expires timestamp from the given request is not from the past.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @return bool\n * @static\n */\n public static function signatureHasNotExpired($request)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->signatureHasNotExpired($request);\n }\n\n /**\n * Get the URL to a named route.\n *\n * @param \\BackedEnum|string $name\n * @param mixed $parameters\n * @param bool $absolute\n * @return string\n * @throws \\Symfony\\Component\\Routing\\Exception\\RouteNotFoundException|\\InvalidArgumentException\n * @static\n */\n public static function route($name, $parameters = [], $absolute = true)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->route($name, $parameters, $absolute);\n }\n\n /**\n * Get the URL for a given route instance.\n *\n * @param \\Illuminate\\Routing\\Route $route\n * @param mixed $parameters\n * @param bool $absolute\n * @return string\n * @throws \\Illuminate\\Routing\\Exceptions\\UrlGenerationException\n * @static\n */\n public static function toRoute($route, $parameters, $absolute)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->toRoute($route, $parameters, $absolute);\n }\n\n /**\n * Get the URL to a controller action.\n *\n * @param string|array $action\n * @param mixed $parameters\n * @param bool $absolute\n * @return string\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function action($action, $parameters = [], $absolute = true)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->action($action, $parameters, $absolute);\n }\n\n /**\n * Format the array of URL parameters.\n *\n * @param mixed $parameters\n * @return array\n * @static\n */\n public static function formatParameters($parameters)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->formatParameters($parameters);\n }\n\n /**\n * Get the base URL for the request.\n *\n * @param string $scheme\n * @param string|null $root\n * @return string\n * @static\n */\n public static function formatRoot($scheme, $root = null)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->formatRoot($scheme, $root);\n }\n\n /**\n * Format the given URL segments into a single URL.\n *\n * @param string $root\n * @param string $path\n * @param \\Illuminate\\Routing\\Route|null $route\n * @return string\n * @static\n */\n public static function format($root, $path, $route = null)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->format($root, $path, $route);\n }\n\n /**\n * Determine if the given path is a valid URL.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function isValidUrl($path)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->isValidUrl($path);\n }\n\n /**\n * Set the default named parameters used by the URL generator.\n *\n * @param array $defaults\n * @return void\n * @static\n */\n public static function defaults($defaults)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n $instance->defaults($defaults);\n }\n\n /**\n * Get the default named parameters used by the URL generator.\n *\n * @return array\n * @static\n */\n public static function getDefaultParameters()\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->getDefaultParameters();\n }\n\n /**\n * Force the scheme for URLs.\n *\n * @param string|null $scheme\n * @return void\n * @static\n */\n public static function forceScheme($scheme)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n $instance->forceScheme($scheme);\n }\n\n /**\n * Force the use of the HTTPS scheme for all generated URLs.\n *\n * @param bool $force\n * @return void\n * @static\n */\n public static function forceHttps($force = true)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n $instance->forceHttps($force);\n }\n\n /**\n * Set the URL origin for all generated URLs.\n *\n * @param string|null $root\n * @return void\n * @static\n */\n public static function useOrigin($root)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n $instance->useOrigin($root);\n }\n\n /**\n * Set the forced root URL.\n *\n * @param string|null $root\n * @return void\n * @deprecated Use useOrigin\n * @static\n */\n public static function forceRootUrl($root)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n $instance->forceRootUrl($root);\n }\n\n /**\n * Set the URL origin for all generated asset URLs.\n *\n * @param string|null $root\n * @return void\n * @static\n */\n public static function useAssetOrigin($root)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n $instance->useAssetOrigin($root);\n }\n\n /**\n * Set a callback to be used to format the host of generated URLs.\n *\n * @param \\Closure $callback\n * @return \\Illuminate\\Routing\\UrlGenerator\n * @static\n */\n public static function formatHostUsing($callback)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->formatHostUsing($callback);\n }\n\n /**\n * Set a callback to be used to format the path of generated URLs.\n *\n * @param \\Closure $callback\n * @return \\Illuminate\\Routing\\UrlGenerator\n * @static\n */\n public static function formatPathUsing($callback)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->formatPathUsing($callback);\n }\n\n /**\n * Get the path formatter being used by the URL generator.\n *\n * @return \\Closure\n * @static\n */\n public static function pathFormatter()\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->pathFormatter();\n }\n\n /**\n * Get the request instance.\n *\n * @return \\Illuminate\\Http\\Request\n * @static\n */\n public static function getRequest()\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->getRequest();\n }\n\n /**\n * Set the current request instance.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @return void\n * @static\n */\n public static function setRequest($request)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n $instance->setRequest($request);\n }\n\n /**\n * Set the route collection.\n *\n * @param \\Illuminate\\Routing\\RouteCollectionInterface $routes\n * @return \\Illuminate\\Routing\\UrlGenerator\n * @static\n */\n public static function setRoutes($routes)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->setRoutes($routes);\n }\n\n /**\n * Set the session resolver for the generator.\n *\n * @param callable $sessionResolver\n * @return \\Illuminate\\Routing\\UrlGenerator\n * @static\n */\n public static function setSessionResolver($sessionResolver)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->setSessionResolver($sessionResolver);\n }\n\n /**\n * Set the encryption key resolver.\n *\n * @param callable $keyResolver\n * @return \\Illuminate\\Routing\\UrlGenerator\n * @static\n */\n public static function setKeyResolver($keyResolver)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->setKeyResolver($keyResolver);\n }\n\n /**\n * Clone a new instance of the URL generator with a different encryption key resolver.\n *\n * @param callable $keyResolver\n * @return \\Illuminate\\Routing\\UrlGenerator\n * @static\n */\n public static function withKeyResolver($keyResolver)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->withKeyResolver($keyResolver);\n }\n\n /**\n * Set the callback that should be used to attempt to resolve missing named routes.\n *\n * @param callable $missingNamedRouteResolver\n * @return \\Illuminate\\Routing\\UrlGenerator\n * @static\n */\n public static function resolveMissingNamedRoutesUsing($missingNamedRouteResolver)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->resolveMissingNamedRoutesUsing($missingNamedRouteResolver);\n }\n\n /**\n * Get the root controller namespace.\n *\n * @return string\n * @static\n */\n public static function getRootControllerNamespace()\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->getRootControllerNamespace();\n }\n\n /**\n * Set the root controller namespace.\n *\n * @param string $rootNamespace\n * @return \\Illuminate\\Routing\\UrlGenerator\n * @static\n */\n public static function setRootControllerNamespace($rootNamespace)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->setRootControllerNamespace($rootNamespace);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Routing\\UrlGenerator::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Routing\\UrlGenerator::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Routing\\UrlGenerator::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Routing\\UrlGenerator::flushMacros();\n }\n\n }\n /**\n * @see \\Illuminate\\Validation\\Factory\n */\n class Validator {\n /**\n * Create a new Validator instance.\n *\n * @param array $data\n * @param array $rules\n * @param array $messages\n * @param array $attributes\n * @return \\Illuminate\\Validation\\Validator\n * @static\n */\n public static function make($data, $rules, $messages = [], $attributes = [])\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n return $instance->make($data, $rules, $messages, $attributes);\n }\n\n /**\n * Validate the given data against the provided rules.\n *\n * @param array $data\n * @param array $rules\n * @param array $messages\n * @param array $attributes\n * @return array\n * @throws \\Illuminate\\Validation\\ValidationException\n * @static\n */\n public static function validate($data, $rules, $messages = [], $attributes = [])\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n return $instance->validate($data, $rules, $messages, $attributes);\n }\n\n /**\n * Register a custom validator extension.\n *\n * @param string $rule\n * @param \\Closure|string $extension\n * @param string|null $message\n * @return void\n * @static\n */\n public static function extend($rule, $extension, $message = null)\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n $instance->extend($rule, $extension, $message);\n }\n\n /**\n * Register a custom implicit validator extension.\n *\n * @param string $rule\n * @param \\Closure|string $extension\n * @param string|null $message\n * @return void\n * @static\n */\n public static function extendImplicit($rule, $extension, $message = null)\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n $instance->extendImplicit($rule, $extension, $message);\n }\n\n /**\n * Register a custom dependent validator extension.\n *\n * @param string $rule\n * @param \\Closure|string $extension\n * @param string|null $message\n * @return void\n * @static\n */\n public static function extendDependent($rule, $extension, $message = null)\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n $instance->extendDependent($rule, $extension, $message);\n }\n\n /**\n * Register a custom validator message replacer.\n *\n * @param string $rule\n * @param \\Closure|string $replacer\n * @return void\n * @static\n */\n public static function replacer($rule, $replacer)\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n $instance->replacer($rule, $replacer);\n }\n\n /**\n * Indicate that unvalidated array keys should be included in validated data when the parent array is validated.\n *\n * @return void\n * @static\n */\n public static function includeUnvalidatedArrayKeys()\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n $instance->includeUnvalidatedArrayKeys();\n }\n\n /**\n * Indicate that unvalidated array keys should be excluded from the validated data, even if the parent array was validated.\n *\n * @return void\n * @static\n */\n public static function excludeUnvalidatedArrayKeys()\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n $instance->excludeUnvalidatedArrayKeys();\n }\n\n /**\n * Set the Validator instance resolver.\n *\n * @param \\Closure $resolver\n * @return void\n * @static\n */\n public static function resolver($resolver)\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n $instance->resolver($resolver);\n }\n\n /**\n * Get the Translator implementation.\n *\n * @return \\Illuminate\\Contracts\\Translation\\Translator\n * @static\n */\n public static function getTranslator()\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n return $instance->getTranslator();\n }\n\n /**\n * Get the Presence Verifier implementation.\n *\n * @return \\Illuminate\\Validation\\PresenceVerifierInterface\n * @static\n */\n public static function getPresenceVerifier()\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n return $instance->getPresenceVerifier();\n }\n\n /**\n * Set the Presence Verifier implementation.\n *\n * @param \\Illuminate\\Validation\\PresenceVerifierInterface $presenceVerifier\n * @return void\n * @static\n */\n public static function setPresenceVerifier($presenceVerifier)\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n $instance->setPresenceVerifier($presenceVerifier);\n }\n\n /**\n * Get the container instance used by the validation factory.\n *\n * @return \\Illuminate\\Contracts\\Container\\Container|null\n * @static\n */\n public static function getContainer()\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n return $instance->getContainer();\n }\n\n /**\n * Set the container instance used by the validation factory.\n *\n * @param \\Illuminate\\Contracts\\Container\\Container $container\n * @return \\Illuminate\\Validation\\Factory\n * @static\n */\n public static function setContainer($container)\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n return $instance->setContainer($container);\n }\n\n }\n /**\n * @see \\Illuminate\\View\\Factory\n */\n class View {\n /**\n * Get the evaluated view contents for the given view.\n *\n * @param string $path\n * @param \\Illuminate\\Contracts\\Support\\Arrayable|array $data\n * @param array $mergeData\n * @return \\Illuminate\\Contracts\\View\\View\n * @static\n */\n public static function file($path, $data = [], $mergeData = [])\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->file($path, $data, $mergeData);\n }\n\n /**\n * Get the evaluated view contents for the given view.\n *\n * @param string $view\n * @param \\Illuminate\\Contracts\\Support\\Arrayable|array $data\n * @param array $mergeData\n * @return \\Illuminate\\Contracts\\View\\View\n * @static\n */\n public static function make($view, $data = [], $mergeData = [])\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->make($view, $data, $mergeData);\n }\n\n /**\n * Get the first view that actually exists from the given list.\n *\n * @param array $views\n * @param \\Illuminate\\Contracts\\Support\\Arrayable|array $data\n * @param array $mergeData\n * @return \\Illuminate\\Contracts\\View\\View\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function first($views, $data = [], $mergeData = [])\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->first($views, $data, $mergeData);\n }\n\n /**\n * Get the rendered content of the view based on a given condition.\n *\n * @param bool $condition\n * @param string $view\n * @param \\Illuminate\\Contracts\\Support\\Arrayable|array $data\n * @param array $mergeData\n * @return string\n * @static\n */\n public static function renderWhen($condition, $view, $data = [], $mergeData = [])\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->renderWhen($condition, $view, $data, $mergeData);\n }\n\n /**\n * Get the rendered content of the view based on the negation of a given condition.\n *\n * @param bool $condition\n * @param string $view\n * @param \\Illuminate\\Contracts\\Support\\Arrayable|array $data\n * @param array $mergeData\n * @return string\n * @static\n */\n public static function renderUnless($condition, $view, $data = [], $mergeData = [])\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->renderUnless($condition, $view, $data, $mergeData);\n }\n\n /**\n * Get the rendered contents of a partial from a loop.\n *\n * @param string $view\n * @param array $data\n * @param string $iterator\n * @param string $empty\n * @return string\n * @static\n */\n public static function renderEach($view, $data, $iterator, $empty = 'raw|')\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->renderEach($view, $data, $iterator, $empty);\n }\n\n /**\n * Determine if a given view exists.\n *\n * @param string $view\n * @return bool\n * @static\n */\n public static function exists($view)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->exists($view);\n }\n\n /**\n * Get the appropriate view engine for the given path.\n *\n * @param string $path\n * @return \\Illuminate\\Contracts\\View\\Engine\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function getEngineFromPath($path)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getEngineFromPath($path);\n }\n\n /**\n * Add a piece of shared data to the environment.\n *\n * @param array|string $key\n * @param mixed $value\n * @return mixed\n * @static\n */\n public static function share($key, $value = null)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->share($key, $value);\n }\n\n /**\n * Increment the rendering counter.\n *\n * @return void\n * @static\n */\n public static function incrementRender()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->incrementRender();\n }\n\n /**\n * Decrement the rendering counter.\n *\n * @return void\n * @static\n */\n public static function decrementRender()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->decrementRender();\n }\n\n /**\n * Check if there are no active render operations.\n *\n * @return bool\n * @static\n */\n public static function doneRendering()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->doneRendering();\n }\n\n /**\n * Determine if the given once token has been rendered.\n *\n * @param string $id\n * @return bool\n * @static\n */\n public static function hasRenderedOnce($id)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->hasRenderedOnce($id);\n }\n\n /**\n * Mark the given once token as having been rendered.\n *\n * @param string $id\n * @return void\n * @static\n */\n public static function markAsRenderedOnce($id)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->markAsRenderedOnce($id);\n }\n\n /**\n * Add a location to the array of view locations.\n *\n * @param string $location\n * @return void\n * @static\n */\n public static function addLocation($location)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->addLocation($location);\n }\n\n /**\n * Prepend a location to the array of view locations.\n *\n * @param string $location\n * @return void\n * @static\n */\n public static function prependLocation($location)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->prependLocation($location);\n }\n\n /**\n * Add a new namespace to the loader.\n *\n * @param string $namespace\n * @param string|array $hints\n * @return \\Illuminate\\View\\Factory\n * @static\n */\n public static function addNamespace($namespace, $hints)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->addNamespace($namespace, $hints);\n }\n\n /**\n * Prepend a new namespace to the loader.\n *\n * @param string $namespace\n * @param string|array $hints\n * @return \\Illuminate\\View\\Factory\n * @static\n */\n public static function prependNamespace($namespace, $hints)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->prependNamespace($namespace, $hints);\n }\n\n /**\n * Replace the namespace hints for the given namespace.\n *\n * @param string $namespace\n * @param string|array $hints\n * @return \\Illuminate\\View\\Factory\n * @static\n */\n public static function replaceNamespace($namespace, $hints)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->replaceNamespace($namespace, $hints);\n }\n\n /**\n * Register a valid view extension and its engine.\n *\n * @param string $extension\n * @param string $engine\n * @param \\Closure|null $resolver\n * @return void\n * @static\n */\n public static function addExtension($extension, $engine, $resolver = null)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->addExtension($extension, $engine, $resolver);\n }\n\n /**\n * Flush all of the factory state like sections and stacks.\n *\n * @return void\n * @static\n */\n public static function flushState()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->flushState();\n }\n\n /**\n * Flush all of the section contents if done rendering.\n *\n * @return void\n * @static\n */\n public static function flushStateIfDoneRendering()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->flushStateIfDoneRendering();\n }\n\n /**\n * Get the extension to engine bindings.\n *\n * @return array\n * @static\n */\n public static function getExtensions()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getExtensions();\n }\n\n /**\n * Get the engine resolver instance.\n *\n * @return \\Illuminate\\View\\Engines\\EngineResolver\n * @static\n */\n public static function getEngineResolver()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getEngineResolver();\n }\n\n /**\n * Get the view finder instance.\n *\n * @return \\Illuminate\\View\\ViewFinderInterface\n * @static\n */\n public static function getFinder()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getFinder();\n }\n\n /**\n * Set the view finder instance.\n *\n * @param \\Illuminate\\View\\ViewFinderInterface $finder\n * @return void\n * @static\n */\n public static function setFinder($finder)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->setFinder($finder);\n }\n\n /**\n * Flush the cache of views located by the finder.\n *\n * @return void\n * @static\n */\n public static function flushFinderCache()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->flushFinderCache();\n }\n\n /**\n * Get the event dispatcher instance.\n *\n * @return \\Illuminate\\Contracts\\Events\\Dispatcher\n * @static\n */\n public static function getDispatcher()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getDispatcher();\n }\n\n /**\n * Set the event dispatcher instance.\n *\n * @param \\Illuminate\\Contracts\\Events\\Dispatcher $events\n * @return void\n * @static\n */\n public static function setDispatcher($events)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->setDispatcher($events);\n }\n\n /**\n * Get the IoC container instance.\n *\n * @return \\Illuminate\\Contracts\\Container\\Container\n * @static\n */\n public static function getContainer()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getContainer();\n }\n\n /**\n * Set the IoC container instance.\n *\n * @param \\Illuminate\\Contracts\\Container\\Container $container\n * @return void\n * @static\n */\n public static function setContainer($container)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->setContainer($container);\n }\n\n /**\n * Get an item from the shared data.\n *\n * @param string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function shared($key, $default = null)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->shared($key, $default);\n }\n\n /**\n * Get all of the shared data for the environment.\n *\n * @return array\n * @static\n */\n public static function getShared()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getShared();\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\View\\Factory::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\View\\Factory::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\View\\Factory::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\View\\Factory::flushMacros();\n }\n\n /**\n * Start a component rendering process.\n *\n * @param \\Illuminate\\Contracts\\View\\View|\\Illuminate\\Contracts\\Support\\Htmlable|\\Closure|string $view\n * @param array $data\n * @return void\n * @static\n */\n public static function startComponent($view, $data = [])\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->startComponent($view, $data);\n }\n\n /**\n * Get the first view that actually exists from the given list, and start a component.\n *\n * @param array $names\n * @param array $data\n * @return void\n * @static\n */\n public static function startComponentFirst($names, $data = [])\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->startComponentFirst($names, $data);\n }\n\n /**\n * Render the current component.\n *\n * @return string\n * @static\n */\n public static function renderComponent()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->renderComponent();\n }\n\n /**\n * Get an item from the component data that exists above the current component.\n *\n * @param string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function getConsumableComponentData($key, $default = null)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getConsumableComponentData($key, $default);\n }\n\n /**\n * Start the slot rendering process.\n *\n * @param string $name\n * @param string|null $content\n * @param array $attributes\n * @return void\n * @static\n */\n public static function slot($name, $content = null, $attributes = [])\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->slot($name, $content, $attributes);\n }\n\n /**\n * Save the slot content for rendering.\n *\n * @return void\n * @static\n */\n public static function endSlot()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->endSlot();\n }\n\n /**\n * Register a view creator event.\n *\n * @param array|string $views\n * @param \\Closure|string $callback\n * @return array\n * @static\n */\n public static function creator($views, $callback)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->creator($views, $callback);\n }\n\n /**\n * Register multiple view composers via an array.\n *\n * @param array $composers\n * @return array\n * @static\n */\n public static function composers($composers)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->composers($composers);\n }\n\n /**\n * Register a view composer event.\n *\n * @param array|string $views\n * @param \\Closure|string $callback\n * @return array\n * @static\n */\n public static function composer($views, $callback)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->composer($views, $callback);\n }\n\n /**\n * Call the composer for a given view.\n *\n * @param \\Illuminate\\Contracts\\View\\View $view\n * @return void\n * @static\n */\n public static function callComposer($view)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->callComposer($view);\n }\n\n /**\n * Call the creator for a given view.\n *\n * @param \\Illuminate\\Contracts\\View\\View $view\n * @return void\n * @static\n */\n public static function callCreator($view)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->callCreator($view);\n }\n\n /**\n * Start injecting content into a fragment.\n *\n * @param string $fragment\n * @return void\n * @static\n */\n public static function startFragment($fragment)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->startFragment($fragment);\n }\n\n /**\n * Stop injecting content into a fragment.\n *\n * @return string\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function stopFragment()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->stopFragment();\n }\n\n /**\n * Get the contents of a fragment.\n *\n * @param string $name\n * @param string|null $default\n * @return mixed\n * @static\n */\n public static function getFragment($name, $default = null)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getFragment($name, $default);\n }\n\n /**\n * Get the entire array of rendered fragments.\n *\n * @return array\n * @static\n */\n public static function getFragments()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getFragments();\n }\n\n /**\n * Flush all of the fragments.\n *\n * @return void\n * @static\n */\n public static function flushFragments()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->flushFragments();\n }\n\n /**\n * Start injecting content into a section.\n *\n * @param string $section\n * @param string|null $content\n * @return void\n * @static\n */\n public static function startSection($section, $content = null)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->startSection($section, $content);\n }\n\n /**\n * Inject inline content into a section.\n *\n * @param string $section\n * @param string $content\n * @return void\n * @static\n */\n public static function inject($section, $content)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->inject($section, $content);\n }\n\n /**\n * Stop injecting content into a section and return its contents.\n *\n * @return string\n * @static\n */\n public static function yieldSection()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->yieldSection();\n }\n\n /**\n * Stop injecting content into a section.\n *\n * @param bool $overwrite\n * @return string\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function stopSection($overwrite = false)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->stopSection($overwrite);\n }\n\n /**\n * Stop injecting content into a section and append it.\n *\n * @return string\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function appendSection()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->appendSection();\n }\n\n /**\n * Get the string contents of a section.\n *\n * @param string $section\n * @param string $default\n * @return string\n * @static\n */\n public static function yieldContent($section, $default = '')\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->yieldContent($section, $default);\n }\n\n /**\n * Get the parent placeholder for the current request.\n *\n * @param string $section\n * @return string\n * @static\n */\n public static function parentPlaceholder($section = '')\n {\n return \\Illuminate\\View\\Factory::parentPlaceholder($section);\n }\n\n /**\n * Check if section exists.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasSection($name)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->hasSection($name);\n }\n\n /**\n * Check if section does not exist.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function sectionMissing($name)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->sectionMissing($name);\n }\n\n /**\n * Get the contents of a section.\n *\n * @param string $name\n * @param string|null $default\n * @return mixed\n * @static\n */\n public static function getSection($name, $default = null)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getSection($name, $default);\n }\n\n /**\n * Get the entire array of sections.\n *\n * @return array\n * @static\n */\n public static function getSections()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getSections();\n }\n\n /**\n * Flush all of the sections.\n *\n * @return void\n * @static\n */\n public static function flushSections()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->flushSections();\n }\n\n /**\n * Add new loop to the stack.\n *\n * @param \\Countable|array $data\n * @return void\n * @static\n */\n public static function addLoop($data)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->addLoop($data);\n }\n\n /**\n * Increment the top loop's indices.\n *\n * @return void\n * @static\n */\n public static function incrementLoopIndices()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->incrementLoopIndices();\n }\n\n /**\n * Pop a loop from the top of the loop stack.\n *\n * @return void\n * @static\n */\n public static function popLoop()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->popLoop();\n }\n\n /**\n * Get an instance of the last loop in the stack.\n *\n * @return \\stdClass|null\n * @static\n */\n public static function getLastLoop()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getLastLoop();\n }\n\n /**\n * Get the entire loop stack.\n *\n * @return array\n * @static\n */\n public static function getLoopStack()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getLoopStack();\n }\n\n /**\n * Start injecting content into a push section.\n *\n * @param string $section\n * @param string $content\n * @return void\n * @static\n */\n public static function startPush($section, $content = '')\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->startPush($section, $content);\n }\n\n /**\n * Stop injecting content into a push section.\n *\n * @return string\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function stopPush()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->stopPush();\n }\n\n /**\n * Start prepending content into a push section.\n *\n * @param string $section\n * @param string $content\n * @return void\n * @static\n */\n public static function startPrepend($section, $content = '')\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->startPrepend($section, $content);\n }\n\n /**\n * Stop prepending content into a push section.\n *\n * @return string\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function stopPrepend()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->stopPrepend();\n }\n\n /**\n * Get the string contents of a push section.\n *\n * @param string $section\n * @param string $default\n * @return string\n * @static\n */\n public static function yieldPushContent($section, $default = '')\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->yieldPushContent($section, $default);\n }\n\n /**\n * Flush all of the stacks.\n *\n * @return void\n * @static\n */\n public static function flushStacks()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->flushStacks();\n }\n\n /**\n * Start a translation block.\n *\n * @param array $replacements\n * @return void\n * @static\n */\n public static function startTranslation($replacements = [])\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->startTranslation($replacements);\n }\n\n /**\n * Render the current translation.\n *\n * @return string\n * @static\n */\n public static function renderTranslation()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->renderTranslation();\n }\n\n }\n /**\n * @see \\Illuminate\\Foundation\\Vite\n */\n class Vite {\n /**\n * Get the preloaded assets.\n *\n * @return array\n * @static\n */\n public static function preloadedAssets()\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->preloadedAssets();\n }\n\n /**\n * Get the Content Security Policy nonce applied to all generated tags.\n *\n * @return string|null\n * @static\n */\n public static function cspNonce()\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->cspNonce();\n }\n\n /**\n * Generate or set a Content Security Policy nonce to apply to all generated tags.\n *\n * @param string|null $nonce\n * @return string\n * @static\n */\n public static function useCspNonce($nonce = null)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->useCspNonce($nonce);\n }\n\n /**\n * Use the given key to detect integrity hashes in the manifest.\n *\n * @param string|false $key\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function useIntegrityKey($key)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->useIntegrityKey($key);\n }\n\n /**\n * Set the Vite entry points.\n *\n * @param array $entryPoints\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function withEntryPoints($entryPoints)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->withEntryPoints($entryPoints);\n }\n\n /**\n * Merge additional Vite entry points with the current set.\n *\n * @param array $entryPoints\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function mergeEntryPoints($entryPoints)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->mergeEntryPoints($entryPoints);\n }\n\n /**\n * Set the filename for the manifest file.\n *\n * @param string $filename\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function useManifestFilename($filename)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->useManifestFilename($filename);\n }\n\n /**\n * Resolve asset paths using the provided resolver.\n *\n * @param callable|null $resolver\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function createAssetPathsUsing($resolver)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->createAssetPathsUsing($resolver);\n }\n\n /**\n * Get the Vite \"hot\" file path.\n *\n * @return string\n * @static\n */\n public static function hotFile()\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->hotFile();\n }\n\n /**\n * Set the Vite \"hot\" file path.\n *\n * @param string $path\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function useHotFile($path)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->useHotFile($path);\n }\n\n /**\n * Set the Vite build directory.\n *\n * @param string $path\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function useBuildDirectory($path)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->useBuildDirectory($path);\n }\n\n /**\n * Use the given callback to resolve attributes for script tags.\n *\n * @param (callable(string, string, ?array, ?array): array)|array $attributes\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function useScriptTagAttributes($attributes)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->useScriptTagAttributes($attributes);\n }\n\n /**\n * Use the given callback to resolve attributes for style tags.\n *\n * @param (callable(string, string, ?array, ?array): array)|array $attributes\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function useStyleTagAttributes($attributes)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->useStyleTagAttributes($attributes);\n }\n\n /**\n * Use the given callback to resolve attributes for preload tags.\n *\n * @param (callable(string, string, ?array, ?array): (array|false))|array|false $attributes\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function usePreloadTagAttributes($attributes)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->usePreloadTagAttributes($attributes);\n }\n\n /**\n * Eagerly prefetch assets.\n *\n * @param int|null $concurrency\n * @param string $event\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function prefetch($concurrency = null, $event = 'load')\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->prefetch($concurrency, $event);\n }\n\n /**\n * Use the \"waterfall\" prefetching strategy.\n *\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function useWaterfallPrefetching($concurrency = null)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->useWaterfallPrefetching($concurrency);\n }\n\n /**\n * Use the \"aggressive\" prefetching strategy.\n *\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function useAggressivePrefetching()\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->useAggressivePrefetching();\n }\n\n /**\n * Set the prefetching strategy.\n *\n * @param 'waterfall'|'aggressive'|null $strategy\n * @param array $config\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function usePrefetchStrategy($strategy, $config = [])\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->usePrefetchStrategy($strategy, $config);\n }\n\n /**\n * Generate React refresh runtime script.\n *\n * @return \\Illuminate\\Support\\HtmlString|void\n * @static\n */\n public static function reactRefresh()\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->reactRefresh();\n }\n\n /**\n * Get the URL for an asset.\n *\n * @param string $asset\n * @param string|null $buildDirectory\n * @return string\n * @static\n */\n public static function asset($asset, $buildDirectory = null)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->asset($asset, $buildDirectory);\n }\n\n /**\n * Get the content of a given asset.\n *\n * @param string $asset\n * @param string|null $buildDirectory\n * @return string\n * @throws \\Illuminate\\Foundation\\ViteException\n * @static\n */\n public static function content($asset, $buildDirectory = null)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->content($asset, $buildDirectory);\n }\n\n /**\n * Get a unique hash representing the current manifest, or null if there is no manifest.\n *\n * @param string|null $buildDirectory\n * @return string|null\n * @static\n */\n public static function manifestHash($buildDirectory = null)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->manifestHash($buildDirectory);\n }\n\n /**\n * Determine if the HMR server is running.\n *\n * @return bool\n * @static\n */\n public static function isRunningHot()\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->isRunningHot();\n }\n\n /**\n * Get the Vite tag content as a string of HTML.\n *\n * @return string\n * @static\n */\n public static function toHtml()\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->toHtml();\n }\n\n /**\n * Flush state.\n *\n * @return void\n * @static\n */\n public static function flush()\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n $instance->flush();\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Foundation\\Vite::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Foundation\\Vite::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Foundation\\Vite::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Foundation\\Vite::flushMacros();\n }\n\n }\n /**\n * @method static void createSubscription(array|string $channels, \\Closure $callback, string $method = 'subscribe')\n * @method static \\Illuminate\\Redis\\Limiters\\ConcurrencyLimiterBuilder funnel(string $name)\n * @method static \\Illuminate\\Redis\\Limiters\\DurationLimiterBuilder throttle(string $name)\n * @method static mixed client()\n * @method static void subscribe(array|string $channels, \\Closure $callback)\n * @method static void psubscribe(array|string $channels, \\Closure $callback)\n * @method static mixed command(string $method, array $parameters = [])\n * @method static void listen(\\Closure $callback)\n * @method static string|null getName()\n * @method static \\Illuminate\\Redis\\Connections\\Connection setName(string $name)\n * @method static \\Illuminate\\Contracts\\Events\\Dispatcher getEventDispatcher()\n * @method static void setEventDispatcher(\\Illuminate\\Contracts\\Events\\Dispatcher $events)\n * @method static void unsetEventDispatcher()\n * @method static void macro(string $name, object|callable $macro)\n * @method static void mixin(object $mixin, bool $replace = true)\n * @method static bool hasMacro(string $name)\n * @method static void flushMacros()\n * @method static mixed macroCall(string $method, array $parameters)\n * @see \\Illuminate\\Redis\\RedisManager\n */\n class Redis {\n /**\n * Get a Redis connection by name.\n *\n * @param \\UnitEnum|string|null $name\n * @return \\Illuminate\\Redis\\Connections\\Connection\n * @static\n */\n public static function connection($name = null)\n {\n /** @var \\Illuminate\\Redis\\RedisManager $instance */\n return $instance->connection($name);\n }\n\n /**\n * Resolve the given connection by name.\n *\n * @param string|null $name\n * @return \\Illuminate\\Redis\\Connections\\Connection\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function resolve($name = null)\n {\n /** @var \\Illuminate\\Redis\\RedisManager $instance */\n return $instance->resolve($name);\n }\n\n /**\n * Return all of the created connections.\n *\n * @return array\n * @static\n */\n public static function connections()\n {\n /** @var \\Illuminate\\Redis\\RedisManager $instance */\n return $instance->connections();\n }\n\n /**\n * Enable the firing of Redis command events.\n *\n * @return void\n * @static\n */\n public static function enableEvents()\n {\n /** @var \\Illuminate\\Redis\\RedisManager $instance */\n $instance->enableEvents();\n }\n\n /**\n * Disable the firing of Redis command events.\n *\n * @return void\n * @static\n */\n public static function disableEvents()\n {\n /** @var \\Illuminate\\Redis\\RedisManager $instance */\n $instance->disableEvents();\n }\n\n /**\n * Set the default driver.\n *\n * @param string $driver\n * @return void\n * @static\n */\n public static function setDriver($driver)\n {\n /** @var \\Illuminate\\Redis\\RedisManager $instance */\n $instance->setDriver($driver);\n }\n\n /**\n * Disconnect the given connection and remove from local cache.\n *\n * @param string|null $name\n * @return void\n * @static\n */\n public static function purge($name = null)\n {\n /** @var \\Illuminate\\Redis\\RedisManager $instance */\n $instance->purge($name);\n }\n\n /**\n * Register a custom driver creator Closure.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @param-closure-this $this $callback\n * @return \\Illuminate\\Redis\\RedisManager\n * @static\n */\n public static function extend($driver, $callback)\n {\n /** @var \\Illuminate\\Redis\\RedisManager $instance */\n return $instance->extend($driver, $callback);\n }\n\n }\n }\n\nnamespace Aws\\Laravel {\n /**\n * Facade for the AWS service\n *\n */\n class AwsFacade {\n /**\n * Get a client by name using an array of constructor options.\n *\n * @param string $name Service name or namespace (e.g., DynamoDb, s3).\n * @param array $args Arguments to configure the client.\n * @return \\Aws\\AwsClientInterface\n * @throws \\InvalidArgumentException if any required options are missing or\n * the service is not supported.\n * @see Aws\\AwsClient::__construct for a list of available options for args.\n * @static\n */\n public static function createClient($name, $args = [])\n {\n /** @var \\Aws\\Sdk $instance */\n return $instance->createClient($name, $args);\n }\n\n /**\n * @static\n */\n public static function createMultiRegionClient($name, $args = [])\n {\n /** @var \\Aws\\Sdk $instance */\n return $instance->createMultiRegionClient($name, $args);\n }\n\n /**\n * Clone existing SDK instance with ability to pass an associative array\n * of extra client settings.\n *\n * @param array $args\n * @return self\n * @static\n */\n public static function copy($args = [])\n {\n /** @var \\Aws\\Sdk $instance */\n return $instance->copy($args);\n }\n\n /**\n * Determine the endpoint prefix from a client namespace.\n *\n * @param string $name Namespace name\n * @return string\n * @internal\n * @deprecated Use the `\\Aws\\manifest()` function instead.\n * @static\n */\n public static function getEndpointPrefix($name)\n {\n return \\Aws\\Sdk::getEndpointPrefix($name);\n }\n\n }\n }\n\nnamespace Laravolt\\Avatar {\n /**\n */\n class Facade {\n /**\n * @static\n */\n public static function setGenerator($generator)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setGenerator($generator);\n }\n\n /**\n * @static\n */\n public static function create($name)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->create($name);\n }\n\n /**\n * @static\n */\n public static function applyTheme($config)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->applyTheme($config);\n }\n\n /**\n * @static\n */\n public static function addTheme($name, $config)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->addTheme($name, $config);\n }\n\n /**\n * @static\n */\n public static function toBase64()\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->toBase64();\n }\n\n /**\n * @static\n */\n public static function save($path, $quality = 90)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->save($path, $quality);\n }\n\n /**\n * @static\n */\n public static function toSvg()\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->toSvg();\n }\n\n /**\n * @static\n */\n public static function toGravatar($param = null)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->toGravatar($param);\n }\n\n /**\n * @static\n */\n public static function getInitial()\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->getInitial();\n }\n\n /**\n * @static\n */\n public static function getImageObject()\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->getImageObject();\n }\n\n /**\n * @static\n */\n public static function buildAvatar()\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->buildAvatar();\n }\n\n /**\n * @static\n */\n public static function getAttribute($key)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->getAttribute($key);\n }\n\n /**\n * Get background color\n *\n * @static\n */\n public static function getBackground()\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->getBackground();\n }\n\n /**\n * Get foreground color\n *\n * @static\n */\n public static function getForeground()\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->getForeground();\n }\n\n /**\n * Get shape\n *\n * @static\n */\n public static function getShape()\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->getShape();\n }\n\n /**\n * @static\n */\n public static function setTheme($theme)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setTheme($theme);\n }\n\n /**\n * @static\n */\n public static function setBackground($hex)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setBackground($hex);\n }\n\n /**\n * @static\n */\n public static function setForeground($hex)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setForeground($hex);\n }\n\n /**\n * @static\n */\n public static function setDimension($width, $height = null)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setDimension($width, $height);\n }\n\n /**\n * @static\n */\n public static function setResponsive($responsive)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setResponsive($responsive);\n }\n\n /**\n * @static\n */\n public static function setFontSize($size)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setFontSize($size);\n }\n\n /**\n * @static\n */\n public static function setFontFamily($font)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setFontFamily($font);\n }\n\n /**\n * @static\n */\n public static function setBorder($size, $color, $radius = 0)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setBorder($size, $color, $radius);\n }\n\n /**\n * @static\n */\n public static function setBorderRadius($radius)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setBorderRadius($radius);\n }\n\n /**\n * @static\n */\n public static function setShape($shape)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setShape($shape);\n }\n\n /**\n * @static\n */\n public static function setChars($chars)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setChars($chars);\n }\n\n /**\n * @static\n */\n public static function setFont($font)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setFont($font);\n }\n\n }\n }\n\nnamespace Spatie\\Fractal\\Facades {\n /**\n * @see \\Spatie\\Fractal\\Fractal\n */\n class Fractal extends \\Spatie\\Fractalistic\\Fractal {\n /**\n * @param null|mixed $data\n * @param null|string|callable|\\League\\Fractal\\TransformerAbstract $transformer\n * @param null|\\League\\Fractal\\Serializer\\SerializerAbstract $serializer\n * @return static\n * @static\n */\n public static function create($data = null, $transformer = null, $serializer = null)\n {\n return \\Spatie\\Fractal\\Fractal::create($data, $transformer, $serializer);\n }\n\n /**\n * @static\n */\n public static function respond($statusCode = 200, $headers = [], $options = 0)\n {\n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->respond($statusCode, $headers, $options);\n }\n\n /**\n * Set the collection data that must be transformed.\n *\n * @param mixed $data\n * @param null|string|callable|\\League\\Fractal\\TransformerAbstract $transformer\n * @param null|string $resourceName\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function collection($data, $transformer = null, $resourceName = null)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->collection($data, $transformer, $resourceName);\n }\n\n /**\n * Set the item data that must be transformed.\n *\n * @param mixed $data\n * @param null|string|callable|\\League\\Fractal\\TransformerAbstract $transformer\n * @param null|string $resourceName\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function item($data, $transformer = null, $resourceName = null)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->item($data, $transformer, $resourceName);\n }\n\n /**\n * Set the primitive data that must be transformed.\n *\n * @param mixed $data\n * @param null|string|callable|\\League\\Fractal\\TransformerAbstract $transformer\n * @param null|string $resourceName\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function primitive($data, $transformer = null, $resourceName = null)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->primitive($data, $transformer, $resourceName);\n }\n\n /**\n * Set the data that must be transformed.\n *\n * @param string $dataType\n * @param mixed $data\n * @param null|string|callable|\\League\\Fractal\\TransformerAbstract $transformer\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function data($dataType, $data, $transformer = null)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->data($dataType, $data, $transformer);\n }\n\n /**\n * Set the class or function that will perform the transform.\n *\n * @param string|callable|\\League\\Fractal\\TransformerAbstract|null $transformer\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function transformWith($transformer)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->transformWith($transformer);\n }\n\n /**\n * Set the serializer to be used.\n *\n * @param string|\\League\\Fractal\\Serializer\\SerializerAbstract $serializer\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function serializeWith($serializer)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->serializeWith($serializer);\n }\n\n /**\n * Set a Fractal paginator for the data.\n *\n * @param \\League\\Fractal\\Pagination\\PaginatorInterface $paginator\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function paginateWith($paginator)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->paginateWith($paginator);\n }\n\n /**\n * Set a Fractal cursor for the data.\n *\n * @param \\League\\Fractal\\Pagination\\CursorInterface $cursor\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function withCursor($cursor)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->withCursor($cursor);\n }\n\n /**\n * Specify the includes.\n *\n * @param array|string $includes Array or string of resources to include.\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function parseIncludes($includes)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->parseIncludes($includes);\n }\n\n /**\n * Specify the excludes.\n *\n * @param array|string $excludes Array or string of resources to exclude.\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function parseExcludes($excludes)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->parseExcludes($excludes);\n }\n\n /**\n * Specify the fieldsets to include in the response.\n *\n * @param array $fieldsets array with key = resourceName and value = fields to include\n * (array or comma separated string with field names)\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function parseFieldsets($fieldsets)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->parseFieldsets($fieldsets);\n }\n\n /**\n * Set the meta data.\n *\n * @param $array,...\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function addMeta()\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->addMeta();\n }\n\n /**\n * Set the resource name, to replace 'data' as the root of the collection or item.\n *\n * @param string $resourceName\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function withResourceName($resourceName)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->withResourceName($resourceName);\n }\n\n /**\n * Upper limit to how many levels of included data are allowed.\n *\n * @param int $recursionLimit\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function limitRecursion($recursionLimit)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->limitRecursion($recursionLimit);\n }\n\n /**\n * Perform the transformation to json.\n *\n * @param int $options\n * @return string\n * @static\n */\n public static function toJson($options = 0)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->toJson($options);\n }\n\n /**\n * Perform the transformation to array.\n *\n * @return array|null\n * @static\n */\n public static function toArray()\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->toArray();\n }\n\n /**\n * Create fractal data.\n *\n * @return \\League\\Fractal\\Scope\n * @throws \\Spatie\\Fractalistic\\Exceptions\\InvalidTransformation\n * @throws \\Spatie\\Fractalistic\\Exceptions\\NoTransformerSpecified\n * @static\n */\n public static function createData()\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->createData();\n }\n\n /**\n * Get the resource class.\n *\n * @return string\n * @throws \\Spatie\\Fractalistic\\Exceptions\\InvalidTransformation\n * @static\n */\n public static function getResourceClass()\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->getResourceClass();\n }\n\n /**\n * Get the resource.\n *\n * @return \\League\\Fractal\\Resource\\ResourceInterface\n * @throws \\Spatie\\Fractalistic\\Exceptions\\InvalidTransformation\n * @static\n */\n public static function getResource()\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->getResource();\n }\n\n /**\n * Return the name of the resource.\n *\n * @return string|null\n * @static\n */\n public static function getResourceName()\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->getResourceName();\n }\n\n /**\n * Convert the object into something JSON serializable.\n *\n * @return array|null\n * @static\n */\n public static function jsonSerialize()\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->jsonSerialize();\n }\n\n /**\n * Get the transformer.\n *\n * @return string|callable|\\League\\Fractal\\TransformerAbstract|null\n * @static\n */\n public static function getTransformer()\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->getTransformer();\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Spatie\\Fractal\\Fractal::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Spatie\\Fractal\\Fractal::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Spatie\\Fractal\\Fractal::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Spatie\\Fractal\\Fractal::flushMacros();\n }\n\n /**\n * Dynamically handle calls to the class.\n *\n * @param string $method\n * @param array $parameters\n * @return mixed\n * @throws \\BadMethodCallException\n * @static\n */\n public static function macroCall($method, $parameters)\n {\n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->macroCall($method, $parameters);\n }\n\n }\n }\n\nnamespace Laratrust {\n /**\n */\n class LaratrustFacade {\n /**\n * Checks if the current user has a role by its name.\n *\n * @static\n */\n public static function hasRole($role, $team = null, $requireAll = false)\n {\n /** @var \\Laratrust\\Laratrust $instance */\n return $instance->hasRole($role, $team, $requireAll);\n }\n\n /**\n * Check if the current user has a permission by its name.\n *\n * @static\n */\n public static function hasPermission($permission, $team = null, $requireAll = false)\n {\n /** @var \\Laratrust\\Laratrust $instance */\n return $instance->hasPermission($permission, $team, $requireAll);\n }\n\n /**\n * Check if the current user does not have a permission by its name.\n *\n * @static\n */\n public static function doesntHavePermission($permission, $team = null, $requireAll = false)\n {\n /** @var \\Laratrust\\Laratrust $instance */\n return $instance->doesntHavePermission($permission, $team, $requireAll);\n }\n\n /**\n * Check if the current user has a permission by its name.\n * \n * Alias to hasPermission.\n *\n * @static\n */\n public static function isAbleTo($permission, $team = null, $requireAll = false)\n {\n /** @var \\Laratrust\\Laratrust $instance */\n return $instance->isAbleTo($permission, $team, $requireAll);\n }\n\n /**\n * Check if the current user does not have a permission by its name.\n * \n * Alias to doesntHavePermission.\n *\n * @static\n */\n public static function isNotAbleTo($permission, $team = null, $requireAll = false)\n {\n /** @var \\Laratrust\\Laratrust $instance */\n return $instance->isNotAbleTo($permission, $team, $requireAll);\n }\n\n /**\n * Check if the current user has a role or permission by its name.\n *\n * @param array|string $roles The role(s) needed.\n * @param array|string $permissions The permission(s) needed.\n * @param array $options The Options.\n * @return bool\n * @static\n */\n public static function ability($roles, $permissions, $team = null, $options = [])\n {\n /** @var \\Laratrust\\Laratrust $instance */\n return $instance->ability($roles, $permissions, $team, $options);\n }\n\n }\n }\n\nnamespace Sentry\\Laravel {\n /**\n * @see \\Sentry\\State\\HubInterface\n */\n class Facade {\n /**\n * Gets the client bound to the top of the stack.\n *\n * @static\n */\n public static function getClient()\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->getClient();\n }\n\n /**\n * Gets the ID of the last captured event.\n *\n * @static\n */\n public static function getLastEventId()\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->getLastEventId();\n }\n\n /**\n * Creates a new scope to store context information that will be layered on\n * top of the current one. It is isolated, i.e. all breadcrumbs and context\n * information added to this scope will be removed once the scope ends. Be\n * sure to always remove this scope with {@see Hub::popScope} when the\n * operation finishes or throws.\n *\n * @static\n */\n public static function pushScope()\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->pushScope();\n }\n\n /**\n * Removes a previously pushed scope from the stack. This restores the state\n * before the scope was pushed. All breadcrumbs and context information added\n * since the last call to {@see Hub::pushScope} are discarded.\n *\n * @static\n */\n public static function popScope()\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->popScope();\n }\n\n /**\n * Creates a new scope with and executes the given operation within. The scope\n * is automatically removed once the operation finishes or throws.\n *\n * @param callable $callback The callback to be executed\n * @return mixed|void The callback's return value, upon successful execution\n * @psalm-template T\n * @psalm-param callable(Scope): T $callback\n * @psalm-return T\n * @static\n */\n public static function withScope($callback)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->withScope($callback);\n }\n\n /**\n * Calls the given callback passing to it the current scope so that any\n * operation can be run within its context.\n *\n * @static\n */\n public static function configureScope($callback)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->configureScope($callback);\n }\n\n /**\n * Binds the given client to the current scope.\n *\n * @static\n */\n public static function bindClient($client)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->bindClient($client);\n }\n\n /**\n * Captures a message event and sends it to Sentry.\n *\n * @static\n */\n public static function captureMessage($message, $level = null, $hint = null)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->captureMessage($message, $level, $hint);\n }\n\n /**\n * Captures an exception event and sends it to Sentry.\n *\n * @static\n */\n public static function captureException($exception, $hint = null)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->captureException($exception, $hint);\n }\n\n /**\n * Captures a new event using the provided data.\n *\n * @static\n */\n public static function captureEvent($event, $hint = null)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->captureEvent($event, $hint);\n }\n\n /**\n * Captures an event that logs the last occurred error.\n *\n * @static\n */\n public static function captureLastError($hint = null)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->captureLastError($hint);\n }\n\n /**\n * Captures a check-in.\n *\n * @param int|float|null $duration\n * @param int|float|null $duration\n * @static\n */\n public static function captureCheckIn($slug, $status, $duration = null, $monitorConfig = null, $checkInId = null)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->captureCheckIn($slug, $status, $duration, $monitorConfig, $checkInId);\n }\n\n /**\n * Records a new breadcrumb which will be attached to future events. They\n * will be added to subsequent events to provide more context on user's\n * actions prior to an error or crash.\n *\n * @static\n */\n public static function addBreadcrumb($breadcrumb)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->addBreadcrumb($breadcrumb);\n }\n\n /**\n * Gets the integration whose FQCN matches the given one if it's available on the current client.\n *\n * @param string $className The FQCN of the integration\n * @psalm-template T of IntegrationInterface\n * @psalm-param class-string<T> $className\n * @psalm-return T|null\n * @static\n */\n public static function getIntegration($className)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->getIntegration($className);\n }\n\n /**\n * Starts a new `Transaction` and returns it. This is the entry point to manual\n * tracing instrumentation.\n * \n * A tree structure can be built by adding child spans to the transaction, and\n * child spans to other spans. To start a new child span within the transaction\n * or any span, call the respective `startChild()` method.\n * \n * Every child span must be finished before the transaction is finished,\n * otherwise the unfinished spans are discarded.\n * \n * The transaction must be finished with a call to its `finish()` method, at\n * which point the transaction with all its finished child spans will be sent to\n * Sentry.\n *\n * @param array<string, mixed> $customSamplingContext Additional context that will be passed to the {@see SamplingContext}\n * @param array<string, mixed> $customSamplingContext Additional context that will be passed to the {@see SamplingContext}\n * @static\n */\n public static function startTransaction($context, $customSamplingContext = [])\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->startTransaction($context, $customSamplingContext);\n }\n\n /**\n * Returns the transaction that is on the Hub.\n *\n * @static\n */\n public static function getTransaction()\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->getTransaction();\n }\n\n /**\n * Sets the span on the Hub.\n *\n * @static\n */\n public static function setSpan($span)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->setSpan($span);\n }\n\n /**\n * Returns the span that is on the Hub.\n *\n * @static\n */\n public static function getSpan()\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->getSpan();\n }\n\n }\n }\n\nnamespace League\\StatsD\\Laravel5\\Facade {\n /**\n * Facade for Statsd Package\n *\n * @author Aran Wilkinson <aran@aranw.net>\n * @package League\\StatsD\\Laravel5\\Facade\n */\n class StatsdFacade {\n /**\n * Singleton Reference\n *\n * @static\n */\n public static function instance($name = 'default')\n {\n return \\League\\StatsD\\Client::instance($name);\n }\n\n /**\n * Initialize Connection Details\n *\n * @param array $options Configuration options\n * @return \\League\\StatsD\\Client This instance\n * @throws ConfigurationException If port is invalid\n * @static\n */\n public static function configure($options = [])\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->configure($options);\n }\n\n /**\n * @static\n */\n public static function getHost()\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->getHost();\n }\n\n /**\n * @static\n */\n public static function getPort()\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->getPort();\n }\n\n /**\n * @static\n */\n public static function getNamespace()\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->getNamespace();\n }\n\n /**\n * Get Last message sent to server\n *\n * @static\n */\n public static function getLastMessage()\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->getLastMessage();\n }\n\n /**\n * Increment a metric\n *\n * @param string|array $metrics Metric(s) to increment\n * @param int $delta Value to decrement the metric by\n * @param float $sampleRate Sample rate of metric\n * @param array $tags A list of metric tags values\n * @throws ConnectionException\n * @static\n */\n public static function increment($metrics, $delta = 1, $sampleRate = 1.0, $tags = [])\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->increment($metrics, $delta, $sampleRate, $tags);\n }\n\n /**\n * Decrement a metric\n *\n * @param string|array $metrics Metric(s) to decrement\n * @param int $delta Value to increment the metric by\n * @param float $sampleRate Sample rate of metric\n * @param array $tags A list of metric tags values\n * @throws ConnectionException\n * @static\n */\n public static function decrement($metrics, $delta = 1, $sampleRate = 1.0, $tags = [])\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->decrement($metrics, $delta, $sampleRate, $tags);\n }\n\n /**\n * Start timing the given metric\n *\n * @param string $metric Metric to time\n * @static\n */\n public static function startTiming($metric)\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->startTiming($metric);\n }\n\n /**\n * End timing the given metric and record\n *\n * @param string $metric Metric to time\n * @param array $tags A list of metric tags values\n * @throws ConnectionException\n * @static\n */\n public static function endTiming($metric, $tags = [])\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->endTiming($metric, $tags);\n }\n\n /**\n * Timing\n *\n * @param string $metric Metric to track\n * @param float $time Time in milliseconds\n * @param array $tags A list of metric tags values\n * @throws ConnectionException\n * @static\n */\n public static function timing($metric, $time, $tags = [])\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->timing($metric, $time, $tags);\n }\n\n /**\n * Send multiple timing metrics at once\n *\n * @param array $metrics key value map of metric name -> timing value\n * @throws ConnectionException\n * @static\n */\n public static function timings($metrics)\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->timings($metrics);\n }\n\n /**\n * Time a function\n *\n * @param string $metric Metric to time\n * @param callable $func Function to record\n * @param array $tags A list of metric tags values\n * @throws ConnectionException\n * @static\n */\n public static function time($metric, $func, $tags = [])\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->time($metric, $func, $tags);\n }\n\n /**\n * Gauges\n *\n * @param string $metric Metric to gauge\n * @param int|float $value Set the value of the gauge\n * @param array $tags A list of metric tags values\n * @throws ConnectionException\n * @static\n */\n public static function gauge($metric, $value, $tags = [])\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->gauge($metric, $value, $tags);\n }\n\n /**\n * Sets - count the number of unique values passed to a key\n *\n * @param string $metric\n * @param mixed $value\n * @param array $tags A list of metric tags values\n * @throws ConnectionException\n * @static\n */\n public static function set($metric, $value, $tags = [])\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->set($metric, $value, $tags);\n }\n\n }\n }\n\nnamespace Barryvdh\\Debugbar\\Facades {\n /**\n * @method static void alert(mixed $message)\n * @method static void critical(mixed $message)\n * @method static void debug(mixed $message)\n * @method static void emergency(mixed $message)\n * @method static void error(mixed $message)\n * @method static void info(mixed $message)\n * @method static void log(mixed $message)\n * @method static void notice(mixed $message)\n * @method static void warning(mixed $message)\n * @see \\Barryvdh\\Debugbar\\LaravelDebugbar\n */\n class Debugbar extends \\DebugBar\\DebugBar {\n /**\n * Returns the HTTP driver\n * \n * If no http driver where defined, a PhpHttpDriver is automatically created\n *\n * @return \\DebugBar\\HttpDriverInterface\n * @static\n */\n public static function getHttpDriver()\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getHttpDriver();\n }\n\n /**\n * Enable the Debugbar and boot, if not already booted.\n *\n * @static\n */\n public static function enable()\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->enable();\n }\n\n /**\n * Boot the debugbar (add collectors, renderer and listener)\n *\n * @static\n */\n public static function boot()\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->boot();\n }\n\n /**\n * @static\n */\n public static function shouldCollect($name, $default = false)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->shouldCollect($name, $default);\n }\n\n /**\n * Adds a data collector\n *\n * @param \\DebugBar\\DataCollector\\DataCollectorInterface $collector\n * @throws DebugBarException\n * @return \\Barryvdh\\Debugbar\\LaravelDebugbar\n * @static\n */\n public static function addCollector($collector)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->addCollector($collector);\n }\n\n /**\n * Handle silenced errors\n *\n * @param $level\n * @param $message\n * @param string $file\n * @param int $line\n * @param array $context\n * @throws \\ErrorException\n * @static\n */\n public static function handleError($level, $message, $file = '', $line = 0, $context = [])\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->handleError($level, $message, $file, $line, $context);\n }\n\n /**\n * Starts a measure\n *\n * @param string $name Internal name, used to stop the measure\n * @param string $label Public name\n * @param string|null $collector\n * @param string|null $group\n * @static\n */\n public static function startMeasure($name, $label = null, $collector = null, $group = null)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->startMeasure($name, $label, $collector, $group);\n }\n\n /**\n * Stops a measure\n *\n * @param string $name\n * @static\n */\n public static function stopMeasure($name)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->stopMeasure($name);\n }\n\n /**\n * Adds an exception to be profiled in the debug bar\n *\n * @param \\Exception $e\n * @deprecated in favor of addThrowable\n * @static\n */\n public static function addException($e)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->addException($e);\n }\n\n /**\n * Adds an exception to be profiled in the debug bar\n *\n * @param \\Throwable $e\n * @static\n */\n public static function addThrowable($e)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->addThrowable($e);\n }\n\n /**\n * Returns a JavascriptRenderer for this instance\n *\n * @param string $baseUrl\n * @param string $basePath\n * @return \\Barryvdh\\Debugbar\\JavascriptRenderer\n * @static\n */\n public static function getJavascriptRenderer($baseUrl = null, $basePath = null)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getJavascriptRenderer($baseUrl, $basePath);\n }\n\n /**\n * Modify the response and inject the debugbar (or data in headers)\n *\n * @param \\Symfony\\Component\\HttpFoundation\\Request $request\n * @param \\Symfony\\Component\\HttpFoundation\\Response $response\n * @return \\Symfony\\Component\\HttpFoundation\\Response\n * @static\n */\n public static function modifyResponse($request, $response)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->modifyResponse($request, $response);\n }\n\n /**\n * Check if the Debugbar is enabled\n *\n * @return boolean\n * @static\n */\n public static function isEnabled()\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->isEnabled();\n }\n\n /**\n * Collects the data from the collectors\n *\n * @return array\n * @static\n */\n public static function collect()\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->collect();\n }\n\n /**\n * Injects the web debug toolbar into the given Response.\n *\n * @param \\Symfony\\Component\\HttpFoundation\\Response $response A Response instance\n * Based on https://github.com/symfony/WebProfilerBundle/blob/master/EventListener/WebDebugToolbarListener.php\n * @static\n */\n public static function injectDebugbar($response)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->injectDebugbar($response);\n }\n\n /**\n * Checks if there is stacked data in the session\n *\n * @return boolean\n * @static\n */\n public static function hasStackedData()\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->hasStackedData();\n }\n\n /**\n * Returns the data stacked in the session\n *\n * @param boolean $delete Whether to delete the data in the session\n * @return array\n * @static\n */\n public static function getStackedData($delete = true)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getStackedData($delete);\n }\n\n /**\n * Disable the Debugbar\n *\n * @static\n */\n public static function disable()\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->disable();\n }\n\n /**\n * Adds a measure\n *\n * @param string $label\n * @param float $start\n * @param float $end\n * @param array|null $params\n * @param string|null $collector\n * @param string|null $group\n * @static\n */\n public static function addMeasure($label, $start, $end, $params = [], $collector = null, $group = null)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->addMeasure($label, $start, $end, $params, $collector, $group);\n }\n\n /**\n * Utility function to measure the execution of a Closure\n *\n * @param string $label\n * @param \\Closure $closure\n * @param string|null $collector\n * @param string|null $group\n * @return mixed\n * @static\n */\n public static function measure($label, $closure, $collector = null, $group = null)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->measure($label, $closure, $collector, $group);\n }\n\n /**\n * Collect data in a CLI request\n *\n * @return array\n * @static\n */\n public static function collectConsole()\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->collectConsole();\n }\n\n /**\n * Adds a message to the MessagesCollector\n * \n * A message can be anything from an object to a string\n *\n * @param mixed $message\n * @param string $label\n * @static\n */\n public static function addMessage($message, $label = 'info')\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->addMessage($message, $label);\n }\n\n /**\n * Checks if a data collector has been added\n *\n * @param string $name\n * @return boolean\n * @static\n */\n public static function hasCollector($name)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->hasCollector($name);\n }\n\n /**\n * Returns a data collector\n *\n * @param string $name\n * @return \\DebugBar\\DataCollector\\DataCollectorInterface\n * @throws DebugBarException\n * @static\n */\n public static function getCollector($name)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getCollector($name);\n }\n\n /**\n * Returns an array of all data collectors\n *\n * @return array[DataCollectorInterface]\n * @static\n */\n public static function getCollectors()\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getCollectors();\n }\n\n /**\n * Sets the request id generator\n *\n * @param \\DebugBar\\RequestIdGeneratorInterface $generator\n * @return \\Barryvdh\\Debugbar\\LaravelDebugbar\n * @static\n */\n public static function setRequestIdGenerator($generator)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->setRequestIdGenerator($generator);\n }\n\n /**\n * @return \\DebugBar\\RequestIdGeneratorInterface\n * @static\n */\n public static function getRequestIdGenerator()\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getRequestIdGenerator();\n }\n\n /**\n * Returns the id of the current request\n *\n * @return string\n * @static\n */\n public static function getCurrentRequestId()\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getCurrentRequestId();\n }\n\n /**\n * Sets the storage backend to use to store the collected data\n *\n * @param \\DebugBar\\StorageInterface $storage\n * @return \\Barryvdh\\Debugbar\\LaravelDebugbar\n * @static\n */\n public static function setStorage($storage = null)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->setStorage($storage);\n }\n\n /**\n * @return \\DebugBar\\StorageInterface\n * @static\n */\n public static function getStorage()\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getStorage();\n }\n\n /**\n * Checks if the data will be persisted\n *\n * @return boolean\n * @static\n */\n public static function isDataPersisted()\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->isDataPersisted();\n }\n\n /**\n * Sets the HTTP driver\n *\n * @param \\DebugBar\\HttpDriverInterface $driver\n * @return \\Barryvdh\\Debugbar\\LaravelDebugbar\n * @static\n */\n public static function setHttpDriver($driver)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->setHttpDriver($driver);\n }\n\n /**\n * Returns collected data\n * \n * Will collect the data if none have been collected yet\n *\n * @return array\n * @static\n */\n public static function getData()\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getData();\n }\n\n /**\n * Returns an array of HTTP headers containing the data\n *\n * @param string $headerName\n * @param integer $maxHeaderLength\n * @return array\n * @static\n */\n public static function getDataAsHeaders($headerName = 'phpdebugbar', $maxHeaderLength = 4096, $maxTotalHeaderLength = 250000)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getDataAsHeaders($headerName, $maxHeaderLength, $maxTotalHeaderLength);\n }\n\n /**\n * Sends the data through the HTTP headers\n *\n * @param bool $useOpenHandler\n * @param string $headerName\n * @param integer $maxHeaderLength\n * @return \\Barryvdh\\Debugbar\\LaravelDebugbar\n * @static\n */\n public static function sendDataInHeaders($useOpenHandler = null, $headerName = 'phpdebugbar', $maxHeaderLength = 4096)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->sendDataInHeaders($useOpenHandler, $headerName, $maxHeaderLength);\n }\n\n /**\n * Stacks the data in the session for later rendering\n *\n * @static\n */\n public static function stackData()\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->stackData();\n }\n\n /**\n * Sets the key to use in the $_SESSION array\n *\n * @param string $ns\n * @return \\Barryvdh\\Debugbar\\LaravelDebugbar\n * @static\n */\n public static function setStackDataSessionNamespace($ns)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->setStackDataSessionNamespace($ns);\n }\n\n /**\n * Returns the key used in the $_SESSION array\n *\n * @return string\n * @static\n */\n public static function getStackDataSessionNamespace()\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getStackDataSessionNamespace();\n }\n\n /**\n * Sets whether to only use the session to store stacked data even\n * if a storage is enabled\n *\n * @param boolean $enabled\n * @return \\Barryvdh\\Debugbar\\LaravelDebugbar\n * @static\n */\n public static function setStackAlwaysUseSessionStorage($enabled = true)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->setStackAlwaysUseSessionStorage($enabled);\n }\n\n /**\n * Checks if the session is always used to store stacked data\n * even if a storage is enabled\n *\n * @return boolean\n * @static\n */\n public static function isStackAlwaysUseSessionStorage()\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->isStackAlwaysUseSessionStorage();\n }\n\n /**\n * @static\n */\n public static function offsetSet($key, $value)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->offsetSet($key, $value);\n }\n\n /**\n * @static\n */\n public static function offsetGet($key)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->offsetGet($key);\n }\n\n /**\n * @static\n */\n public static function offsetExists($key)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->offsetExists($key);\n }\n\n /**\n * @static\n */\n public static function offsetUnset($key)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->offsetUnset($key);\n }\n\n }\n }\n\nnamespace Barryvdh\\DomPDF\\Facade {\n /**\n * @method static BasePDF setBaseHost(string $baseHost)\n * @method static BasePDF setBasePath(string $basePath)\n * @method static BasePDF setCanvas(\\Dompdf\\Canvas $canvas)\n * @method static BasePDF setCallbacks(array<string, mixed> $callbacks)\n * @method static BasePDF setCss(\\Dompdf\\Css\\Stylesheet $css)\n * @method static BasePDF setDefaultView(string $defaultView, array<string, mixed> $options)\n * @method static BasePDF setDom(\\DOMDocument $dom)\n * @method static BasePDF setFontMetrics(\\Dompdf\\FontMetrics $fontMetrics)\n * @method static BasePDF setHttpContext(resource|array<string, mixed> $httpContext)\n * @method static BasePDF setPaper(string|float[] $paper, string $orientation = 'portrait')\n * @method static BasePDF setProtocol(string $protocol)\n * @method static BasePDF setTree(\\Dompdf\\Frame\\FrameTree $tree)\n */\n class Pdf {\n /**\n * Get the DomPDF instance\n *\n * @static\n */\n public static function getDomPDF()\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->getDomPDF();\n }\n\n /**\n * Show or hide warnings\n *\n * @static\n */\n public static function setWarnings($warnings)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->setWarnings($warnings);\n }\n\n /**\n * Load a HTML string\n *\n * @param string|null $encoding Not used yet\n * @static\n */\n public static function loadHTML($string, $encoding = null)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->loadHTML($string, $encoding);\n }\n\n /**\n * Load a HTML file\n *\n * @static\n */\n public static function loadFile($file)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->loadFile($file);\n }\n\n /**\n * Add metadata info\n *\n * @param array<string, string> $info\n * @static\n */\n public static function addInfo($info)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->addInfo($info);\n }\n\n /**\n * Load a View and convert to HTML\n *\n * @param array<string, mixed> $data\n * @param array<string, mixed> $mergeData\n * @param string|null $encoding Not used yet\n * @static\n */\n public static function loadView($view, $data = [], $mergeData = [], $encoding = null)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->loadView($view, $data, $mergeData, $encoding);\n }\n\n /**\n * Set/Change an option (or array of options) in Dompdf\n *\n * @param array<string, mixed>|string $attribute\n * @param null|mixed $value\n * @static\n */\n public static function setOption($attribute, $value = null)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->setOption($attribute, $value);\n }\n\n /**\n * Replace all the Options from DomPDF\n *\n * @param array<string, mixed> $options\n * @static\n */\n public static function setOptions($options, $mergeWithDefaults = false)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->setOptions($options, $mergeWithDefaults);\n }\n\n /**\n * Output the PDF as a string.\n * \n * The options parameter controls the output. Accepted options are:\n * \n * 'compress' = > 1 or 0 - apply content stream compression, this is\n * on (1) by default\n *\n * @param array<string, int> $options\n * @return string The rendered PDF as string\n * @static\n */\n public static function output($options = [])\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->output($options);\n }\n\n /**\n * Save the PDF to a file\n *\n * @static\n */\n public static function save($filename, $disk = null)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->save($filename, $disk);\n }\n\n /**\n * Make the PDF downloadable by the user\n *\n * @static\n */\n public static function download($filename = 'document.pdf')\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->download($filename);\n }\n\n /**\n * Return a response with the PDF to show in the browser\n *\n * @static\n */\n public static function stream($filename = 'document.pdf')\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->stream($filename);\n }\n\n /**\n * Render the PDF\n *\n * @static\n */\n public static function render()\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->render();\n }\n\n /**\n * @param array<string> $pc\n * @static\n */\n public static function setEncryption($password, $ownerpassword = '', $pc = [])\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->setEncryption($password, $ownerpassword, $pc);\n }\n\n }\n /**\n * @method static BasePDF setBaseHost(string $baseHost)\n * @method static BasePDF setBasePath(string $basePath)\n * @method static BasePDF setCanvas(\\Dompdf\\Canvas $canvas)\n * @method static BasePDF setCallbacks(array<string, mixed> $callbacks)\n * @method static BasePDF setCss(\\Dompdf\\Css\\Stylesheet $css)\n * @method static BasePDF setDefaultView(string $defaultView, array<string, mixed> $options)\n * @method static BasePDF setDom(\\DOMDocument $dom)\n * @method static BasePDF setFontMetrics(\\Dompdf\\FontMetrics $fontMetrics)\n * @method static BasePDF setHttpContext(resource|array<string, mixed> $httpContext)\n * @method static BasePDF setPaper(string|float[] $paper, string $orientation = 'portrait')\n * @method static BasePDF setProtocol(string $protocol)\n * @method static BasePDF setTree(\\Dompdf\\Frame\\FrameTree $tree)\n */\n class Pdf {\n /**\n * Get the DomPDF instance\n *\n * @static\n */\n public static function getDomPDF()\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->getDomPDF();\n }\n\n /**\n * Show or hide warnings\n *\n * @static\n */\n public static function setWarnings($warnings)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->setWarnings($warnings);\n }\n\n /**\n * Load a HTML string\n *\n * @param string|null $encoding Not used yet\n * @static\n */\n public static function loadHTML($string, $encoding = null)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->loadHTML($string, $encoding);\n }\n\n /**\n * Load a HTML file\n *\n * @static\n */\n public static function loadFile($file)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->loadFile($file);\n }\n\n /**\n * Add metadata info\n *\n * @param array<string, string> $info\n * @static\n */\n public static function addInfo($info)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->addInfo($info);\n }\n\n /**\n * Load a View and convert to HTML\n *\n * @param array<string, mixed> $data\n * @param array<string, mixed> $mergeData\n * @param string|null $encoding Not used yet\n * @static\n */\n public static function loadView($view, $data = [], $mergeData = [], $encoding = null)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->loadView($view, $data, $mergeData, $encoding);\n }\n\n /**\n * Set/Change an option (or array of options) in Dompdf\n *\n * @param array<string, mixed>|string $attribute\n * @param null|mixed $value\n * @static\n */\n public static function setOption($attribute, $value = null)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->setOption($attribute, $value);\n }\n\n /**\n * Replace all the Options from DomPDF\n *\n * @param array<string, mixed> $options\n * @static\n */\n public static function setOptions($options, $mergeWithDefaults = false)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->setOptions($options, $mergeWithDefaults);\n }\n\n /**\n * Output the PDF as a string.\n * \n * The options parameter controls the output. Accepted options are:\n * \n * 'compress' = > 1 or 0 - apply content stream compression, this is\n * on (1) by default\n *\n * @param array<string, int> $options\n * @return string The rendered PDF as string\n * @static\n */\n public static function output($options = [])\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->output($options);\n }\n\n /**\n * Save the PDF to a file\n *\n * @static\n */\n public static function save($filename, $disk = null)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->save($filename, $disk);\n }\n\n /**\n * Make the PDF downloadable by the user\n *\n * @static\n */\n public static function download($filename = 'document.pdf')\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->download($filename);\n }\n\n /**\n * Return a response with the PDF to show in the browser\n *\n * @static\n */\n public static function stream($filename = 'document.pdf')\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->stream($filename);\n }\n\n /**\n * Render the PDF\n *\n * @static\n */\n public static function render()\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->render();\n }\n\n /**\n * @param array<string> $pc\n * @static\n */\n public static function setEncryption($password, $ownerpassword = '', $pc = [])\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->setEncryption($password, $ownerpassword, $pc);\n }\n\n }\n }\n\nnamespace ChaseConey\\LaravelDatadogHelper {\n /**\n * @see LaravelDatadogHelper\n * @see \\Datadog\\DogStatsd\n */\n class Datadog extends \\DataDog\\DogStatsd {\n /**\n * @static\n */\n public static function send($data, $sampleRate = 1.0, $tags = null, $cardinality = null)\n {\n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n return $instance->send($data, $sampleRate, $tags, $cardinality);\n }\n\n /**\n * Log timing information\n *\n * @param string $stat The metric to in log timing info for.\n * @param float $time The elapsed time (ms) to log\n * @param float $sampleRate the rate (0-1) for sampling.\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @return void\n * @static\n */\n public static function timing($stat, $time, $sampleRate = 1.0, $tags = null, $cardinality = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->timing($stat, $time, $sampleRate, $tags, $cardinality);\n }\n\n /**\n * A convenient alias for the timing function when used with micro-timing\n *\n * @param string $stat The metric name\n * @param float $time The elapsed time to log, IN SECONDS\n * @param float $sampleRate the rate (0-1) for sampling.\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @return void\n * @static\n */\n public static function microtiming($stat, $time, $sampleRate = 1.0, $tags = null, $cardinality = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->microtiming($stat, $time, $sampleRate, $tags, $cardinality);\n }\n\n /**\n * Gauge\n *\n * @param string $stat The metric\n * @param float $value The value\n * @param float $sampleRate the rate (0-1) for sampling.\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @return void\n * @static\n */\n public static function gauge($stat, $value, $sampleRate = 1.0, $tags = null, $cardinality = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->gauge($stat, $value, $sampleRate, $tags, $cardinality);\n }\n\n /**\n * Histogram\n *\n * @param string $stat The metric\n * @param float $value The value\n * @param float $sampleRate the rate (0-1) for sampling.\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @return void\n * @static\n */\n public static function histogram($stat, $value, $sampleRate = 1.0, $tags = null, $cardinality = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->histogram($stat, $value, $sampleRate, $tags, $cardinality);\n }\n\n /**\n * Distribution\n *\n * @param string $stat The metric\n * @param float $value The value\n * @param float $sampleRate the rate (0-1) for sampling.\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @return void\n * @static\n */\n public static function distribution($stat, $value, $sampleRate = 1.0, $tags = null, $cardinality = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->distribution($stat, $value, $sampleRate, $tags, $cardinality);\n }\n\n /**\n * Set\n *\n * @param string $stat The metric\n * @param string|float $value The value\n * @param float $sampleRate the rate (0-1) for sampling.\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @return void\n * @static\n */\n public static function set($stat, $value, $sampleRate = 1.0, $tags = null, $cardinality = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->set($stat, $value, $sampleRate, $tags, $cardinality);\n }\n\n /**\n * Increments one or more stats counters\n *\n * @param string|array $stats The metric(s) to increment.\n * @param float $sampleRate the rate (0-1) for sampling.\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @param int $value the amount to increment by (default 1)\n * @return void\n * @static\n */\n public static function increment($stats, $sampleRate = 1.0, $tags = null, $value = 1, $cardinality = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->increment($stats, $sampleRate, $tags, $value, $cardinality);\n }\n\n /**\n * Decrements one or more stats counters.\n *\n * @param string|array $stats The metric(s) to decrement.\n * @param float $sampleRate the rate (0-1) for sampling.\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @param int $value the amount to decrement by (default -1)\n * @return void\n * @static\n */\n public static function decrement($stats, $sampleRate = 1.0, $tags = null, $value = -1, $cardinality = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->decrement($stats, $sampleRate, $tags, $value, $cardinality);\n }\n\n /**\n * Updates one or more stats counters by arbitrary amounts.\n *\n * @param string|array $stats The metric(s) to update. Should be either a string or array of metrics.\n * @param int $delta The amount to increment/decrement each metric by.\n * @param float $sampleRate the rate (0-1) for sampling.\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @return void\n * @static\n */\n public static function updateStats($stats, $delta = 1, $sampleRate = 1.0, $tags = null, $cardinality = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->updateStats($stats, $delta, $sampleRate, $tags, $cardinality);\n }\n\n /**\n * @deprecated service_check will be removed in future versions in favor of serviceCheck\n * \n * Send a custom service check status over UDP\n * @param string $name service check name\n * @param int $status service check status code (see OK, WARNING,...)\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @param string $hostname hostname to associate with this service check status\n * @param string $message message to associate with this service check status\n * @param int $timestamp timestamp for the service check status (defaults to now)\n * @return void\n * @static\n */\n public static function service_check($name, $status, $tags = null, $hostname = null, $message = null, $timestamp = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->service_check($name, $status, $tags, $hostname, $message, $timestamp);\n }\n\n /**\n * Send a custom service check status over UDP\n *\n * @param string $name service check name\n * @param int $status service check status code (see OK, WARNING,...)\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @param string $hostname hostname to associate with this service check status\n * @param string $message message to associate with this service check status\n * @param int $timestamp timestamp for the service check status (defaults to now)\n * @return void\n * @static\n */\n public static function serviceCheck($name, $status, $tags = null, $hostname = null, $message = null, $timestamp = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->serviceCheck($name, $status, $tags, $hostname, $message, $timestamp);\n }\n\n /**\n * @static\n */\n public static function report($message)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n return $instance->report($message);\n }\n\n /**\n * @throws \\Exception|\\Throwable\n * @static\n */\n public static function flush($message)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n return $instance->flush($message);\n }\n\n /**\n * Formats $vals array into event for submission to Datadog via UDP\n *\n * @param array $vals Optional values of the event. See\n * https://docs.datadoghq.com/api/?lang=bash#post-an-event for the valid keys\n * @return bool\n * @static\n */\n public static function event($title, $vals = [])\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n return $instance->event($title, $vals);\n }\n\n /**\n * @static\n */\n public static function setMetricsPrefix($metricsPrefix)\n {\n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n return $instance->setMetricsPrefix($metricsPrefix);\n }\n\n }\n }\n\nnamespace Spatie\\LaravelIgnition\\Facades {\n /**\n * @see \\Spatie\\FlareClient\\Flare\n */\n class Flare {\n /**\n * @static\n */\n public static function make($apiKey = null, $contextDetector = null)\n {\n return \\Spatie\\FlareClient\\Flare::make($apiKey, $contextDetector);\n }\n\n /**\n * @static\n */\n public static function setApiToken($apiToken)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->setApiToken($apiToken);\n }\n\n /**\n * @static\n */\n public static function apiTokenSet()\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->apiTokenSet();\n }\n\n /**\n * @static\n */\n public static function setBaseUrl($baseUrl)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->setBaseUrl($baseUrl);\n }\n\n /**\n * @static\n */\n public static function setStage($stage)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->setStage($stage);\n }\n\n /**\n * @static\n */\n public static function sendReportsImmediately()\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->sendReportsImmediately();\n }\n\n /**\n * @static\n */\n public static function determineVersionUsing($determineVersionCallable)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->determineVersionUsing($determineVersionCallable);\n }\n\n /**\n * @static\n */\n public static function reportErrorLevels($reportErrorLevels)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->reportErrorLevels($reportErrorLevels);\n }\n\n /**\n * @static\n */\n public static function filterExceptionsUsing($filterExceptionsCallable)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->filterExceptionsUsing($filterExceptionsCallable);\n }\n\n /**\n * @static\n */\n public static function filterReportsUsing($filterReportsCallable)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->filterReportsUsing($filterReportsCallable);\n }\n\n /**\n * @param array<class-string<ArgumentReducer>|ArgumentReducer>|\\Spatie\\Backtrace\\Arguments\\ArgumentReducers|null $argumentReducers\n * @static\n */\n public static function argumentReducers($argumentReducers)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->argumentReducers($argumentReducers);\n }\n\n /**\n * @static\n */\n public static function withStackFrameArguments($withStackFrameArguments = true, $forcePHPIniSetting = false)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->withStackFrameArguments($withStackFrameArguments, $forcePHPIniSetting);\n }\n\n /**\n * @param class-string $exceptionClass\n * @static\n */\n public static function overrideGrouping($exceptionClass, $type = 'exception_message_and_class')\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->overrideGrouping($exceptionClass, $type);\n }\n\n /**\n * @static\n */\n public static function version()\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->version();\n }\n\n /**\n * @return array<int, FlareMiddleware|class-string<FlareMiddleware>>\n * @static\n */\n public static function getMiddleware()\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->getMiddleware();\n }\n\n /**\n * @static\n */\n public static function setContextProviderDetector($contextDetector)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->setContextProviderDetector($contextDetector);\n }\n\n /**\n * @static\n */\n public static function setContainer($container)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->setContainer($container);\n }\n\n /**\n * @static\n */\n public static function registerFlareHandlers()\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->registerFlareHandlers();\n }\n\n /**\n * @static\n */\n public static function registerExceptionHandler()\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->registerExceptionHandler();\n }\n\n /**\n * @static\n */\n public static function registerErrorHandler($errorLevels = null)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->registerErrorHandler($errorLevels);\n }\n\n /**\n * @param \\Spatie\\FlareClient\\FlareMiddleware\\FlareMiddleware|array<FlareMiddleware>|class-string<FlareMiddleware>|callable $middleware\n * @return \\Spatie\\FlareClient\\Flare\n * @static\n */\n public static function registerMiddleware($middleware)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->registerMiddleware($middleware);\n }\n\n /**\n * @return array<int,FlareMiddleware|class-string<FlareMiddleware>>\n * @static\n */\n public static function getMiddlewares()\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->getMiddlewares();\n }\n\n /**\n * @param string $name\n * @param string $messageLevel\n * @param array<int, mixed> $metaData\n * @return \\Spatie\\FlareClient\\Flare\n * @static\n */\n public static function glow($name, $messageLevel = 'info', $metaData = [])\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->glow($name, $messageLevel, $metaData);\n }\n\n /**\n * @static\n */\n public static function handleException($throwable)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->handleException($throwable);\n }\n\n /**\n * @return mixed\n * @static\n */\n public static function handleError($code, $message, $file = '', $line = 0)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->handleError($code, $message, $file, $line);\n }\n\n /**\n * @static\n */\n public static function applicationPath($applicationPath)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->applicationPath($applicationPath);\n }\n\n /**\n * @static\n */\n public static function report($throwable, $callback = null, $report = null, $handled = null)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->report($throwable, $callback, $report, $handled);\n }\n\n /**\n * @static\n */\n public static function reportHandled($throwable)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->reportHandled($throwable);\n }\n\n /**\n * @static\n */\n public static function reportMessage($message, $logLevel, $callback = null)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->reportMessage($message, $logLevel, $callback);\n }\n\n /**\n * @static\n */\n public static function sendTestReport($throwable)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->sendTestReport($throwable);\n }\n\n /**\n * @static\n */\n public static function reset()\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->reset();\n }\n\n /**\n * @static\n */\n public static function anonymizeIp()\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->anonymizeIp();\n }\n\n /**\n * @param array<int, string> $fieldNames\n * @return \\Spatie\\FlareClient\\Flare\n * @static\n */\n public static function censorRequestBodyFields($fieldNames)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->censorRequestBodyFields($fieldNames);\n }\n\n /**\n * @static\n */\n public static function createReport($throwable)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->createReport($throwable);\n }\n\n /**\n * @static\n */\n public static function createReportFromMessage($message, $logLevel)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->createReportFromMessage($message, $logLevel);\n }\n\n /**\n * @static\n */\n public static function stage($stage)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->stage($stage);\n }\n\n /**\n * @static\n */\n public static function messageLevel($messageLevel)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->messageLevel($messageLevel);\n }\n\n /**\n * @param string $groupName\n * @param mixed $default\n * @return array<int, mixed>\n * @static\n */\n public static function getGroup($groupName = 'context', $default = [])\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->getGroup($groupName, $default);\n }\n\n /**\n * @static\n */\n public static function context($key, $value)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->context($key, $value);\n }\n\n /**\n * @param string $groupName\n * @param array<string, mixed> $properties\n * @return \\Spatie\\FlareClient\\Flare\n * @static\n */\n public static function group($groupName, $properties)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->group($groupName, $properties);\n }\n\n }\n }\n\nnamespace Vinkla\\Hashids\\Facades {\n /**\n * @method static string encode(mixed ...$numbers)\n * @method static array decode(string $hash)\n * @method static string encodeHex(string $str)\n * @method static string decodeHex(string $hash)\n */\n class Hashids extends \\GrahamCampbell\\Manager\\AbstractManager {\n /**\n * @static\n */\n public static function getFactory()\n {\n /** @var \\Vinkla\\Hashids\\HashidsManager $instance */\n return $instance->getFactory();\n }\n\n /**\n * Get a connection instance.\n *\n * @param string|null $name\n * @throws \\InvalidArgumentException\n * @return object\n * @static\n */\n public static function connection($name = null)\n {\n //Method inherited from \\GrahamCampbell\\Manager\\AbstractManager \n /** @var \\Vinkla\\Hashids\\HashidsManager $instance */\n return $instance->connection($name);\n }\n\n /**\n * Reconnect to the given connection.\n *\n * @param string|null $name\n * @throws \\InvalidArgumentException\n * @return object\n * @static\n */\n public static function reconnect($name = null)\n {\n //Method inherited from \\GrahamCampbell\\Manager\\AbstractManager \n /** @var \\Vinkla\\Hashids\\HashidsManager $instance */\n return $instance->reconnect($name);\n }\n\n /**\n * Disconnect from the given connection.\n *\n * @param string|null $name\n * @return void\n * @static\n */\n public static function disconnect($name = null)\n {\n //Method inherited from \\GrahamCampbell\\Manager\\AbstractManager \n /** @var \\Vinkla\\Hashids\\HashidsManager $instance */\n $instance->disconnect($name);\n }\n\n /**\n * Get the configuration for a connection.\n *\n * @param string|null $name\n * @throws \\InvalidArgumentException\n * @return array\n * @static\n */\n public static function getConnectionConfig($name = null)\n {\n //Method inherited from \\GrahamCampbell\\Manager\\AbstractManager \n /** @var \\Vinkla\\Hashids\\HashidsManager $instance */\n return $instance->getConnectionConfig($name);\n }\n\n /**\n * Get the default connection name.\n *\n * @return string\n * @static\n */\n public static function getDefaultConnection()\n {\n //Method inherited from \\GrahamCampbell\\Manager\\AbstractManager \n /** @var \\Vinkla\\Hashids\\HashidsManager $instance */\n return $instance->getDefaultConnection();\n }\n\n /**\n * Set the default connection name.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultConnection($name)\n {\n //Method inherited from \\GrahamCampbell\\Manager\\AbstractManager \n /** @var \\Vinkla\\Hashids\\HashidsManager $instance */\n $instance->setDefaultConnection($name);\n }\n\n /**\n * Register an extension connection resolver.\n *\n * @param string $name\n * @param callable $resolver\n * @return void\n * @static\n */\n public static function extend($name, $resolver)\n {\n //Method inherited from \\GrahamCampbell\\Manager\\AbstractManager \n /** @var \\Vinkla\\Hashids\\HashidsManager $instance */\n $instance->extend($name, $resolver);\n }\n\n /**\n * Return all of the created connections.\n *\n * @return array<string,object>\n * @static\n */\n public static function getConnections()\n {\n //Method inherited from \\GrahamCampbell\\Manager\\AbstractManager \n /** @var \\Vinkla\\Hashids\\HashidsManager $instance */\n return $instance->getConnections();\n }\n\n /**\n * Get the config instance.\n *\n * @return \\Illuminate\\Contracts\\Config\\Repository\n * @static\n */\n public static function getConfig()\n {\n //Method inherited from \\GrahamCampbell\\Manager\\AbstractManager \n /** @var \\Vinkla\\Hashids\\HashidsManager $instance */\n return $instance->getConfig();\n }\n\n }\n }\n\nnamespace Illuminate\\Support {\n /**\n * @template TKey of array-key\n * @template-covariant TValue\n * @implements \\ArrayAccess<TKey, TValue>\n * @implements \\Illuminate\\Support\\Enumerable<TKey, TValue>\n */\n class Collection {\n /**\n * @see \\Barryvdh\\Debugbar\\ServiceProvider::register()\n * @static\n */\n public static function debug()\n {\n return \\Illuminate\\Support\\Collection::debug();\n }\n\n /**\n * @see \\Spatie\\Fractal\\FractalServiceProvider::packageBooted()\n * @param mixed $transformer\n * @static\n */\n public static function transformWith($transformer)\n {\n return \\Illuminate\\Support\\Collection::transformWith($transformer);\n }\n\n }\n }\n\nnamespace Illuminate\\Http {\n /**\n */\n class Request extends \\Symfony\\Component\\HttpFoundation\\Request {\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestValidation()\n * @param array $rules\n * @param mixed $params\n * @static\n */\n public static function validate($rules, ...$params)\n {\n return \\Illuminate\\Http\\Request::validate($rules, ...$params);\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestValidation()\n * @param string $errorBag\n * @param array $rules\n * @param mixed $params\n * @static\n */\n public static function validateWithBag($errorBag, $rules, ...$params)\n {\n return \\Illuminate\\Http\\Request::validateWithBag($errorBag, $rules, ...$params);\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestSignatureValidation()\n * @param mixed $absolute\n * @static\n */\n public static function hasValidSignature($absolute = true)\n {\n return \\Illuminate\\Http\\Request::hasValidSignature($absolute);\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestSignatureValidation()\n * @static\n */\n public static function hasValidRelativeSignature()\n {\n return \\Illuminate\\Http\\Request::hasValidRelativeSignature();\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestSignatureValidation()\n * @param mixed $ignoreQuery\n * @param mixed $absolute\n * @static\n */\n public static function hasValidSignatureWhileIgnoring($ignoreQuery = [], $absolute = true)\n {\n return \\Illuminate\\Http\\Request::hasValidSignatureWhileIgnoring($ignoreQuery, $absolute);\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestSignatureValidation()\n * @param mixed $ignoreQuery\n * @static\n */\n public static function hasValidRelativeSignatureWhileIgnoring($ignoreQuery = [])\n {\n return \\Illuminate\\Http\\Request::hasValidRelativeSignatureWhileIgnoring($ignoreQuery);\n }\n\n }\n }\n\nnamespace Illuminate\\Testing {\n /**\n * @template TResponse of \\Symfony\\Component\\HttpFoundation\\Response\n * @mixin \\Illuminate\\Http\\Response\n */\n class TestResponse {\n /**\n * @see \\JMac\\Testing\\AdditionalAssertionsServiceProvider::register()\n * @param array $structure\n * @static\n */\n public static function assertJsonTypedStructure($structure)\n {\n return \\Illuminate\\Testing\\TestResponse::assertJsonTypedStructure($structure);\n }\n\n /**\n * @see \\JMac\\Testing\\AdditionalAssertionsServiceProvider::register()\n * @param string $key\n * @static\n */\n public static function assertViewHasNull($key)\n {\n return \\Illuminate\\Testing\\TestResponse::assertViewHasNull($key);\n }\n\n }\n }\n\nnamespace Illuminate\\Database\\Schema {\n /**\n */\n class Blueprint {\n /**\n * @see \\Kalnoy\\Nestedset\\NestedSetServiceProvider::register()\n * @static\n */\n public static function nestedSet()\n {\n return \\Illuminate\\Database\\Schema\\Blueprint::nestedSet();\n }\n\n /**\n * @see \\Kalnoy\\Nestedset\\NestedSetServiceProvider::register()\n * @static\n */\n public static function dropNestedSet()\n {\n return \\Illuminate\\Database\\Schema\\Blueprint::dropNestedSet();\n }\n\n }\n }\n\nnamespace Illuminate\\Validation {\n /**\n */\n class Rule {\n /**\n * @see \\Propaganistas\\LaravelPhone\\PhoneServiceProvider::registerValidator()\n * @static\n */\n public static function phone()\n {\n return \\Illuminate\\Validation\\Rule::phone();\n }\n\n }\n }\n\nnamespace Illuminate\\Console\\Scheduling {\n /**\n */\n class Event {\n /**\n * @see \\Sentry\\Laravel\\Features\\ConsoleSchedulingIntegration::register()\n * @param string|null $monitorSlug\n * @param int|null $checkInMargin\n * @param int|null $maxRuntime\n * @param bool $updateMonitorConfig\n * @param int|null $failureIssueThreshold\n * @param int|null $recoveryThreshold\n * @static\n */\n public static function sentryMonitor($monitorSlug = null, $checkInMargin = null, $maxRuntime = null, $updateMonitorConfig = true, $failureIssueThreshold = null, $recoveryThreshold = null)\n {\n return \\Illuminate\\Console\\Scheduling\\Event::sentryMonitor($monitorSlug, $checkInMargin, $maxRuntime, $updateMonitorConfig, $failureIssueThreshold, $recoveryThreshold);\n }\n\n }\n }\n\nnamespace Illuminate\\Http\\Client {\n /**\n * @mixin \\Illuminate\\Http\\Client\\PendingRequest\n */\n class Factory {\n /**\n * @see \\Jiminny\\Providers\\PlanhatServiceProvider::register()\n * @return \\Illuminate\\Http\\Client\\PendingRequest\n * @static\n */\n public static function planhatApi()\n {\n return \\Illuminate\\Http\\Client\\Factory::planhatApi();\n }\n\n /**\n * @see \\Jiminny\\Providers\\PlanhatServiceProvider::register()\n * @return \\Illuminate\\Http\\Client\\PendingRequest\n * @static\n */\n public static function planhatAnalyticsApi()\n {\n return \\Illuminate\\Http\\Client\\Factory::planhatAnalyticsApi();\n }\n\n }\n }\n\nnamespace Illuminate\\Routing {\n /**\n * @mixin \\Illuminate\\Routing\\RouteRegistrar\n */\n class Router {\n /**\n * @see \\Laravel\\Ui\\AuthRouteMethods::auth()\n * @param mixed $options\n * @static\n */\n public static function auth($options = [])\n {\n return \\Illuminate\\Routing\\Router::auth($options);\n }\n\n /**\n * @see \\Laravel\\Ui\\AuthRouteMethods::resetPassword()\n * @static\n */\n public static function resetPassword()\n {\n return \\Illuminate\\Routing\\Router::resetPassword();\n }\n\n /**\n * @see \\Laravel\\Ui\\AuthRouteMethods::confirmPassword()\n * @static\n */\n public static function confirmPassword()\n {\n return \\Illuminate\\Routing\\Router::confirmPassword();\n }\n\n /**\n * @see \\Laravel\\Ui\\AuthRouteMethods::emailVerification()\n * @static\n */\n public static function emailVerification()\n {\n return \\Illuminate\\Routing\\Router::emailVerification();\n }\n\n }\n /**\n */\n class ResponseFactory {\n /**\n * @see \\Jiminny\\Providers\\ResponseMacroServiceProvider::boot()\n * @param mixed $data\n * @param mixed $status\n * @param array $headers\n * @param mixed $options\n * @static\n */\n public static function twiml($data = null, $status = 200, $headers = [], $options = 0)\n {\n return \\Illuminate\\Routing\\ResponseFactory::twiml($data, $status, $headers, $options);\n }\n\n }\n }\n\nnamespace Illuminate\\Database\\Eloquent {\n /**\n * @template TKey of array-key\n * @template TModel of \\Illuminate\\Database\\Eloquent\\Model\n * @extends \\Illuminate\\Support\\Collection<TKey, TModel>\n */\n class Collection extends \\Illuminate\\Support\\Collection {\n }\n }\n\n\nnamespace {\n class App extends \\Illuminate\\Support\\Facades\\App {}\n class Arr extends \\Illuminate\\Support\\Arr {}\n class Artisan extends \\Illuminate\\Support\\Facades\\Artisan {}\n class Auth extends \\Illuminate\\Support\\Facades\\Auth {}\n class Benchmark extends \\Illuminate\\Support\\Benchmark {}\n class Blade extends \\Illuminate\\Support\\Facades\\Blade {}\n class Broadcast extends \\Illuminate\\Support\\Facades\\Broadcast {}\n class Bus extends \\Illuminate\\Support\\Facades\\Bus {}\n class Cache extends \\Illuminate\\Support\\Facades\\Cache {}\n class Concurrency extends \\Illuminate\\Support\\Facades\\Concurrency {}\n class Config extends \\Illuminate\\Support\\Facades\\Config {}\n class Context extends \\Illuminate\\Support\\Facades\\Context {}\n class Cookie extends \\Illuminate\\Support\\Facades\\Cookie {}\n class Crypt extends \\Illuminate\\Support\\Facades\\Crypt {}\n class DB extends \\Illuminate\\Support\\Facades\\DB {}\n\n /**\n * @template TCollection of static\n * @template TModel of static\n * @template TValue of static\n * @template TValue of static\n */\n class Eloquent extends \\Illuminate\\Database\\Eloquent\\Model { /**\n * Create and return an un-saved model instance.\n *\n * @param array $attributes\n * @return TModel\n * @static\n */\n public static function make($attributes = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->make($attributes);\n }\n\n /**\n * Register a new global scope.\n *\n * @param string $identifier\n * @param \\Illuminate\\Database\\Eloquent\\Scope|\\Closure $scope\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withGlobalScope($identifier, $scope)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withGlobalScope($identifier, $scope);\n }\n\n /**\n * Remove a registered global scope.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Scope|string $scope\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withoutGlobalScope($scope)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withoutGlobalScope($scope);\n }\n\n /**\n * Remove all or passed registered global scopes.\n *\n * @param array|null $scopes\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withoutGlobalScopes($scopes = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withoutGlobalScopes($scopes);\n }\n\n /**\n * Remove all global scopes except the given scopes.\n *\n * @param array $scopes\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withoutGlobalScopesExcept($scopes = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withoutGlobalScopesExcept($scopes);\n }\n\n /**\n * Get an array of global scopes that were removed from the query.\n *\n * @return array\n * @static\n */\n public static function removedScopes()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->removedScopes();\n }\n\n /**\n * Add a where clause on the primary key to the query.\n *\n * @param mixed $id\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereKey($id)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereKey($id);\n }\n\n /**\n * Add a where clause on the primary key to the query.\n *\n * @param mixed $id\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereKeyNot($id)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereKeyNot($id);\n }\n\n /**\n * Add a basic where clause to the query.\n *\n * @param (\\Closure(static): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function where($column, $operator = null, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->where($column, $operator, $value, $boolean);\n }\n\n /**\n * Add a basic where clause to the query, and return the first result.\n *\n * @param (\\Closure(static): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @param string $boolean\n * @return TModel|null\n * @static\n */\n public static function firstWhere($column, $operator = null, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->firstWhere($column, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where\" clause to the query.\n *\n * @param (\\Closure(static): mixed)|array|string|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhere($column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhere($column, $operator, $value);\n }\n\n /**\n * Add a basic \"where not\" clause to the query.\n *\n * @param (\\Closure(static): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNot($column, $operator = null, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereNot($column, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where not\" clause to the query.\n *\n * @param (\\Closure(static): mixed)|array|string|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNot($column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereNot($column, $operator, $value);\n }\n\n /**\n * Add an \"order by\" clause for a timestamp to the query.\n *\n * @param string|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function latest($column = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->latest($column);\n }\n\n /**\n * Add an \"order by\" clause for a timestamp to the query.\n *\n * @param string|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function oldest($column = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->oldest($column);\n }\n\n /**\n * Create a collection of models from plain arrays.\n *\n * @param array $items\n * @return \\Illuminate\\Database\\Eloquent\\Collection<int, TModel>\n * @static\n */\n public static function hydrate($items)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->hydrate($items);\n }\n\n /**\n * Insert into the database after merging the model's default attributes, setting timestamps, and casting values.\n *\n * @param array<int, array<string, mixed>> $values\n * @return bool\n * @static\n */\n public static function fillAndInsert($values)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->fillAndInsert($values);\n }\n\n /**\n * Insert (ignoring errors) into the database after merging the model's default attributes, setting timestamps, and casting values.\n *\n * @param array<int, array<string, mixed>> $values\n * @return int\n * @static\n */\n public static function fillAndInsertOrIgnore($values)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->fillAndInsertOrIgnore($values);\n }\n\n /**\n * Insert a record into the database and get its ID after merging the model's default attributes, setting timestamps, and casting values.\n *\n * @param array<string, mixed> $values\n * @return int\n * @static\n */\n public static function fillAndInsertGetId($values)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->fillAndInsertGetId($values);\n }\n\n /**\n * Enrich the given values by merging in the model's default attributes, adding timestamps, and casting values.\n *\n * @param array<int, array<string, mixed>> $values\n * @return array<int, array<string, mixed>>\n * @static\n */\n public static function fillForInsert($values)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->fillForInsert($values);\n }\n\n /**\n * Create a collection of models from a raw query.\n *\n * @param string $query\n * @param array $bindings\n * @return \\Illuminate\\Database\\Eloquent\\Collection<int, TModel>\n * @static\n */\n public static function fromQuery($query, $bindings = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->fromQuery($query, $bindings);\n }\n\n /**\n * Find a model by its primary key.\n *\n * @param mixed $id\n * @param array|string $columns\n * @return ($id is (\\Illuminate\\Contracts\\Support\\Arrayable<array-key, mixed>|array<mixed>) ? \\Illuminate\\Database\\Eloquent\\Collection<int, TModel> : TModel|null)\n * @static\n */\n public static function find($id, $columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->find($id, $columns);\n }\n\n /**\n * Find a sole model by its primary key.\n *\n * @param mixed $id\n * @param array|string $columns\n * @return TModel\n * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException<TModel>\n * @throws \\Illuminate\\Database\\MultipleRecordsFoundException\n * @static\n */\n public static function findSole($id, $columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->findSole($id, $columns);\n }\n\n /**\n * Find multiple models by their primary keys.\n *\n * @param \\Illuminate\\Contracts\\Support\\Arrayable|array $ids\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Collection<int, TModel>\n * @static\n */\n public static function findMany($ids, $columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->findMany($ids, $columns);\n }\n\n /**\n * Find a model by its primary key or throw an exception.\n *\n * @param mixed $id\n * @param array|string $columns\n * @return ($id is (\\Illuminate\\Contracts\\Support\\Arrayable<array-key, mixed>|array<mixed>) ? \\Illuminate\\Database\\Eloquent\\Collection<int, TModel> : TModel)\n * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException<TModel>\n * @static\n */\n public static function findOrFail($id, $columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->findOrFail($id, $columns);\n }\n\n /**\n * Find a model by its primary key or return fresh model instance.\n *\n * @param mixed $id\n * @param array|string $columns\n * @return ($id is (\\Illuminate\\Contracts\\Support\\Arrayable<array-key, mixed>|array<mixed>) ? \\Illuminate\\Database\\Eloquent\\Collection<int, TModel> : TModel)\n * @static\n */\n public static function findOrNew($id, $columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->findOrNew($id, $columns);\n }\n\n /**\n * Find a model by its primary key or call a callback.\n *\n * @template TValue\n * @param mixed $id\n * @param (\\Closure(): TValue)|list<string>|string $columns\n * @param (\\Closure(): TValue)|null $callback\n * @return ( $id is (\\Illuminate\\Contracts\\Support\\Arrayable<array-key, mixed>|array<mixed>)\n * ? \\Illuminate\\Database\\Eloquent\\Collection<int, TModel>\n * : TModel|TValue\n * )\n * @static\n */\n public static function findOr($id, $columns = [], $callback = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->findOr($id, $columns, $callback);\n }\n\n /**\n * Get the first record matching the attributes or instantiate it.\n *\n * @param array $attributes\n * @param array $values\n * @return TModel\n * @static\n */\n public static function firstOrNew($attributes = [], $values = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->firstOrNew($attributes, $values);\n }\n\n /**\n * Get the first record matching the attributes. If the record is not found, create it.\n *\n * @param array $attributes\n * @param array $values\n * @return TModel\n * @static\n */\n public static function firstOrCreate($attributes = [], $values = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->firstOrCreate($attributes, $values);\n }\n\n /**\n * Attempt to create the record. If a unique constraint violation occurs, attempt to find the matching record.\n *\n * @param array $attributes\n * @param array $values\n * @return TModel\n * @static\n */\n public static function createOrFirst($attributes = [], $values = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->createOrFirst($attributes, $values);\n }\n\n /**\n * Create or update a record matching the attributes, and fill it with values.\n *\n * @param array $attributes\n * @param array $values\n * @return TModel\n * @static\n */\n public static function updateOrCreate($attributes, $values = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->updateOrCreate($attributes, $values);\n }\n\n /**\n * Create a record matching the attributes, or increment the existing record.\n *\n * @param array $attributes\n * @param string $column\n * @param int|float $default\n * @param int|float $step\n * @param array $extra\n * @return TModel\n * @static\n */\n public static function incrementOrCreate($attributes, $column = 'count', $default = 1, $step = 1, $extra = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->incrementOrCreate($attributes, $column, $default, $step, $extra);\n }\n\n /**\n * Execute the query and get the first result or throw an exception.\n *\n * @param array|string $columns\n * @return TModel\n * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException<TModel>\n * @static\n */\n public static function firstOrFail($columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->firstOrFail($columns);\n }\n\n /**\n * Execute the query and get the first result or call a callback.\n *\n * @template TValue\n * @param (\\Closure(): TValue)|list<string> $columns\n * @param (\\Closure(): TValue)|null $callback\n * @return TModel|TValue\n * @static\n */\n public static function firstOr($columns = [], $callback = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->firstOr($columns, $callback);\n }\n\n /**\n * Execute the query and get the first result if it's the sole matching record.\n *\n * @param array|string $columns\n * @return TModel\n * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException<TModel>\n * @throws \\Illuminate\\Database\\MultipleRecordsFoundException\n * @static\n */\n public static function sole($columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->sole($columns);\n }\n\n /**\n * Get a single column's value from the first result of a query.\n *\n * @param string|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @return mixed\n * @static\n */\n public static function value($column)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->value($column);\n }\n\n /**\n * Get a single column's value from the first result of a query if it's the sole matching record.\n *\n * @param string|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @return mixed\n * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException<TModel>\n * @throws \\Illuminate\\Database\\MultipleRecordsFoundException\n * @static\n */\n public static function soleValue($column)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->soleValue($column);\n }\n\n /**\n * Get a single column's value from the first result of the query or throw an exception.\n *\n * @param string|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @return mixed\n * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException<TModel>\n * @static\n */\n public static function valueOrFail($column)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->valueOrFail($column);\n }\n\n /**\n * Execute the query as a \"select\" statement.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Collection<int, TModel>\n * @static\n */\n public static function get($columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->get($columns);\n }\n\n /**\n * Get the hydrated models without eager loading.\n *\n * @param array|string $columns\n * @return array<int, TModel>\n * @static\n */\n public static function getModels($columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->getModels($columns);\n }\n\n /**\n * Eager load the relationships for the models.\n *\n * @param array<int, TModel> $models\n * @return array<int, TModel>\n * @static\n */\n public static function eagerLoadRelations($models)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->eagerLoadRelations($models);\n }\n\n /**\n * Register a closure to be invoked after the query is executed.\n *\n * @param \\Closure $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function afterQuery($callback)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->afterQuery($callback);\n }\n\n /**\n * Invoke the \"after query\" modification callbacks.\n *\n * @param mixed $result\n * @return mixed\n * @static\n */\n public static function applyAfterQueryCallbacks($result)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->applyAfterQueryCallbacks($result);\n }\n\n /**\n * Get a lazy collection for the given query.\n *\n * @return \\Illuminate\\Support\\LazyCollection<int, TModel>\n * @static\n */\n public static function cursor()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->cursor();\n }\n\n /**\n * Get a collection with the values of a given column.\n *\n * @param string|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param string|null $key\n * @return \\Illuminate\\Support\\Collection<array-key, mixed>\n * @static\n */\n public static function pluck($column, $key = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->pluck($column, $key);\n }\n\n /**\n * Paginate the given query.\n *\n * @param int|null|\\Closure $perPage\n * @param array|string $columns\n * @param string $pageName\n * @param int|null $page\n * @param \\Closure|int|null $total\n * @return \\Illuminate\\Pagination\\LengthAwarePaginator\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function paginate($perPage = null, $columns = [], $pageName = 'page', $page = null, $total = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->paginate($perPage, $columns, $pageName, $page, $total);\n }\n\n /**\n * Paginate the given query into a simple paginator.\n *\n * @param int|null $perPage\n * @param array|string $columns\n * @param string $pageName\n * @param int|null $page\n * @return \\Illuminate\\Contracts\\Pagination\\Paginator\n * @static\n */\n public static function simplePaginate($perPage = null, $columns = [], $pageName = 'page', $page = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->simplePaginate($perPage, $columns, $pageName, $page);\n }\n\n /**\n * Paginate the given query into a cursor paginator.\n *\n * @param int|null $perPage\n * @param array|string $columns\n * @param string $cursorName\n * @param \\Illuminate\\Pagination\\Cursor|string|null $cursor\n * @return \\Illuminate\\Contracts\\Pagination\\CursorPaginator\n * @static\n */\n public static function cursorPaginate($perPage = null, $columns = [], $cursorName = 'cursor', $cursor = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->cursorPaginate($perPage, $columns, $cursorName, $cursor);\n }\n\n /**\n * Save a new model and return the instance.\n *\n * @param array $attributes\n * @return TModel\n * @static\n */\n public static function create($attributes = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->create($attributes);\n }\n\n /**\n * Save a new model and return the instance without raising model events.\n *\n * @param array $attributes\n * @return TModel\n * @static\n */\n public static function createQuietly($attributes = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->createQuietly($attributes);\n }\n\n /**\n * Save a new model and return the instance. Allow mass-assignment.\n *\n * @param array $attributes\n * @return TModel\n * @static\n */\n public static function forceCreate($attributes)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->forceCreate($attributes);\n }\n\n /**\n * Save a new model instance with mass assignment without raising model events.\n *\n * @param array $attributes\n * @return TModel\n * @static\n */\n public static function forceCreateQuietly($attributes = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->forceCreateQuietly($attributes);\n }\n\n /**\n * Insert new records or update the existing ones.\n *\n * @param array $values\n * @param array|string $uniqueBy\n * @param array|null $update\n * @return int\n * @static\n */\n public static function upsert($values, $uniqueBy, $update = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->upsert($values, $uniqueBy, $update);\n }\n\n /**\n * Register a replacement for the default delete function.\n *\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function onDelete($callback)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n $instance->onDelete($callback);\n }\n\n /**\n * Call the given local model scopes.\n *\n * @param array|string $scopes\n * @return static|mixed\n * @static\n */\n public static function scopes($scopes)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->scopes($scopes);\n }\n\n /**\n * Apply the scopes to the Eloquent builder instance and return it.\n *\n * @return static\n * @static\n */\n public static function applyScopes()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->applyScopes();\n }\n\n /**\n * Prevent the specified relations from being eager loaded.\n *\n * @param mixed $relations\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function without($relations)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->without($relations);\n }\n\n /**\n * Set the relationships that should be eager loaded while removing any previously added eager loading specifications.\n *\n * @param array<array-key, array|(\\Closure(\\Illuminate\\Database\\Eloquent\\Relations\\Relation<*,*,*>): mixed)|string>|string $relations\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withOnly($relations)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withOnly($relations);\n }\n\n /**\n * Create a new instance of the model being queried.\n *\n * @param array $attributes\n * @return TModel\n * @static\n */\n public static function newModelInstance($attributes = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->newModelInstance($attributes);\n }\n\n /**\n * Specify attributes that should be added to any new models created by this builder.\n * \n * The given key / value pairs will also be added as where conditions to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|array|string $attributes\n * @param mixed $value\n * @param bool $asConditions\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withAttributes($attributes, $value = null, $asConditions = true)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withAttributes($attributes, $value, $asConditions);\n }\n\n /**\n * Apply query-time casts to the model instance.\n *\n * @param array $casts\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withCasts($casts)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withCasts($casts);\n }\n\n /**\n * Execute the given Closure within a transaction savepoint if needed.\n *\n * @template TModelValue\n * @param \\Closure(): TModelValue $scope\n * @return TModelValue\n * @static\n */\n public static function withSavepointIfNeeded($scope)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withSavepointIfNeeded($scope);\n }\n\n /**\n * Get the underlying query builder instance.\n *\n * @return \\Illuminate\\Database\\Query\\Builder\n * @static\n */\n public static function getQuery()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->getQuery();\n }\n\n /**\n * Set the underlying query builder instance.\n *\n * @param \\Illuminate\\Database\\Query\\Builder $query\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function setQuery($query)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->setQuery($query);\n }\n\n /**\n * Get a base query builder instance.\n *\n * @return \\Illuminate\\Database\\Query\\Builder\n * @static\n */\n public static function toBase()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->toBase();\n }\n\n /**\n * Get the relationships being eagerly loaded.\n *\n * @return array\n * @static\n */\n public static function getEagerLoads()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->getEagerLoads();\n }\n\n /**\n * Set the relationships being eagerly loaded.\n *\n * @param array $eagerLoad\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function setEagerLoads($eagerLoad)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->setEagerLoads($eagerLoad);\n }\n\n /**\n * Indicate that the given relationships should not be eagerly loaded.\n *\n * @param array $relations\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withoutEagerLoad($relations)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withoutEagerLoad($relations);\n }\n\n /**\n * Flush the relationships being eagerly loaded.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withoutEagerLoads()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withoutEagerLoads();\n }\n\n /**\n * Get the \"limit\" value from the query or null if it's not set.\n *\n * @return mixed\n * @static\n */\n public static function getLimit()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->getLimit();\n }\n\n /**\n * Get the \"offset\" value from the query or null if it's not set.\n *\n * @return mixed\n * @static\n */\n public static function getOffset()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->getOffset();\n }\n\n /**\n * Get the model instance being queried.\n *\n * @return TModel\n * @static\n */\n public static function getModel()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->getModel();\n }\n\n /**\n * Set a model instance for the model being queried.\n *\n * @template TModelNew of \\Illuminate\\Database\\Eloquent\\Model\n * @param TModelNew $model\n * @return static<TModelNew>\n * @static\n */\n public static function setModel($model)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->setModel($model);\n }\n\n /**\n * Get the given macro by name.\n *\n * @param string $name\n * @return \\Closure\n * @static\n */\n public static function getMacro($name)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->getMacro($name);\n }\n\n /**\n * Checks if a macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->hasMacro($name);\n }\n\n /**\n * Get the given global macro by name.\n *\n * @param string $name\n * @return \\Closure\n * @static\n */\n public static function getGlobalMacro($name)\n {\n return \\Illuminate\\Database\\Eloquent\\Builder::getGlobalMacro($name);\n }\n\n /**\n * Checks if a global macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasGlobalMacro($name)\n {\n return \\Illuminate\\Database\\Eloquent\\Builder::hasGlobalMacro($name);\n }\n\n /**\n * Clone the Eloquent query builder.\n *\n * @return static\n * @static\n */\n public static function clone()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->clone();\n }\n\n /**\n * Register a closure to be invoked on a clone.\n *\n * @param \\Closure $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function onClone($callback)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->onClone($callback);\n }\n\n /**\n * Chunk the results of the query.\n *\n * @param int $count\n * @param callable(\\Illuminate\\Support\\Collection<int, TValue>, int): mixed $callback\n * @return bool\n * @static\n */\n public static function chunk($count, $callback)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->chunk($count, $callback);\n }\n\n /**\n * Run a map over each item while chunking.\n *\n * @template TReturn\n * @param callable(TValue): TReturn $callback\n * @param int $count\n * @return \\Illuminate\\Support\\Collection<int, TReturn>\n * @static\n */\n public static function chunkMap($callback, $count = 1000)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->chunkMap($callback, $count);\n }\n\n /**\n * Execute a callback over each item while chunking.\n *\n * @param callable(TValue, int): mixed $callback\n * @param int $count\n * @return bool\n * @throws \\RuntimeException\n * @static\n */\n public static function each($callback, $count = 1000)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->each($callback, $count);\n }\n\n /**\n * Chunk the results of a query by comparing IDs.\n *\n * @param int $count\n * @param callable(\\Illuminate\\Support\\Collection<int, TValue>, int): mixed $callback\n * @param string|null $column\n * @param string|null $alias\n * @return bool\n * @static\n */\n public static function chunkById($count, $callback, $column = null, $alias = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->chunkById($count, $callback, $column, $alias);\n }\n\n /**\n * Chunk the results of a query by comparing IDs in descending order.\n *\n * @param int $count\n * @param callable(\\Illuminate\\Support\\Collection<int, TValue>, int): mixed $callback\n * @param string|null $column\n * @param string|null $alias\n * @return bool\n * @static\n */\n public static function chunkByIdDesc($count, $callback, $column = null, $alias = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->chunkByIdDesc($count, $callback, $column, $alias);\n }\n\n /**\n * Chunk the results of a query by comparing IDs in a given order.\n *\n * @param int $count\n * @param callable(\\Illuminate\\Support\\Collection<int, TValue>, int): mixed $callback\n * @param string|null $column\n * @param string|null $alias\n * @param bool $descending\n * @return bool\n * @throws \\RuntimeException\n * @static\n */\n public static function orderedChunkById($count, $callback, $column = null, $alias = null, $descending = false)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orderedChunkById($count, $callback, $column, $alias, $descending);\n }\n\n /**\n * Execute a callback over each item while chunking by ID.\n *\n * @param callable(TValue, int): mixed $callback\n * @param int $count\n * @param string|null $column\n * @param string|null $alias\n * @return bool\n * @static\n */\n public static function eachById($callback, $count = 1000, $column = null, $alias = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->eachById($callback, $count, $column, $alias);\n }\n\n /**\n * Query lazily, by chunks of the given size.\n *\n * @param int $chunkSize\n * @return \\Illuminate\\Support\\LazyCollection<int, TValue>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function lazy($chunkSize = 1000)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->lazy($chunkSize);\n }\n\n /**\n * Query lazily, by chunking the results of a query by comparing IDs.\n *\n * @param int $chunkSize\n * @param string|null $column\n * @param string|null $alias\n * @return \\Illuminate\\Support\\LazyCollection<int, TValue>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function lazyById($chunkSize = 1000, $column = null, $alias = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->lazyById($chunkSize, $column, $alias);\n }\n\n /**\n * Query lazily, by chunking the results of a query by comparing IDs in descending order.\n *\n * @param int $chunkSize\n * @param string|null $column\n * @param string|null $alias\n * @return \\Illuminate\\Support\\LazyCollection<int, TValue>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function lazyByIdDesc($chunkSize = 1000, $column = null, $alias = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->lazyByIdDesc($chunkSize, $column, $alias);\n }\n\n /**\n * Execute the query and get the first result.\n *\n * @param array|string $columns\n * @return TValue|null\n * @static\n */\n public static function first($columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->first($columns);\n }\n\n /**\n * Execute the query and get the first result if it's the sole matching record.\n *\n * @param array|string $columns\n * @return TValue\n * @throws \\Illuminate\\Database\\RecordsNotFoundException\n * @throws \\Illuminate\\Database\\MultipleRecordsFoundException\n * @static\n */\n public static function baseSole($columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->baseSole($columns);\n }\n\n /**\n * Pass the query to a given callback and then return it.\n *\n * @param callable($this): mixed $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function tap($callback)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->tap($callback);\n }\n\n /**\n * Pass the query to a given callback and return the result.\n *\n * @template TReturn\n * @param (callable($this): TReturn) $callback\n * @return (TReturn is null|void ? $this : TReturn)\n * @static\n */\n public static function pipe($callback)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->pipe($callback);\n }\n\n /**\n * Apply the callback if the given \"value\" is (or resolves to) truthy.\n *\n * @template TWhenParameter\n * @template TWhenReturnType\n * @param (\\Closure($this): TWhenParameter)|TWhenParameter|null $value\n * @param (callable($this, TWhenParameter): TWhenReturnType)|null $callback\n * @param (callable($this, TWhenParameter): TWhenReturnType)|null $default\n * @return $this|TWhenReturnType\n * @static\n */\n public static function when($value = null, $callback = null, $default = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->when($value, $callback, $default);\n }\n\n /**\n * Apply the callback if the given \"value\" is (or resolves to) falsy.\n *\n * @template TUnlessParameter\n * @template TUnlessReturnType\n * @param (\\Closure($this): TUnlessParameter)|TUnlessParameter|null $value\n * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $callback\n * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $default\n * @return $this|TUnlessReturnType\n * @static\n */\n public static function unless($value = null, $callback = null, $default = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->unless($value, $callback, $default);\n }\n\n /**\n * Add a relationship count / exists condition to the query.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<TRelatedModel, *, *>|string $relation\n * @param string $operator\n * @param int $count\n * @param string $boolean\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|null $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\RuntimeException\n * @static\n */\n public static function has($relation, $operator = '>=', $count = 1, $boolean = 'and', $callback = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->has($relation, $operator, $count, $boolean, $callback);\n }\n\n /**\n * Add a relationship count / exists condition to the query with an \"or\".\n *\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<*, *, *>|string $relation\n * @param string $operator\n * @param int $count\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orHas($relation, $operator = '>=', $count = 1)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orHas($relation, $operator, $count);\n }\n\n /**\n * Add a relationship count / exists condition to the query.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<TRelatedModel, *, *>|string $relation\n * @param string $boolean\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|null $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function doesntHave($relation, $boolean = 'and', $callback = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->doesntHave($relation, $boolean, $callback);\n }\n\n /**\n * Add a relationship count / exists condition to the query with an \"or\".\n *\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<*, *, *>|string $relation\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orDoesntHave($relation)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orDoesntHave($relation);\n }\n\n /**\n * Add a relationship count / exists condition to the query with where clauses.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<TRelatedModel, *, *>|string $relation\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|null $callback\n * @param string $operator\n * @param int $count\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereHas($relation, $callback = null, $operator = '>=', $count = 1)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereHas($relation, $callback, $operator, $count);\n }\n\n /**\n * Add a relationship count / exists condition to the query with where clauses.\n * \n * Also load the relationship with the same condition.\n *\n * @param string $relation\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<*>|\\Illuminate\\Database\\Eloquent\\Relations\\Relation<*, *, *>): mixed)|null $callback\n * @param string $operator\n * @param int $count\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withWhereHas($relation, $callback = null, $operator = '>=', $count = 1)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withWhereHas($relation, $callback, $operator, $count);\n }\n\n /**\n * Add a relationship count / exists condition to the query with where clauses and an \"or\".\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<TRelatedModel, *, *>|string $relation\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|null $callback\n * @param string $operator\n * @param int $count\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereHas($relation, $callback = null, $operator = '>=', $count = 1)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereHas($relation, $callback, $operator, $count);\n }\n\n /**\n * Add a relationship count / exists condition to the query with where clauses.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<TRelatedModel, *, *>|string $relation\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|null $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereDoesntHave($relation, $callback = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereDoesntHave($relation, $callback);\n }\n\n /**\n * Add a relationship count / exists condition to the query with where clauses and an \"or\".\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<TRelatedModel, *, *>|string $relation\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|null $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereDoesntHave($relation, $callback = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereDoesntHave($relation, $callback);\n }\n\n /**\n * Add a polymorphic relationship count / exists condition to the query.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<TRelatedModel, *>|string $relation\n * @param string|array<int, string> $types\n * @param string $operator\n * @param int $count\n * @param string $boolean\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>, string): mixed)|null $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function hasMorph($relation, $types, $operator = '>=', $count = 1, $boolean = 'and', $callback = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->hasMorph($relation, $types, $operator, $count, $boolean, $callback);\n }\n\n /**\n * Add a polymorphic relationship count / exists condition to the query with an \"or\".\n *\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<*, *>|string $relation\n * @param string|array<int, string> $types\n * @param string $operator\n * @param int $count\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orHasMorph($relation, $types, $operator = '>=', $count = 1)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orHasMorph($relation, $types, $operator, $count);\n }\n\n /**\n * Add a polymorphic relationship count / exists condition to the query.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<TRelatedModel, *>|string $relation\n * @param string|array<int, string> $types\n * @param string $boolean\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>, string): mixed)|null $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function doesntHaveMorph($relation, $types, $boolean = 'and', $callback = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->doesntHaveMorph($relation, $types, $boolean, $callback);\n }\n\n /**\n * Add a polymorphic relationship count / exists condition to the query with an \"or\".\n *\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<*, *>|string $relation\n * @param string|array<int, string> $types\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orDoesntHaveMorph($relation, $types)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orDoesntHaveMorph($relation, $types);\n }\n\n /**\n * Add a polymorphic relationship count / exists condition to the query with where clauses.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<TRelatedModel, *>|string $relation\n * @param string|array<int, string> $types\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>, string): mixed)|null $callback\n * @param string $operator\n * @param int $count\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereHasMorph($relation, $types, $callback = null, $operator = '>=', $count = 1)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereHasMorph($relation, $types, $callback, $operator, $count);\n }\n\n /**\n * Add a polymorphic relationship count / exists condition to the query with where clauses and an \"or\".\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<TRelatedModel, *>|string $relation\n * @param string|array<int, string> $types\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>, string): mixed)|null $callback\n * @param string $operator\n * @param int $count\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereHasMorph($relation, $types, $callback = null, $operator = '>=', $count = 1)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereHasMorph($relation, $types, $callback, $operator, $count);\n }\n\n /**\n * Add a polymorphic relationship count / exists condition to the query with where clauses.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<TRelatedModel, *>|string $relation\n * @param string|array<int, string> $types\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>, string): mixed)|null $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereDoesntHaveMorph($relation, $types, $callback = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereDoesntHaveMorph($relation, $types, $callback);\n }\n\n /**\n * Add a polymorphic relationship count / exists condition to the query with where clauses and an \"or\".\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<TRelatedModel, *>|string $relation\n * @param string|array<int, string> $types\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>, string): mixed)|null $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereDoesntHaveMorph($relation, $types, $callback = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereDoesntHaveMorph($relation, $types, $callback);\n }\n\n /**\n * Add a basic where clause to a relationship query.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<TRelatedModel, *, *>|string $relation\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereRelation($relation, $column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereRelation($relation, $column, $operator, $value);\n }\n\n /**\n * Add a basic where clause to a relationship query and eager-load the relationship with the same conditions.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<*, *, *>|string $relation\n * @param \\Closure|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withWhereRelation($relation, $column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withWhereRelation($relation, $column, $operator, $value);\n }\n\n /**\n * Add an \"or where\" clause to a relationship query.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<TRelatedModel, *, *>|string $relation\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereRelation($relation, $column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereRelation($relation, $column, $operator, $value);\n }\n\n /**\n * Add a basic count / exists condition to a relationship query.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<TRelatedModel, *, *>|string $relation\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereDoesntHaveRelation($relation, $column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereDoesntHaveRelation($relation, $column, $operator, $value);\n }\n\n /**\n * Add an \"or where\" clause to a relationship query.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<TRelatedModel, *, *>|string $relation\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereDoesntHaveRelation($relation, $column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereDoesntHaveRelation($relation, $column, $operator, $value);\n }\n\n /**\n * Add a polymorphic relationship condition to the query with a where clause.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<TRelatedModel, *>|string $relation\n * @param string|array<int, string> $types\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereMorphRelation($relation, $types, $column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereMorphRelation($relation, $types, $column, $operator, $value);\n }\n\n /**\n * Add a polymorphic relationship condition to the query with an \"or where\" clause.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<TRelatedModel, *>|string $relation\n * @param string|array<int, string> $types\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereMorphRelation($relation, $types, $column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereMorphRelation($relation, $types, $column, $operator, $value);\n }\n\n /**\n * Add a polymorphic relationship condition to the query with a doesn't have clause.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<TRelatedModel, *>|string $relation\n * @param string|array<int, string> $types\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereMorphDoesntHaveRelation($relation, $types, $column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereMorphDoesntHaveRelation($relation, $types, $column, $operator, $value);\n }\n\n /**\n * Add a polymorphic relationship condition to the query with an \"or doesn't have\" clause.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<TRelatedModel, *>|string $relation\n * @param string|array<int, string> $types\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereMorphDoesntHaveRelation($relation, $types, $column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereMorphDoesntHaveRelation($relation, $types, $column, $operator, $value);\n }\n\n /**\n * Add a morph-to relationship condition to the query.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<*, *>|string $relation\n * @param \\Illuminate\\Database\\Eloquent\\Model|iterable<int, \\Illuminate\\Database\\Eloquent\\Model>|string|null $model\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereMorphedTo($relation, $model, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereMorphedTo($relation, $model, $boolean);\n }\n\n /**\n * Add a not morph-to relationship condition to the query.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<*, *>|string $relation\n * @param \\Illuminate\\Database\\Eloquent\\Model|iterable<int, \\Illuminate\\Database\\Eloquent\\Model>|string $model\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNotMorphedTo($relation, $model, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereNotMorphedTo($relation, $model, $boolean);\n }\n\n /**\n * Add a morph-to relationship condition to the query with an \"or where\" clause.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<*, *>|string $relation\n * @param \\Illuminate\\Database\\Eloquent\\Model|iterable<int, \\Illuminate\\Database\\Eloquent\\Model>|string|null $model\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereMorphedTo($relation, $model)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereMorphedTo($relation, $model);\n }\n\n /**\n * Add a not morph-to relationship condition to the query with an \"or where\" clause.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<*, *>|string $relation\n * @param \\Illuminate\\Database\\Eloquent\\Model|iterable<int, \\Illuminate\\Database\\Eloquent\\Model>|string $model\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNotMorphedTo($relation, $model)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereNotMorphedTo($relation, $model);\n }\n\n /**\n * Add a \"belongs to\" relationship where clause to the query.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Model|\\Illuminate\\Database\\Eloquent\\Collection<int, \\Illuminate\\Database\\Eloquent\\Model> $related\n * @param string|null $relationshipName\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\Illuminate\\Database\\Eloquent\\RelationNotFoundException\n * @static\n */\n public static function whereBelongsTo($related, $relationshipName = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereBelongsTo($related, $relationshipName, $boolean);\n }\n\n /**\n * Add a \"BelongsTo\" relationship with an \"or where\" clause to the query.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Model $related\n * @param string|null $relationshipName\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\RuntimeException\n * @static\n */\n public static function orWhereBelongsTo($related, $relationshipName = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereBelongsTo($related, $relationshipName);\n }\n\n /**\n * Add a \"belongs to many\" relationship where clause to the query.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Model|\\Illuminate\\Database\\Eloquent\\Collection<int, \\Illuminate\\Database\\Eloquent\\Model> $related\n * @param string|null $relationshipName\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\Illuminate\\Database\\Eloquent\\RelationNotFoundException\n * @static\n */\n public static function whereAttachedTo($related, $relationshipName = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereAttachedTo($related, $relationshipName, $boolean);\n }\n\n /**\n * Add a \"belongs to many\" relationship with an \"or where\" clause to the query.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Model $related\n * @param string|null $relationshipName\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\RuntimeException\n * @static\n */\n public static function orWhereAttachedTo($related, $relationshipName = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereAttachedTo($related, $relationshipName);\n }\n\n /**\n * Add subselect queries to include an aggregate value for a relationship.\n *\n * @param mixed $relations\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param string|null $function\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withAggregate($relations, $column, $function = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withAggregate($relations, $column, $function);\n }\n\n /**\n * Add subselect queries to count the relations.\n *\n * @param mixed $relations\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withCount($relations)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withCount($relations);\n }\n\n /**\n * Add subselect queries to include the max of the relation's column.\n *\n * @param string|array $relation\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withMax($relation, $column)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withMax($relation, $column);\n }\n\n /**\n * Add subselect queries to include the min of the relation's column.\n *\n * @param string|array $relation\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withMin($relation, $column)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withMin($relation, $column);\n }\n\n /**\n * Add subselect queries to include the sum of the relation's column.\n *\n * @param string|array $relation\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withSum($relation, $column)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withSum($relation, $column);\n }\n\n /**\n * Add subselect queries to include the average of the relation's column.\n *\n * @param string|array $relation\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withAvg($relation, $column)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withAvg($relation, $column);\n }\n\n /**\n * Add subselect queries to include the existence of related models.\n *\n * @param string|array $relation\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withExists($relation)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withExists($relation);\n }\n\n /**\n * Merge the where constraints from another query to the current query.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Builder<*> $from\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function mergeConstraintsFrom($from)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->mergeConstraintsFrom($from);\n }\n\n /**\n * Set the columns to be selected.\n *\n * @param mixed $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function select($columns = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->select($columns);\n }\n\n /**\n * Add a subselect expression to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|string $query\n * @param string $as\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function selectSub($query, $as)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->selectSub($query, $as);\n }\n\n /**\n * Add a new \"raw\" select expression to the query.\n *\n * @param string $expression\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function selectRaw($expression, $bindings = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->selectRaw($expression, $bindings);\n }\n\n /**\n * Makes \"from\" fetch from a subquery.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|string $query\n * @param string $as\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function fromSub($query, $as)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->fromSub($query, $as);\n }\n\n /**\n * Add a raw from clause to the query.\n *\n * @param string $expression\n * @param mixed $bindings\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function fromRaw($expression, $bindings = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->fromRaw($expression, $bindings);\n }\n\n /**\n * Add a new select column to the query.\n *\n * @param mixed $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function addSelect($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->addSelect($column);\n }\n\n /**\n * Force the query to only return distinct results.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function distinct()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->distinct();\n }\n\n /**\n * Set the table which the query is targeting.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $table\n * @param string|null $as\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function from($table, $as = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->from($table, $as);\n }\n\n /**\n * Add an index hint to suggest a query index.\n *\n * @param string $index\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function useIndex($index)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->useIndex($index);\n }\n\n /**\n * Add an index hint to force a query index.\n *\n * @param string $index\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function forceIndex($index)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->forceIndex($index);\n }\n\n /**\n * Add an index hint to ignore a query index.\n *\n * @param string $index\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function ignoreIndex($index)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->ignoreIndex($index);\n }\n\n /**\n * Add a join clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $table\n * @param \\Closure|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $first\n * @param string|null $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $second\n * @param string $type\n * @param bool $where\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function join($table, $first, $operator = null, $second = null, $type = 'inner', $where = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->join($table, $first, $operator, $second, $type, $where);\n }\n\n /**\n * Add a \"join where\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $table\n * @param \\Closure|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $first\n * @param string $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $second\n * @param string $type\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function joinWhere($table, $first, $operator, $second, $type = 'inner')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->joinWhere($table, $first, $operator, $second, $type);\n }\n\n /**\n * Add a subquery join clause to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|string $query\n * @param string $as\n * @param \\Closure|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $first\n * @param string|null $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $second\n * @param string $type\n * @param bool $where\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function joinSub($query, $as, $first, $operator = null, $second = null, $type = 'inner', $where = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->joinSub($query, $as, $first, $operator, $second, $type, $where);\n }\n\n /**\n * Add a lateral join clause to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|string $query\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function joinLateral($query, $as, $type = 'inner')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->joinLateral($query, $as, $type);\n }\n\n /**\n * Add a lateral left join to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|string $query\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function leftJoinLateral($query, $as)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->leftJoinLateral($query, $as);\n }\n\n /**\n * Add a left join to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $table\n * @param \\Closure|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $first\n * @param string|null $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $second\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function leftJoin($table, $first, $operator = null, $second = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->leftJoin($table, $first, $operator, $second);\n }\n\n /**\n * Add a \"join where\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $table\n * @param \\Closure|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $first\n * @param string $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $second\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function leftJoinWhere($table, $first, $operator, $second)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->leftJoinWhere($table, $first, $operator, $second);\n }\n\n /**\n * Add a subquery left join to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|string $query\n * @param string $as\n * @param \\Closure|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $first\n * @param string|null $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $second\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function leftJoinSub($query, $as, $first, $operator = null, $second = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->leftJoinSub($query, $as, $first, $operator, $second);\n }\n\n /**\n * Add a right join to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $table\n * @param \\Closure|string $first\n * @param string|null $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $second\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function rightJoin($table, $first, $operator = null, $second = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->rightJoin($table, $first, $operator, $second);\n }\n\n /**\n * Add a \"right join where\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $table\n * @param \\Closure|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $first\n * @param string $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $second\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function rightJoinWhere($table, $first, $operator, $second)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->rightJoinWhere($table, $first, $operator, $second);\n }\n\n /**\n * Add a subquery right join to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|string $query\n * @param string $as\n * @param \\Closure|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $first\n * @param string|null $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $second\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function rightJoinSub($query, $as, $first, $operator = null, $second = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->rightJoinSub($query, $as, $first, $operator, $second);\n }\n\n /**\n * Add a \"cross join\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $table\n * @param \\Closure|\\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $first\n * @param string|null $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $second\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function crossJoin($table, $first = null, $operator = null, $second = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->crossJoin($table, $first, $operator, $second);\n }\n\n /**\n * Add a subquery cross join to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|string $query\n * @param string $as\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function crossJoinSub($query, $as)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->crossJoinSub($query, $as);\n }\n\n /**\n * Merge an array of where clauses and bindings.\n *\n * @param array $wheres\n * @param array $bindings\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function mergeWheres($wheres, $bindings)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->mergeWheres($wheres, $bindings);\n }\n\n /**\n * Prepare the value and operator for a where clause.\n *\n * @param string $value\n * @param string $operator\n * @param bool $useDefault\n * @return array\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function prepareValueAndOperator($value, $operator, $useDefault = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->prepareValueAndOperator($value, $operator, $useDefault);\n }\n\n /**\n * Add a \"where\" clause comparing two columns to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string|array $first\n * @param string|null $operator\n * @param string|null $second\n * @param string|null $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereColumn($first, $operator = null, $second = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereColumn($first, $operator, $second, $boolean);\n }\n\n /**\n * Add an \"or where\" clause comparing two columns to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string|array $first\n * @param string|null $operator\n * @param string|null $second\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereColumn($first, $operator = null, $second = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereColumn($first, $operator, $second);\n }\n\n /**\n * Add a raw where clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $sql\n * @param mixed $bindings\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereRaw($sql, $bindings = [], $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereRaw($sql, $bindings, $boolean);\n }\n\n /**\n * Add a raw or where clause to the query.\n *\n * @param string $sql\n * @param mixed $bindings\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereRaw($sql, $bindings = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereRaw($sql, $bindings);\n }\n\n /**\n * Add a \"where like\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param string $value\n * @param bool $caseSensitive\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereLike($column, $value, $caseSensitive = false, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereLike($column, $value, $caseSensitive, $boolean, $not);\n }\n\n /**\n * Add an \"or where like\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param string $value\n * @param bool $caseSensitive\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereLike($column, $value, $caseSensitive = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereLike($column, $value, $caseSensitive);\n }\n\n /**\n * Add a \"where not like\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param string $value\n * @param bool $caseSensitive\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNotLike($column, $value, $caseSensitive = false, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNotLike($column, $value, $caseSensitive, $boolean);\n }\n\n /**\n * Add an \"or where not like\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param string $value\n * @param bool $caseSensitive\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNotLike($column, $value, $caseSensitive = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereNotLike($column, $value, $caseSensitive);\n }\n\n /**\n * Add a \"where in\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param mixed $values\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereIn($column, $values, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereIn($column, $values, $boolean, $not);\n }\n\n /**\n * Add an \"or where in\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param mixed $values\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereIn($column, $values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereIn($column, $values);\n }\n\n /**\n * Add a \"where not in\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param mixed $values\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNotIn($column, $values, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNotIn($column, $values, $boolean);\n }\n\n /**\n * Add an \"or where not in\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param mixed $values\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNotIn($column, $values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereNotIn($column, $values);\n }\n\n /**\n * Add a \"where in raw\" clause for integer values to the query.\n *\n * @param string $column\n * @param \\Illuminate\\Contracts\\Support\\Arrayable|array $values\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereIntegerInRaw($column, $values, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereIntegerInRaw($column, $values, $boolean, $not);\n }\n\n /**\n * Add an \"or where in raw\" clause for integer values to the query.\n *\n * @param string $column\n * @param \\Illuminate\\Contracts\\Support\\Arrayable|array $values\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereIntegerInRaw($column, $values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereIntegerInRaw($column, $values);\n }\n\n /**\n * Add a \"where not in raw\" clause for integer values to the query.\n *\n * @param string $column\n * @param \\Illuminate\\Contracts\\Support\\Arrayable|array $values\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereIntegerNotInRaw($column, $values, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereIntegerNotInRaw($column, $values, $boolean);\n }\n\n /**\n * Add an \"or where not in raw\" clause for integer values to the query.\n *\n * @param string $column\n * @param \\Illuminate\\Contracts\\Support\\Arrayable|array $values\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereIntegerNotInRaw($column, $values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereIntegerNotInRaw($column, $values);\n }\n\n /**\n * Add a \"where null\" clause to the query.\n *\n * @param string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $columns\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNull($columns, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNull($columns, $boolean, $not);\n }\n\n /**\n * Add an \"or where null\" clause to the query.\n *\n * @param string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNull($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereNull($column);\n }\n\n /**\n * Add a \"where not null\" clause to the query.\n *\n * @param string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $columns\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNotNull($columns, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNotNull($columns, $boolean);\n }\n\n /**\n * Add a where between statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereBetween($column, $values, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereBetween($column, $values, $boolean, $not);\n }\n\n /**\n * Add a where between statement using columns to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereBetweenColumns($column, $values, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereBetweenColumns($column, $values, $boolean, $not);\n }\n\n /**\n * Add an or where between statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereBetween($column, $values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereBetween($column, $values);\n }\n\n /**\n * Add an or where between statement using columns to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereBetweenColumns($column, $values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereBetweenColumns($column, $values);\n }\n\n /**\n * Add a where not between statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNotBetween($column, $values, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNotBetween($column, $values, $boolean);\n }\n\n /**\n * Add a where not between statement using columns to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNotBetweenColumns($column, $values, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNotBetweenColumns($column, $values, $boolean);\n }\n\n /**\n * Add an or where not between statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNotBetween($column, $values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereNotBetween($column, $values);\n }\n\n /**\n * Add an or where not between statement using columns to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNotBetweenColumns($column, $values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereNotBetweenColumns($column, $values);\n }\n\n /**\n * Add a where between columns statement using a value to the query.\n *\n * @param mixed $value\n * @param array{\\Illuminate\\Contracts\\Database\\Query\\Expression|string, \\Illuminate\\Contracts\\Database\\Query\\Expression|string} $columns\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereValueBetween($value, $columns, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereValueBetween($value, $columns, $boolean, $not);\n }\n\n /**\n * Add an or where between columns statement using a value to the query.\n *\n * @param mixed $value\n * @param array{\\Illuminate\\Contracts\\Database\\Query\\Expression|string, \\Illuminate\\Contracts\\Database\\Query\\Expression|string} $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereValueBetween($value, $columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereValueBetween($value, $columns);\n }\n\n /**\n * Add a where not between columns statement using a value to the query.\n *\n * @param mixed $value\n * @param array{\\Illuminate\\Contracts\\Database\\Query\\Expression|string, \\Illuminate\\Contracts\\Database\\Query\\Expression|string} $columns\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereValueNotBetween($value, $columns, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereValueNotBetween($value, $columns, $boolean);\n }\n\n /**\n * Add an or where not between columns statement using a value to the query.\n *\n * @param mixed $value\n * @param array{\\Illuminate\\Contracts\\Database\\Query\\Expression|string, \\Illuminate\\Contracts\\Database\\Query\\Expression|string} $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereValueNotBetween($value, $columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereValueNotBetween($value, $columns);\n }\n\n /**\n * Add an \"or where not null\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNotNull($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereNotNull($column);\n }\n\n /**\n * Add a \"where date\" statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param \\DateTimeInterface|string|null $operator\n * @param \\DateTimeInterface|string|null $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereDate($column, $operator, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereDate($column, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where date\" statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param \\DateTimeInterface|string|null $operator\n * @param \\DateTimeInterface|string|null $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereDate($column, $operator, $value = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereDate($column, $operator, $value);\n }\n\n /**\n * Add a \"where time\" statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param \\DateTimeInterface|string|null $operator\n * @param \\DateTimeInterface|string|null $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereTime($column, $operator, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereTime($column, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where time\" statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param \\DateTimeInterface|string|null $operator\n * @param \\DateTimeInterface|string|null $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereTime($column, $operator, $value = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereTime($column, $operator, $value);\n }\n\n /**\n * Add a \"where day\" statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param \\DateTimeInterface|string|int|null $operator\n * @param \\DateTimeInterface|string|int|null $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereDay($column, $operator, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereDay($column, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where day\" statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param \\DateTimeInterface|string|int|null $operator\n * @param \\DateTimeInterface|string|int|null $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereDay($column, $operator, $value = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereDay($column, $operator, $value);\n }\n\n /**\n * Add a \"where month\" statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param \\DateTimeInterface|string|int|null $operator\n * @param \\DateTimeInterface|string|int|null $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereMonth($column, $operator, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereMonth($column, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where month\" statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param \\DateTimeInterface|string|int|null $operator\n * @param \\DateTimeInterface|string|int|null $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereMonth($column, $operator, $value = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereMonth($column, $operator, $value);\n }\n\n /**\n * Add a \"where year\" statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param \\DateTimeInterface|string|int|null $operator\n * @param \\DateTimeInterface|string|int|null $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereYear($column, $operator, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereYear($column, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where year\" statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param \\DateTimeInterface|string|int|null $operator\n * @param \\DateTimeInterface|string|int|null $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereYear($column, $operator, $value = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereYear($column, $operator, $value);\n }\n\n /**\n * Add a nested where statement to the query.\n *\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNested($callback, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNested($callback, $boolean);\n }\n\n /**\n * Create a new query instance for nested where condition.\n *\n * @return \\Illuminate\\Database\\Query\\Builder\n * @static\n */\n public static function forNestedWhere()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->forNestedWhere();\n }\n\n /**\n * Add another query builder as a nested where to the query builder.\n *\n * @param \\Illuminate\\Database\\Query\\Builder $query\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function addNestedWhereQuery($query, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->addNestedWhereQuery($query, $boolean);\n }\n\n /**\n * Add an exists clause to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*> $callback\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereExists($callback, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereExists($callback, $boolean, $not);\n }\n\n /**\n * Add an or exists clause to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*> $callback\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereExists($callback, $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereExists($callback, $not);\n }\n\n /**\n * Add a where not exists clause to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*> $callback\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNotExists($callback, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNotExists($callback, $boolean);\n }\n\n /**\n * Add a where not exists clause to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*> $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNotExists($callback)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereNotExists($callback);\n }\n\n /**\n * Add an exists clause to the query.\n *\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function addWhereExistsQuery($query, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->addWhereExistsQuery($query, $boolean, $not);\n }\n\n /**\n * Adds a where condition using row values.\n *\n * @param array $columns\n * @param string $operator\n * @param array $values\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function whereRowValues($columns, $operator, $values, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereRowValues($columns, $operator, $values, $boolean);\n }\n\n /**\n * Adds an or where condition using row values.\n *\n * @param array $columns\n * @param string $operator\n * @param array $values\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereRowValues($columns, $operator, $values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereRowValues($columns, $operator, $values);\n }\n\n /**\n * Add a \"where JSON contains\" clause to the query.\n *\n * @param string $column\n * @param mixed $value\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereJsonContains($column, $value, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereJsonContains($column, $value, $boolean, $not);\n }\n\n /**\n * Add an \"or where JSON contains\" clause to the query.\n *\n * @param string $column\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereJsonContains($column, $value)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereJsonContains($column, $value);\n }\n\n /**\n * Add a \"where JSON not contains\" clause to the query.\n *\n * @param string $column\n * @param mixed $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereJsonDoesntContain($column, $value, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereJsonDoesntContain($column, $value, $boolean);\n }\n\n /**\n * Add an \"or where JSON not contains\" clause to the query.\n *\n * @param string $column\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereJsonDoesntContain($column, $value)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereJsonDoesntContain($column, $value);\n }\n\n /**\n * Add a \"where JSON overlaps\" clause to the query.\n *\n * @param string $column\n * @param mixed $value\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereJsonOverlaps($column, $value, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereJsonOverlaps($column, $value, $boolean, $not);\n }\n\n /**\n * Add an \"or where JSON overlaps\" clause to the query.\n *\n * @param string $column\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereJsonOverlaps($column, $value)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereJsonOverlaps($column, $value);\n }\n\n /**\n * Add a \"where JSON not overlap\" clause to the query.\n *\n * @param string $column\n * @param mixed $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereJsonDoesntOverlap($column, $value, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereJsonDoesntOverlap($column, $value, $boolean);\n }\n\n /**\n * Add an \"or where JSON not overlap\" clause to the query.\n *\n * @param string $column\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereJsonDoesntOverlap($column, $value)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereJsonDoesntOverlap($column, $value);\n }\n\n /**\n * Add a clause that determines if a JSON path exists to the query.\n *\n * @param string $column\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereJsonContainsKey($column, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereJsonContainsKey($column, $boolean, $not);\n }\n\n /**\n * Add an \"or\" clause that determines if a JSON path exists to the query.\n *\n * @param string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereJsonContainsKey($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereJsonContainsKey($column);\n }\n\n /**\n * Add a clause that determines if a JSON path does not exist to the query.\n *\n * @param string $column\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereJsonDoesntContainKey($column, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereJsonDoesntContainKey($column, $boolean);\n }\n\n /**\n * Add an \"or\" clause that determines if a JSON path does not exist to the query.\n *\n * @param string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereJsonDoesntContainKey($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereJsonDoesntContainKey($column);\n }\n\n /**\n * Add a \"where JSON length\" clause to the query.\n *\n * @param string $column\n * @param mixed $operator\n * @param mixed $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereJsonLength($column, $operator, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereJsonLength($column, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where JSON length\" clause to the query.\n *\n * @param string $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereJsonLength($column, $operator, $value = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereJsonLength($column, $operator, $value);\n }\n\n /**\n * Handles dynamic \"where\" clauses to the query.\n *\n * @param string $method\n * @param array $parameters\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function dynamicWhere($method, $parameters)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->dynamicWhere($method, $parameters);\n }\n\n /**\n * Add a \"where fulltext\" clause to the query.\n *\n * @param string|string[] $columns\n * @param string $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereFullText($columns, $value, $options = [], $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereFullText($columns, $value, $options, $boolean);\n }\n\n /**\n * Add a \"or where fulltext\" clause to the query.\n *\n * @param string|string[] $columns\n * @param string $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereFullText($columns, $value, $options = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereFullText($columns, $value, $options);\n }\n\n /**\n * Add a \"where\" clause to the query for multiple columns with \"and\" conditions between them.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression[]|\\Closure[]|string[] $columns\n * @param mixed $operator\n * @param mixed $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereAll($columns, $operator = null, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereAll($columns, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where\" clause to the query for multiple columns with \"and\" conditions between them.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression[]|\\Closure[]|string[] $columns\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereAll($columns, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereAll($columns, $operator, $value);\n }\n\n /**\n * Add a \"where\" clause to the query for multiple columns with \"or\" conditions between them.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression[]|\\Closure[]|string[] $columns\n * @param mixed $operator\n * @param mixed $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereAny($columns, $operator = null, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereAny($columns, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where\" clause to the query for multiple columns with \"or\" conditions between them.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression[]|\\Closure[]|string[] $columns\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereAny($columns, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereAny($columns, $operator, $value);\n }\n\n /**\n * Add a \"where not\" clause to the query for multiple columns where none of the conditions should be true.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression[]|\\Closure[]|string[] $columns\n * @param mixed $operator\n * @param mixed $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNone($columns, $operator = null, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNone($columns, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where not\" clause to the query for multiple columns where none of the conditions should be true.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression[]|\\Closure[]|string[] $columns\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNone($columns, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereNone($columns, $operator, $value);\n }\n\n /**\n * Add a \"group by\" clause to the query.\n *\n * @param array|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $groups\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function groupBy(...$groups)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->groupBy(...$groups);\n }\n\n /**\n * Add a raw groupBy clause to the query.\n *\n * @param string $sql\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function groupByRaw($sql, $bindings = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->groupByRaw($sql, $bindings);\n }\n\n /**\n * Add a \"having\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|\\Closure|string $column\n * @param \\DateTimeInterface|string|int|float|null $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|\\DateTimeInterface|string|int|float|null $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function having($column, $operator = null, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->having($column, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or having\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|\\Closure|string $column\n * @param \\DateTimeInterface|string|int|float|null $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|\\DateTimeInterface|string|int|float|null $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orHaving($column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orHaving($column, $operator, $value);\n }\n\n /**\n * Add a nested having statement to the query.\n *\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function havingNested($callback, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->havingNested($callback, $boolean);\n }\n\n /**\n * Add another query builder as a nested having to the query builder.\n *\n * @param \\Illuminate\\Database\\Query\\Builder $query\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function addNestedHavingQuery($query, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->addNestedHavingQuery($query, $boolean);\n }\n\n /**\n * Add a \"having null\" clause to the query.\n *\n * @param array|string $columns\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function havingNull($columns, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->havingNull($columns, $boolean, $not);\n }\n\n /**\n * Add an \"or having null\" clause to the query.\n *\n * @param string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orHavingNull($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orHavingNull($column);\n }\n\n /**\n * Add a \"having not null\" clause to the query.\n *\n * @param array|string $columns\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function havingNotNull($columns, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->havingNotNull($columns, $boolean);\n }\n\n /**\n * Add an \"or having not null\" clause to the query.\n *\n * @param string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orHavingNotNull($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orHavingNotNull($column);\n }\n\n /**\n * Add a \"having between \" clause to the query.\n *\n * @param string $column\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function havingBetween($column, $values, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->havingBetween($column, $values, $boolean, $not);\n }\n\n /**\n * Add a raw having clause to the query.\n *\n * @param string $sql\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function havingRaw($sql, $bindings = [], $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->havingRaw($sql, $bindings, $boolean);\n }\n\n /**\n * Add a raw or having clause to the query.\n *\n * @param string $sql\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orHavingRaw($sql, $bindings = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orHavingRaw($sql, $bindings);\n }\n\n /**\n * Add an \"order by\" clause to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param string $direction\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function orderBy($column, $direction = 'asc')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orderBy($column, $direction);\n }\n\n /**\n * Add a descending \"order by\" clause to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orderByDesc($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orderByDesc($column);\n }\n\n /**\n * Put the query's results in random order.\n *\n * @param string|int $seed\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function inRandomOrder($seed = '')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->inRandomOrder($seed);\n }\n\n /**\n * Add a raw \"order by\" clause to the query.\n *\n * @param string $sql\n * @param array $bindings\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orderByRaw($sql, $bindings = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orderByRaw($sql, $bindings);\n }\n\n /**\n * Alias to set the \"offset\" value of the query.\n *\n * @param int $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function skip($value)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->skip($value);\n }\n\n /**\n * Set the \"offset\" value of the query.\n *\n * @param int $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function offset($value)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->offset($value);\n }\n\n /**\n * Alias to set the \"limit\" value of the query.\n *\n * @param int $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function take($value)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->take($value);\n }\n\n /**\n * Set the \"limit\" value of the query.\n *\n * @param int $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function limit($value)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->limit($value);\n }\n\n /**\n * Add a \"group limit\" clause to the query.\n *\n * @param int $value\n * @param string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function groupLimit($value, $column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->groupLimit($value, $column);\n }\n\n /**\n * Set the limit and offset for a given page.\n *\n * @param int $page\n * @param int $perPage\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function forPage($page, $perPage = 15)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->forPage($page, $perPage);\n }\n\n /**\n * Constrain the query to the previous \"page\" of results before a given ID.\n *\n * @param int $perPage\n * @param int|null $lastId\n * @param string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function forPageBeforeId($perPage = 15, $lastId = 0, $column = 'id')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->forPageBeforeId($perPage, $lastId, $column);\n }\n\n /**\n * Constrain the query to the next \"page\" of results after a given ID.\n *\n * @param int $perPage\n * @param int|null $lastId\n * @param string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function forPageAfterId($perPage = 15, $lastId = 0, $column = 'id')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->forPageAfterId($perPage, $lastId, $column);\n }\n\n /**\n * Remove all existing orders and optionally add a new order.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $column\n * @param string $direction\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function reorder($column = null, $direction = 'asc')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->reorder($column, $direction);\n }\n\n /**\n * Add descending \"reorder\" clause to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function reorderDesc($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->reorderDesc($column);\n }\n\n /**\n * Add a union statement to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*> $query\n * @param bool $all\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function union($query, $all = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->union($query, $all);\n }\n\n /**\n * Add a union all statement to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*> $query\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function unionAll($query)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->unionAll($query);\n }\n\n /**\n * Lock the selected rows in the table.\n *\n * @param string|bool $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function lock($value = true)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->lock($value);\n }\n\n /**\n * Lock the selected rows in the table for updating.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function lockForUpdate()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->lockForUpdate();\n }\n\n /**\n * Share lock the selected rows in the table.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function sharedLock()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->sharedLock();\n }\n\n /**\n * Register a closure to be invoked before the query is executed.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function beforeQuery($callback)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->beforeQuery($callback);\n }\n\n /**\n * Invoke the \"before query\" modification callbacks.\n *\n * @return void\n * @static\n */\n public static function applyBeforeQueryCallbacks()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n $instance->applyBeforeQueryCallbacks();\n }\n\n /**\n * Get the SQL representation of the query.\n *\n * @return string\n * @static\n */\n public static function toSql()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->toSql();\n }\n\n /**\n * Get the raw SQL representation of the query with embedded bindings.\n *\n * @return string\n * @static\n */\n public static function toRawSql()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->toRawSql();\n }\n\n /**\n * Get a single expression value from the first result of a query.\n *\n * @return mixed\n * @static\n */\n public static function rawValue($expression, $bindings = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->rawValue($expression, $bindings);\n }\n\n /**\n * Get the count of the total records for the paginator.\n *\n * @param array<string|\\Illuminate\\Contracts\\Database\\Query\\Expression> $columns\n * @return int<0, max>\n * @static\n */\n public static function getCountForPagination($columns = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->getCountForPagination($columns);\n }\n\n /**\n * Concatenate values of a given column as a string.\n *\n * @param string $column\n * @param string $glue\n * @return string\n * @static\n */\n public static function implode($column, $glue = '')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->implode($column, $glue);\n }\n\n /**\n * Determine if any rows exist for the current query.\n *\n * @return bool\n * @static\n */\n public static function exists()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->exists();\n }\n\n /**\n * Determine if no rows exist for the current query.\n *\n * @return bool\n * @static\n */\n public static function doesntExist()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->doesntExist();\n }\n\n /**\n * Execute the given callback if no rows exist for the current query.\n *\n * @return mixed\n * @static\n */\n public static function existsOr($callback)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->existsOr($callback);\n }\n\n /**\n * Execute the given callback if rows exist for the current query.\n *\n * @return mixed\n * @static\n */\n public static function doesntExistOr($callback)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->doesntExistOr($callback);\n }\n\n /**\n * Retrieve the \"count\" result of the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $columns\n * @return int<0, max>\n * @static\n */\n public static function count($columns = '*')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->count($columns);\n }\n\n /**\n * Retrieve the minimum value of a given column.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return mixed\n * @static\n */\n public static function min($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->min($column);\n }\n\n /**\n * Retrieve the maximum value of a given column.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return mixed\n * @static\n */\n public static function max($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->max($column);\n }\n\n /**\n * Retrieve the sum of the values of a given column.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return mixed\n * @static\n */\n public static function sum($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->sum($column);\n }\n\n /**\n * Retrieve the average of the values of a given column.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return mixed\n * @static\n */\n public static function avg($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->avg($column);\n }\n\n /**\n * Alias for the \"avg\" method.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return mixed\n * @static\n */\n public static function average($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->average($column);\n }\n\n /**\n * Execute an aggregate function on the database.\n *\n * @param string $function\n * @param array $columns\n * @return mixed\n * @static\n */\n public static function aggregate($function, $columns = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->aggregate($function, $columns);\n }\n\n /**\n * Execute a numeric aggregate function on the database.\n *\n * @param string $function\n * @param array $columns\n * @return float|int\n * @static\n */\n public static function numericAggregate($function, $columns = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->numericAggregate($function, $columns);\n }\n\n /**\n * Insert new records into the database.\n *\n * @return bool\n * @static\n */\n public static function insert($values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->insert($values);\n }\n\n /**\n * Insert new records into the database while ignoring errors.\n *\n * @return int<0, max>\n * @static\n */\n public static function insertOrIgnore($values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->insertOrIgnore($values);\n }\n\n /**\n * Insert a new record and get the value of the primary key.\n *\n * @param string|null $sequence\n * @return int\n * @static\n */\n public static function insertGetId($values, $sequence = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->insertGetId($values, $sequence);\n }\n\n /**\n * Insert new records into the table using a subquery.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|string $query\n * @return int\n * @static\n */\n public static function insertUsing($columns, $query)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->insertUsing($columns, $query);\n }\n\n /**\n * Insert new records into the table using a subquery while ignoring errors.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|string $query\n * @return int\n * @static\n */\n public static function insertOrIgnoreUsing($columns, $query)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->insertOrIgnoreUsing($columns, $query);\n }\n\n /**\n * Update records in a PostgreSQL database using the update from syntax.\n *\n * @return int\n * @static\n */\n public static function updateFrom($values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->updateFrom($values);\n }\n\n /**\n * Insert or update a record matching the attributes, and fill it with values.\n *\n * @return bool\n * @static\n */\n public static function updateOrInsert($attributes, $values = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->updateOrInsert($attributes, $values);\n }\n\n /**\n * Increment the given column's values by the given amounts.\n *\n * @param array<string, float|int|numeric-string> $columns\n * @param array<string, mixed> $extra\n * @return int<0, max>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function incrementEach($columns, $extra = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->incrementEach($columns, $extra);\n }\n\n /**\n * Decrement the given column's values by the given amounts.\n *\n * @param array<string, float|int|numeric-string> $columns\n * @param array<string, mixed> $extra\n * @return int<0, max>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function decrementEach($columns, $extra = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->decrementEach($columns, $extra);\n }\n\n /**\n * Run a truncate statement on the table.\n *\n * @return void\n * @static\n */\n public static function truncate()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n $instance->truncate();\n }\n\n /**\n * Get all of the query builder's columns in a text-only array with all expressions evaluated.\n *\n * @return list<string>\n * @static\n */\n public static function getColumns()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->getColumns();\n }\n\n /**\n * Create a raw database expression.\n *\n * @param mixed $value\n * @return \\Illuminate\\Contracts\\Database\\Query\\Expression\n * @static\n */\n public static function raw($value)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->raw($value);\n }\n\n /**\n * Get the current query value bindings in a flattened array.\n *\n * @return list<mixed>\n * @static\n */\n public static function getBindings()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->getBindings();\n }\n\n /**\n * Get the raw array of bindings.\n *\n * @return \\Illuminate\\Database\\Query\\array{ select: list<mixed>,\n * from: list<mixed>,\n * join: list<mixed>,\n * where: list<mixed>,\n * groupBy: list<mixed>,\n * having: list<mixed>,\n * order: list<mixed>,\n * union: list<mixed>,\n * unionOrder: list<mixed>,\n * }\n * @static\n */\n public static function getRawBindings()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->getRawBindings();\n }\n\n /**\n * Set the bindings on the query builder.\n *\n * @param list<mixed> $bindings\n * @param \"select\"|\"from\"|\"join\"|\"where\"|\"groupBy\"|\"having\"|\"order\"|\"union\"|\"unionOrder\" $type\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function setBindings($bindings, $type = 'where')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->setBindings($bindings, $type);\n }\n\n /**\n * Add a binding to the query.\n *\n * @param mixed $value\n * @param \"select\"|\"from\"|\"join\"|\"where\"|\"groupBy\"|\"having\"|\"order\"|\"union\"|\"unionOrder\" $type\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function addBinding($value, $type = 'where')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->addBinding($value, $type);\n }\n\n /**\n * Cast the given binding value.\n *\n * @param mixed $value\n * @return mixed\n * @static\n */\n public static function castBinding($value)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->castBinding($value);\n }\n\n /**\n * Merge an array of bindings into our bindings.\n *\n * @param self $query\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function mergeBindings($query)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->mergeBindings($query);\n }\n\n /**\n * Remove all of the expressions from a list of bindings.\n *\n * @param array<mixed> $bindings\n * @return list<mixed>\n * @static\n */\n public static function cleanBindings($bindings)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->cleanBindings($bindings);\n }\n\n /**\n * Get the database query processor instance.\n *\n * @return \\Illuminate\\Database\\Query\\Processors\\Processor\n * @static\n */\n public static function getProcessor()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->getProcessor();\n }\n\n /**\n * Get the query grammar instance.\n *\n * @return \\Illuminate\\Database\\Query\\Grammars\\Grammar\n * @static\n */\n public static function getGrammar()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->getGrammar();\n }\n\n /**\n * Use the \"write\" PDO connection when executing the query.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function useWritePdo()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->useWritePdo();\n }\n\n /**\n * Clone the query without the given properties.\n *\n * @return static\n * @static\n */\n public static function cloneWithout($properties)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->cloneWithout($properties);\n }\n\n /**\n * Clone the query without the given bindings.\n *\n * @return static\n * @static\n */\n public static function cloneWithoutBindings($except)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->cloneWithoutBindings($except);\n }\n\n /**\n * Dump the current SQL and bindings.\n *\n * @param mixed $args\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function dump(...$args)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->dump(...$args);\n }\n\n /**\n * Dump the raw current SQL with embedded bindings.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function dumpRawSql()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->dumpRawSql();\n }\n\n /**\n * Die and dump the current SQL and bindings.\n *\n * @return never\n * @static\n */\n public static function dd()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->dd();\n }\n\n /**\n * Die and dump the current SQL with embedded bindings.\n *\n * @return never\n * @static\n */\n public static function ddRawSql()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->ddRawSql();\n }\n\n /**\n * Add a where clause to determine if a \"date\" column is in the past to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function wherePast($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->wherePast($columns);\n }\n\n /**\n * Add a where clause to determine if a \"date\" column is in the past or now to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNowOrPast($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNowOrPast($columns);\n }\n\n /**\n * Add an \"or where\" clause to determine if a \"date\" column is in the past to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWherePast($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWherePast($columns);\n }\n\n /**\n * Add a where clause to determine if a \"date\" column is in the past or now to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNowOrPast($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereNowOrPast($columns);\n }\n\n /**\n * Add a where clause to determine if a \"date\" column is in the future to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereFuture($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereFuture($columns);\n }\n\n /**\n * Add a where clause to determine if a \"date\" column is in the future or now to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNowOrFuture($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNowOrFuture($columns);\n }\n\n /**\n * Add an \"or where\" clause to determine if a \"date\" column is in the future to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereFuture($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereFuture($columns);\n }\n\n /**\n * Add an \"or where\" clause to determine if a \"date\" column is in the future or now to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNowOrFuture($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereNowOrFuture($columns);\n }\n\n /**\n * Add a \"where date\" clause to determine if a \"date\" column is today to the query.\n *\n * @param array|string $columns\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereToday($columns, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereToday($columns, $boolean);\n }\n\n /**\n * Add a \"where date\" clause to determine if a \"date\" column is before today.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereBeforeToday($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereBeforeToday($columns);\n }\n\n /**\n * Add a \"where date\" clause to determine if a \"date\" column is today or before to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereTodayOrBefore($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereTodayOrBefore($columns);\n }\n\n /**\n * Add a \"where date\" clause to determine if a \"date\" column is after today.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereAfterToday($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereAfterToday($columns);\n }\n\n /**\n * Add a \"where date\" clause to determine if a \"date\" column is today or after to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereTodayOrAfter($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereTodayOrAfter($columns);\n }\n\n /**\n * Add an \"or where date\" clause to determine if a \"date\" column is today to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereToday($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereToday($columns);\n }\n\n /**\n * Add an \"or where date\" clause to determine if a \"date\" column is before today.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereBeforeToday($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereBeforeToday($columns);\n }\n\n /**\n * Add an \"or where date\" clause to determine if a \"date\" column is today or before to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereTodayOrBefore($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereTodayOrBefore($columns);\n }\n\n /**\n * Add an \"or where date\" clause to determine if a \"date\" column is after today.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereAfterToday($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereAfterToday($columns);\n }\n\n /**\n * Add an \"or where date\" clause to determine if a \"date\" column is today or after to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereTodayOrAfter($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereTodayOrAfter($columns);\n }\n\n /**\n * Explains the query.\n *\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function explain()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->explain();\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Database\\Query\\Builder::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Database\\Query\\Builder::mixin($mixin, $replace);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Database\\Query\\Builder::flushMacros();\n }\n\n /**\n * Dynamically handle calls to the class.\n *\n * @param string $method\n * @param array $parameters\n * @return mixed\n * @throws \\BadMethodCallException\n * @static\n */\n public static function macroCall($method, $parameters)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->macroCall($method, $parameters);\n }\n\n}\n class Event extends \\Illuminate\\Support\\Facades\\Event {}\n class File extends \\Illuminate\\Support\\Facades\\File {}\n class Gate extends \\Illuminate\\Support\\Facades\\Gate {}\n class Hash extends \\Illuminate\\Support\\Facades\\Hash {}\n class Http extends \\Illuminate\\Support\\Facades\\Http {}\n class Js extends \\Illuminate\\Support\\Js {}\n class Lang extends \\Illuminate\\Support\\Facades\\Lang {}\n class Log extends \\Illuminate\\Support\\Facades\\Log {}\n class Mail extends \\Illuminate\\Support\\Facades\\Mail {}\n class Notification extends \\Illuminate\\Support\\Facades\\Notification {}\n class Number extends \\Illuminate\\Support\\Number {}\n class Password extends \\Illuminate\\Support\\Facades\\Password {}\n class Process extends \\Illuminate\\Support\\Facades\\Process {}\n class Queue extends \\Illuminate\\Support\\Facades\\Queue {}\n class RateLimiter extends \\Illuminate\\Support\\Facades\\RateLimiter {}\n class Redirect extends \\Illuminate\\Support\\Facades\\Redirect {}\n class Request extends \\Illuminate\\Support\\Facades\\Request {}\n class Response extends \\Illuminate\\Support\\Facades\\Response {}\n class Route extends \\Illuminate\\Support\\Facades\\Route {}\n class Schedule extends \\Illuminate\\Support\\Facades\\Schedule {}\n class Schema extends \\Illuminate\\Support\\Facades\\Schema {}\n class Session extends \\Illuminate\\Support\\Facades\\Session {}\n class Storage extends \\Illuminate\\Support\\Facades\\Storage {}\n class Str extends \\Illuminate\\Support\\Str {}\n class Uri extends \\Illuminate\\Support\\Uri {}\n class URL extends \\Illuminate\\Support\\Facades\\URL {}\n class Validator extends \\Illuminate\\Support\\Facades\\Validator {}\n class View extends \\Illuminate\\Support\\Facades\\View {}\n class Vite extends \\Illuminate\\Support\\Facades\\Vite {}\n class AWS extends \\Aws\\Laravel\\AwsFacade {}\n class Avatar extends \\Laravolt\\Avatar\\Facade {}\n class Fractal extends \\Spatie\\Fractal\\Facades\\Fractal {}\n class Laratrust extends \\Laratrust\\LaratrustFacade {}\n class RedisManager extends \\Illuminate\\Support\\Facades\\Redis {}\n class Sentry extends \\Sentry\\Laravel\\Facade {}\n class Statsd extends \\League\\StatsD\\Laravel5\\Facade\\StatsdFacade {}\n class Debugbar extends \\Barryvdh\\Debugbar\\Facades\\Debugbar {}\n class PDF extends \\Barryvdh\\DomPDF\\Facade\\Pdf {}\n class Pdf extends \\Barryvdh\\DomPDF\\Facade\\Pdf {}\n class Datadog extends \\ChaseConey\\LaravelDatadogHelper\\Datadog {}\n class Flare extends \\Spatie\\LaravelIgnition\\Facades\\Flare {}\n class Hashids extends \\Vinkla\\Hashids\\Facades\\Hashids {}\n}","depth":4,"on_screen":true,"value":"<?php\n/* @noinspection ALL */\n// @formatter:off\n// phpcs:ignoreFile\n\n/**\n * A helper file for Laravel, to provide autocomplete information to your IDE\n * Generated for Laravel 12.33.0.\n *\n * This file should not be included in your code, only analyzed by your IDE!\n *\n * @author Barry vd. Heuvel <barryvdh@gmail.com>\n * @see https://github.com/barryvdh/laravel-ide-helper\n */\nnamespace Illuminate\\Support\\Facades {\n /**\n * @see \\Illuminate\\Foundation\\Application\n */\n class App {\n /**\n * Begin configuring a new Laravel application instance.\n *\n * @param string|null $basePath\n * @return \\Illuminate\\Foundation\\Configuration\\ApplicationBuilder\n * @static\n */\n public static function configure($basePath = null)\n {\n return \\Illuminate\\Foundation\\Application::configure($basePath);\n }\n\n /**\n * Infer the application's base directory from the environment.\n *\n * @return string\n * @static\n */\n public static function inferBasePath()\n {\n return \\Illuminate\\Foundation\\Application::inferBasePath();\n }\n\n /**\n * Get the version number of the application.\n *\n * @return string\n * @static\n */\n public static function version()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->version();\n }\n\n /**\n * Run the given array of bootstrap classes.\n *\n * @param string[] $bootstrappers\n * @return void\n * @static\n */\n public static function bootstrapWith($bootstrappers)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->bootstrapWith($bootstrappers);\n }\n\n /**\n * Register a callback to run after loading the environment.\n *\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function afterLoadingEnvironment($callback)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->afterLoadingEnvironment($callback);\n }\n\n /**\n * Register a callback to run before a bootstrapper.\n *\n * @param string $bootstrapper\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function beforeBootstrapping($bootstrapper, $callback)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->beforeBootstrapping($bootstrapper, $callback);\n }\n\n /**\n * Register a callback to run after a bootstrapper.\n *\n * @param string $bootstrapper\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function afterBootstrapping($bootstrapper, $callback)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->afterBootstrapping($bootstrapper, $callback);\n }\n\n /**\n * Determine if the application has been bootstrapped before.\n *\n * @return bool\n * @static\n */\n public static function hasBeenBootstrapped()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->hasBeenBootstrapped();\n }\n\n /**\n * Set the base path for the application.\n *\n * @param string $basePath\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function setBasePath($basePath)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->setBasePath($basePath);\n }\n\n /**\n * Get the path to the application \"app\" directory.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function path($path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->path($path);\n }\n\n /**\n * Set the application directory.\n *\n * @param string $path\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function useAppPath($path)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->useAppPath($path);\n }\n\n /**\n * Get the base path of the Laravel installation.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function basePath($path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->basePath($path);\n }\n\n /**\n * Get the path to the bootstrap directory.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function bootstrapPath($path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->bootstrapPath($path);\n }\n\n /**\n * Get the path to the service provider list in the bootstrap directory.\n *\n * @return string\n * @static\n */\n public static function getBootstrapProvidersPath()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getBootstrapProvidersPath();\n }\n\n /**\n * Set the bootstrap file directory.\n *\n * @param string $path\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function useBootstrapPath($path)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->useBootstrapPath($path);\n }\n\n /**\n * Get the path to the application configuration files.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function configPath($path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->configPath($path);\n }\n\n /**\n * Set the configuration directory.\n *\n * @param string $path\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function useConfigPath($path)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->useConfigPath($path);\n }\n\n /**\n * Get the path to the database directory.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function databasePath($path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->databasePath($path);\n }\n\n /**\n * Set the database directory.\n *\n * @param string $path\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function useDatabasePath($path)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->useDatabasePath($path);\n }\n\n /**\n * Get the path to the language files.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function langPath($path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->langPath($path);\n }\n\n /**\n * Set the language file directory.\n *\n * @param string $path\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function useLangPath($path)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->useLangPath($path);\n }\n\n /**\n * Get the path to the public / web directory.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function publicPath($path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->publicPath($path);\n }\n\n /**\n * Set the public / web directory.\n *\n * @param string $path\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function usePublicPath($path)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->usePublicPath($path);\n }\n\n /**\n * Get the path to the storage directory.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function storagePath($path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->storagePath($path);\n }\n\n /**\n * Set the storage directory.\n *\n * @param string $path\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function useStoragePath($path)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->useStoragePath($path);\n }\n\n /**\n * Get the path to the resources directory.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function resourcePath($path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->resourcePath($path);\n }\n\n /**\n * Get the path to the views directory.\n * \n * This method returns the first configured path in the array of view paths.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function viewPath($path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->viewPath($path);\n }\n\n /**\n * Join the given paths together.\n *\n * @param string $basePath\n * @param string $path\n * @return string\n * @static\n */\n public static function joinPaths($basePath, $path = '')\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->joinPaths($basePath, $path);\n }\n\n /**\n * Get the path to the environment file directory.\n *\n * @return string\n * @static\n */\n public static function environmentPath()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->environmentPath();\n }\n\n /**\n * Set the directory for the environment file.\n *\n * @param string $path\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function useEnvironmentPath($path)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->useEnvironmentPath($path);\n }\n\n /**\n * Set the environment file to be loaded during bootstrapping.\n *\n * @param string $file\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function loadEnvironmentFrom($file)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->loadEnvironmentFrom($file);\n }\n\n /**\n * Get the environment file the application is using.\n *\n * @return string\n * @static\n */\n public static function environmentFile()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->environmentFile();\n }\n\n /**\n * Get the fully qualified path to the environment file.\n *\n * @return string\n * @static\n */\n public static function environmentFilePath()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->environmentFilePath();\n }\n\n /**\n * Get or check the current application environment.\n *\n * @param string|array $environments\n * @return string|bool\n * @static\n */\n public static function environment(...$environments)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->environment(...$environments);\n }\n\n /**\n * Determine if the application is in the local environment.\n *\n * @return bool\n * @static\n */\n public static function isLocal()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->isLocal();\n }\n\n /**\n * Determine if the application is in the production environment.\n *\n * @return bool\n * @static\n */\n public static function isProduction()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->isProduction();\n }\n\n /**\n * Detect the application's current environment.\n *\n * @param \\Closure $callback\n * @return string\n * @static\n */\n public static function detectEnvironment($callback)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->detectEnvironment($callback);\n }\n\n /**\n * Determine if the application is running in the console.\n *\n * @return bool\n * @static\n */\n public static function runningInConsole()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->runningInConsole();\n }\n\n /**\n * Determine if the application is running any of the given console commands.\n *\n * @param string|array $commands\n * @return bool\n * @static\n */\n public static function runningConsoleCommand(...$commands)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->runningConsoleCommand(...$commands);\n }\n\n /**\n * Determine if the application is running unit tests.\n *\n * @return bool\n * @static\n */\n public static function runningUnitTests()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->runningUnitTests();\n }\n\n /**\n * Determine if the application is running with debug mode enabled.\n *\n * @return bool\n * @static\n */\n public static function hasDebugModeEnabled()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->hasDebugModeEnabled();\n }\n\n /**\n * Register a new registered listener.\n *\n * @param callable $callback\n * @return void\n * @static\n */\n public static function registered($callback)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->registered($callback);\n }\n\n /**\n * Register all of the configured providers.\n *\n * @return void\n * @static\n */\n public static function registerConfiguredProviders()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->registerConfiguredProviders();\n }\n\n /**\n * Register a service provider with the application.\n *\n * @param \\Illuminate\\Support\\ServiceProvider|string $provider\n * @param bool $force\n * @return \\Illuminate\\Support\\ServiceProvider\n * @static\n */\n public static function register($provider, $force = false)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->register($provider, $force);\n }\n\n /**\n * Get the registered service provider instance if it exists.\n *\n * @param \\Illuminate\\Support\\ServiceProvider|string $provider\n * @return \\Illuminate\\Support\\ServiceProvider|null\n * @static\n */\n public static function getProvider($provider)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getProvider($provider);\n }\n\n /**\n * Get the registered service provider instances if any exist.\n *\n * @param \\Illuminate\\Support\\ServiceProvider|string $provider\n * @return array\n * @static\n */\n public static function getProviders($provider)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getProviders($provider);\n }\n\n /**\n * Resolve a service provider instance from the class name.\n *\n * @param string $provider\n * @return \\Illuminate\\Support\\ServiceProvider\n * @static\n */\n public static function resolveProvider($provider)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->resolveProvider($provider);\n }\n\n /**\n * Load and boot all of the remaining deferred providers.\n *\n * @return void\n * @static\n */\n public static function loadDeferredProviders()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->loadDeferredProviders();\n }\n\n /**\n * Load the provider for a deferred service.\n *\n * @param string $service\n * @return void\n * @static\n */\n public static function loadDeferredProvider($service)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->loadDeferredProvider($service);\n }\n\n /**\n * Register a deferred provider and service.\n *\n * @param string $provider\n * @param string|null $service\n * @return void\n * @static\n */\n public static function registerDeferredProvider($provider, $service = null)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->registerDeferredProvider($provider, $service);\n }\n\n /**\n * Resolve the given type from the container.\n *\n * @template TClass of object\n * @param string|class-string<TClass> $abstract\n * @param array $parameters\n * @return ($abstract is class-string<TClass> ? TClass : mixed)\n * @throws \\Illuminate\\Contracts\\Container\\BindingResolutionException\n * @static\n */\n public static function make($abstract, $parameters = [])\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->make($abstract, $parameters);\n }\n\n /**\n * Determine if the given abstract type has been bound.\n *\n * @param string $abstract\n * @return bool\n * @static\n */\n public static function bound($abstract)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->bound($abstract);\n }\n\n /**\n * Determine if the application has booted.\n *\n * @return bool\n * @static\n */\n public static function isBooted()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->isBooted();\n }\n\n /**\n * Boot the application's service providers.\n *\n * @return void\n * @static\n */\n public static function boot()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->boot();\n }\n\n /**\n * Register a new boot listener.\n *\n * @param callable $callback\n * @return void\n * @static\n */\n public static function booting($callback)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->booting($callback);\n }\n\n /**\n * Register a new \"booted\" listener.\n *\n * @param callable $callback\n * @return void\n * @static\n */\n public static function booted($callback)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->booted($callback);\n }\n\n /**\n * {@inheritdoc}\n *\n * @return \\Symfony\\Component\\HttpFoundation\\Response\n * @static\n */\n public static function handle($request, $type = 1, $catch = true)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->handle($request, $type, $catch);\n }\n\n /**\n * Handle the incoming HTTP request and send the response to the browser.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @return void\n * @static\n */\n public static function handleRequest($request)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->handleRequest($request);\n }\n\n /**\n * Handle the incoming Artisan command.\n *\n * @param \\Symfony\\Component\\Console\\Input\\InputInterface $input\n * @return int\n * @static\n */\n public static function handleCommand($input)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->handleCommand($input);\n }\n\n /**\n * Determine if the framework's base configuration should be merged.\n *\n * @return bool\n * @static\n */\n public static function shouldMergeFrameworkConfiguration()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->shouldMergeFrameworkConfiguration();\n }\n\n /**\n * Indicate that the framework's base configuration should not be merged.\n *\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function dontMergeFrameworkConfiguration()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->dontMergeFrameworkConfiguration();\n }\n\n /**\n * Determine if middleware has been disabled for the application.\n *\n * @return bool\n * @static\n */\n public static function shouldSkipMiddleware()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->shouldSkipMiddleware();\n }\n\n /**\n * Get the path to the cached services.php file.\n *\n * @return string\n * @static\n */\n public static function getCachedServicesPath()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getCachedServicesPath();\n }\n\n /**\n * Get the path to the cached packages.php file.\n *\n * @return string\n * @static\n */\n public static function getCachedPackagesPath()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getCachedPackagesPath();\n }\n\n /**\n * Determine if the application configuration is cached.\n *\n * @return bool\n * @static\n */\n public static function configurationIsCached()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->configurationIsCached();\n }\n\n /**\n * Get the path to the configuration cache file.\n *\n * @return string\n * @static\n */\n public static function getCachedConfigPath()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getCachedConfigPath();\n }\n\n /**\n * Determine if the application routes are cached.\n *\n * @return bool\n * @static\n */\n public static function routesAreCached()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->routesAreCached();\n }\n\n /**\n * Get the path to the routes cache file.\n *\n * @return string\n * @static\n */\n public static function getCachedRoutesPath()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getCachedRoutesPath();\n }\n\n /**\n * Determine if the application events are cached.\n *\n * @return bool\n * @static\n */\n public static function eventsAreCached()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->eventsAreCached();\n }\n\n /**\n * Get the path to the events cache file.\n *\n * @return string\n * @static\n */\n public static function getCachedEventsPath()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getCachedEventsPath();\n }\n\n /**\n * Add new prefix to list of absolute path prefixes.\n *\n * @param string $prefix\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function addAbsoluteCachePathPrefix($prefix)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->addAbsoluteCachePathPrefix($prefix);\n }\n\n /**\n * Get an instance of the maintenance mode manager implementation.\n *\n * @return \\Illuminate\\Contracts\\Foundation\\MaintenanceMode\n * @static\n */\n public static function maintenanceMode()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->maintenanceMode();\n }\n\n /**\n * Determine if the application is currently down for maintenance.\n *\n * @return bool\n * @static\n */\n public static function isDownForMaintenance()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->isDownForMaintenance();\n }\n\n /**\n * Throw an HttpException with the given data.\n *\n * @param int $code\n * @param string $message\n * @param array $headers\n * @return never\n * @throws \\Symfony\\Component\\HttpKernel\\Exception\\HttpException\n * @throws \\Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException\n * @static\n */\n public static function abort($code, $message = '', $headers = [])\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->abort($code, $message, $headers);\n }\n\n /**\n * Register a terminating callback with the application.\n *\n * @param callable|string $callback\n * @return \\Illuminate\\Foundation\\Application\n * @static\n */\n public static function terminating($callback)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->terminating($callback);\n }\n\n /**\n * Terminate the application.\n *\n * @return void\n * @static\n */\n public static function terminate()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->terminate();\n }\n\n /**\n * Get the service providers that have been loaded.\n *\n * @return array<string, bool>\n * @static\n */\n public static function getLoadedProviders()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getLoadedProviders();\n }\n\n /**\n * Determine if the given service provider is loaded.\n *\n * @param string $provider\n * @return bool\n * @static\n */\n public static function providerIsLoaded($provider)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->providerIsLoaded($provider);\n }\n\n /**\n * Get the application's deferred services.\n *\n * @return array\n * @static\n */\n public static function getDeferredServices()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getDeferredServices();\n }\n\n /**\n * Set the application's deferred services.\n *\n * @param array $services\n * @return void\n * @static\n */\n public static function setDeferredServices($services)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->setDeferredServices($services);\n }\n\n /**\n * Determine if the given service is a deferred service.\n *\n * @param string $service\n * @return bool\n * @static\n */\n public static function isDeferredService($service)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->isDeferredService($service);\n }\n\n /**\n * Add an array of services to the application's deferred services.\n *\n * @param array $services\n * @return void\n * @static\n */\n public static function addDeferredServices($services)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->addDeferredServices($services);\n }\n\n /**\n * Remove an array of services from the application's deferred services.\n *\n * @param array $services\n * @return void\n * @static\n */\n public static function removeDeferredServices($services)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->removeDeferredServices($services);\n }\n\n /**\n * Configure the real-time facade namespace.\n *\n * @param string $namespace\n * @return void\n * @static\n */\n public static function provideFacades($namespace)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->provideFacades($namespace);\n }\n\n /**\n * Get the current application locale.\n *\n * @return string\n * @static\n */\n public static function getLocale()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getLocale();\n }\n\n /**\n * Get the current application locale.\n *\n * @return string\n * @static\n */\n public static function currentLocale()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->currentLocale();\n }\n\n /**\n * Get the current application fallback locale.\n *\n * @return string\n * @static\n */\n public static function getFallbackLocale()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getFallbackLocale();\n }\n\n /**\n * Set the current application locale.\n *\n * @param string $locale\n * @return void\n * @static\n */\n public static function setLocale($locale)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->setLocale($locale);\n }\n\n /**\n * Set the current application fallback locale.\n *\n * @param string $fallbackLocale\n * @return void\n * @static\n */\n public static function setFallbackLocale($fallbackLocale)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->setFallbackLocale($fallbackLocale);\n }\n\n /**\n * Determine if the application locale is the given locale.\n *\n * @param string $locale\n * @return bool\n * @static\n */\n public static function isLocale($locale)\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->isLocale($locale);\n }\n\n /**\n * Register the core class aliases in the container.\n *\n * @return void\n * @static\n */\n public static function registerCoreContainerAliases()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->registerCoreContainerAliases();\n }\n\n /**\n * Flush the container of all bindings and resolved instances.\n *\n * @return void\n * @static\n */\n public static function flush()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->flush();\n }\n\n /**\n * Get the application namespace.\n *\n * @return string\n * @throws \\RuntimeException\n * @static\n */\n public static function getNamespace()\n {\n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getNamespace();\n }\n\n /**\n * Define a contextual binding.\n *\n * @param array|string $concrete\n * @return \\Illuminate\\Contracts\\Container\\ContextualBindingBuilder\n * @static\n */\n public static function when($concrete)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->when($concrete);\n }\n\n /**\n * Define a contextual binding based on an attribute.\n *\n * @param string $attribute\n * @param \\Closure $handler\n * @return void\n * @static\n */\n public static function whenHasAttribute($attribute, $handler)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->whenHasAttribute($attribute, $handler);\n }\n\n /**\n * Returns true if the container can return an entry for the given identifier.\n * \n * Returns false otherwise.\n * \n * `has($id)` returning true does not mean that `get($id)` will not throw an exception.\n * It does however mean that `get($id)` will not throw a `NotFoundExceptionInterface`.\n *\n * @return bool\n * @param string $id Identifier of the entry to look for.\n * @return bool\n * @static\n */\n public static function has($id)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->has($id);\n }\n\n /**\n * Determine if the given abstract type has been resolved.\n *\n * @param string $abstract\n * @return bool\n * @static\n */\n public static function resolved($abstract)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->resolved($abstract);\n }\n\n /**\n * Determine if a given type is shared.\n *\n * @param string $abstract\n * @return bool\n * @static\n */\n public static function isShared($abstract)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->isShared($abstract);\n }\n\n /**\n * Determine if a given string is an alias.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function isAlias($name)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->isAlias($name);\n }\n\n /**\n * Register a binding with the container.\n *\n * @param \\Closure|string $abstract\n * @param \\Closure|string|null $concrete\n * @param bool $shared\n * @return void\n * @throws \\TypeError\n * @throws ReflectionException\n * @static\n */\n public static function bind($abstract, $concrete = null, $shared = false)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->bind($abstract, $concrete, $shared);\n }\n\n /**\n * Determine if the container has a method binding.\n *\n * @param string $method\n * @return bool\n * @static\n */\n public static function hasMethodBinding($method)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->hasMethodBinding($method);\n }\n\n /**\n * Bind a callback to resolve with Container::call.\n *\n * @param array|string $method\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function bindMethod($method, $callback)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->bindMethod($method, $callback);\n }\n\n /**\n * Get the method binding for the given method.\n *\n * @param string $method\n * @param mixed $instance\n * @return mixed\n * @static\n */\n public static function callMethodBinding($method, $instance)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->callMethodBinding($method, $instance);\n }\n\n /**\n * Add a contextual binding to the container.\n *\n * @param string $concrete\n * @param \\Closure|string $abstract\n * @param \\Closure|string $implementation\n * @return void\n * @static\n */\n public static function addContextualBinding($concrete, $abstract, $implementation)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->addContextualBinding($concrete, $abstract, $implementation);\n }\n\n /**\n * Register a binding if it hasn't already been registered.\n *\n * @param \\Closure|string $abstract\n * @param \\Closure|string|null $concrete\n * @param bool $shared\n * @return void\n * @static\n */\n public static function bindIf($abstract, $concrete = null, $shared = false)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->bindIf($abstract, $concrete, $shared);\n }\n\n /**\n * Register a shared binding in the container.\n *\n * @param \\Closure|string $abstract\n * @param \\Closure|string|null $concrete\n * @return void\n * @static\n */\n public static function singleton($abstract, $concrete = null)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->singleton($abstract, $concrete);\n }\n\n /**\n * Register a shared binding if it hasn't already been registered.\n *\n * @param \\Closure|string $abstract\n * @param \\Closure|string|null $concrete\n * @return void\n * @static\n */\n public static function singletonIf($abstract, $concrete = null)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->singletonIf($abstract, $concrete);\n }\n\n /**\n * Register a scoped binding in the container.\n *\n * @param \\Closure|string $abstract\n * @param \\Closure|string|null $concrete\n * @return void\n * @static\n */\n public static function scoped($abstract, $concrete = null)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->scoped($abstract, $concrete);\n }\n\n /**\n * Register a scoped binding if it hasn't already been registered.\n *\n * @param \\Closure|string $abstract\n * @param \\Closure|string|null $concrete\n * @return void\n * @static\n */\n public static function scopedIf($abstract, $concrete = null)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->scopedIf($abstract, $concrete);\n }\n\n /**\n * \"Extend\" an abstract type in the container.\n *\n * @param string $abstract\n * @param \\Closure $closure\n * @return void\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function extend($abstract, $closure)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->extend($abstract, $closure);\n }\n\n /**\n * Register an existing instance as shared in the container.\n *\n * @template TInstance of mixed\n * @param string $abstract\n * @param TInstance $instance\n * @return TInstance\n * @static\n */\n public static function instance($abstract, $instance)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->instance($abstract, $instance);\n }\n\n /**\n * Assign a set of tags to a given binding.\n *\n * @param array|string $abstracts\n * @param mixed $tags\n * @return void\n * @static\n */\n public static function tag($abstracts, $tags)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->tag($abstracts, $tags);\n }\n\n /**\n * Resolve all of the bindings for a given tag.\n *\n * @param string $tag\n * @return iterable\n * @static\n */\n public static function tagged($tag)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->tagged($tag);\n }\n\n /**\n * Alias a type to a different name.\n *\n * @param string $abstract\n * @param string $alias\n * @return void\n * @throws \\LogicException\n * @static\n */\n public static function alias($abstract, $alias)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->alias($abstract, $alias);\n }\n\n /**\n * Bind a new callback to an abstract's rebind event.\n *\n * @param string $abstract\n * @param \\Closure $callback\n * @return mixed\n * @static\n */\n public static function rebinding($abstract, $callback)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->rebinding($abstract, $callback);\n }\n\n /**\n * Refresh an instance on the given target and method.\n *\n * @param string $abstract\n * @param mixed $target\n * @param string $method\n * @return mixed\n * @static\n */\n public static function refresh($abstract, $target, $method)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->refresh($abstract, $target, $method);\n }\n\n /**\n * Wrap the given closure such that its dependencies will be injected when executed.\n *\n * @param \\Closure $callback\n * @param array $parameters\n * @return \\Closure\n * @static\n */\n public static function wrap($callback, $parameters = [])\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->wrap($callback, $parameters);\n }\n\n /**\n * Call the given Closure / class@method and inject its dependencies.\n *\n * @param callable|string $callback\n * @param array<string, mixed> $parameters\n * @param string|null $defaultMethod\n * @return mixed\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function call($callback, $parameters = [], $defaultMethod = null)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->call($callback, $parameters, $defaultMethod);\n }\n\n /**\n * Get a closure to resolve the given type from the container.\n *\n * @template TClass of object\n * @param string|class-string<TClass> $abstract\n * @return ($abstract is class-string<TClass> ? \\Closure(): TClass : \\Closure(): mixed)\n * @static\n */\n public static function factory($abstract)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->factory($abstract);\n }\n\n /**\n * An alias function name for make().\n *\n * @template TClass of object\n * @param string|class-string<TClass>|callable $abstract\n * @param array $parameters\n * @return ($abstract is class-string<TClass> ? TClass : mixed)\n * @throws \\Illuminate\\Contracts\\Container\\BindingResolutionException\n * @static\n */\n public static function makeWith($abstract, $parameters = [])\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->makeWith($abstract, $parameters);\n }\n\n /**\n * {@inheritdoc}\n *\n * @template TClass of object\n * @param string|class-string<TClass> $id\n * @return ($id is class-string<TClass> ? TClass : mixed)\n * @static\n */\n public static function get($id)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->get($id);\n }\n\n /**\n * Instantiate a concrete instance of the given type.\n *\n * @template TClass of object\n * @param \\Closure(static, array): TClass|class-string<TClass> $concrete\n * @return TClass\n * @throws \\Illuminate\\Contracts\\Container\\BindingResolutionException\n * @throws \\Illuminate\\Contracts\\Container\\CircularDependencyException\n * @static\n */\n public static function build($concrete)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->build($concrete);\n }\n\n /**\n * Resolve a dependency based on an attribute.\n *\n * @param \\ReflectionAttribute $attribute\n * @return mixed\n * @static\n */\n public static function resolveFromAttribute($attribute)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->resolveFromAttribute($attribute);\n }\n\n /**\n * Register a new before resolving callback for all types.\n *\n * @param \\Closure|string $abstract\n * @param \\Closure|null $callback\n * @return void\n * @static\n */\n public static function beforeResolving($abstract, $callback = null)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->beforeResolving($abstract, $callback);\n }\n\n /**\n * Register a new resolving callback.\n *\n * @param \\Closure|string $abstract\n * @param \\Closure|null $callback\n * @return void\n * @static\n */\n public static function resolving($abstract, $callback = null)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->resolving($abstract, $callback);\n }\n\n /**\n * Register a new after resolving callback for all types.\n *\n * @param \\Closure|string $abstract\n * @param \\Closure|null $callback\n * @return void\n * @static\n */\n public static function afterResolving($abstract, $callback = null)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->afterResolving($abstract, $callback);\n }\n\n /**\n * Register a new after resolving attribute callback for all types.\n *\n * @param string $attribute\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function afterResolvingAttribute($attribute, $callback)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->afterResolvingAttribute($attribute, $callback);\n }\n\n /**\n * Fire all of the after resolving attribute callbacks.\n *\n * @param \\ReflectionAttribute[] $attributes\n * @param mixed $object\n * @return void\n * @static\n */\n public static function fireAfterResolvingAttributeCallbacks($attributes, $object)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->fireAfterResolvingAttributeCallbacks($attributes, $object);\n }\n\n /**\n * Get the name of the binding the container is currently resolving.\n *\n * @return class-string|string|null\n * @static\n */\n public static function currentlyResolving()\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->currentlyResolving();\n }\n\n /**\n * Get the container's bindings.\n *\n * @return array\n * @static\n */\n public static function getBindings()\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getBindings();\n }\n\n /**\n * Get the alias for an abstract if available.\n *\n * @param string $abstract\n * @return string\n * @static\n */\n public static function getAlias($abstract)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->getAlias($abstract);\n }\n\n /**\n * Remove all of the extender callbacks for a given type.\n *\n * @param string $abstract\n * @return void\n * @static\n */\n public static function forgetExtenders($abstract)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->forgetExtenders($abstract);\n }\n\n /**\n * Remove a resolved instance from the instance cache.\n *\n * @param string $abstract\n * @return void\n * @static\n */\n public static function forgetInstance($abstract)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->forgetInstance($abstract);\n }\n\n /**\n * Clear all of the instances from the container.\n *\n * @return void\n * @static\n */\n public static function forgetInstances()\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->forgetInstances();\n }\n\n /**\n * Clear all of the scoped instances from the container.\n *\n * @return void\n * @static\n */\n public static function forgetScopedInstances()\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->forgetScopedInstances();\n }\n\n /**\n * Set the callback which determines the current container environment.\n *\n * @param (callable(array<int, string>|string): bool|string)|null $callback\n * @return void\n * @static\n */\n public static function resolveEnvironmentUsing($callback)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->resolveEnvironmentUsing($callback);\n }\n\n /**\n * Determine the environment for the container.\n *\n * @param array<int, string>|string $environments\n * @return bool\n * @static\n */\n public static function currentEnvironmentIs($environments)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->currentEnvironmentIs($environments);\n }\n\n /**\n * Get the globally available instance of the container.\n *\n * @return static\n * @static\n */\n public static function getInstance()\n {\n //Method inherited from \\Illuminate\\Container\\Container \n return \\Illuminate\\Foundation\\Application::getInstance();\n }\n\n /**\n * Set the shared instance of the container.\n *\n * @param \\Illuminate\\Contracts\\Container\\Container|null $container\n * @return \\Illuminate\\Contracts\\Container\\Container|static\n * @static\n */\n public static function setInstance($container = null)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n return \\Illuminate\\Foundation\\Application::setInstance($container);\n }\n\n /**\n * Determine if a given offset exists.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function offsetExists($key)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->offsetExists($key);\n }\n\n /**\n * Get the value at a given offset.\n *\n * @param string $key\n * @return mixed\n * @static\n */\n public static function offsetGet($key)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n return $instance->offsetGet($key);\n }\n\n /**\n * Set the value at a given offset.\n *\n * @param string $key\n * @param mixed $value\n * @return void\n * @static\n */\n public static function offsetSet($key, $value)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->offsetSet($key, $value);\n }\n\n /**\n * Unset the value at a given offset.\n *\n * @param string $key\n * @return void\n * @static\n */\n public static function offsetUnset($key)\n {\n //Method inherited from \\Illuminate\\Container\\Container \n /** @var \\Illuminate\\Foundation\\Application $instance */\n $instance->offsetUnset($key);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Foundation\\Application::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Foundation\\Application::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Foundation\\Application::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Foundation\\Application::flushMacros();\n }\n\n }\n /**\n * @see \\Illuminate\\Foundation\\Console\\Kernel\n */\n class Artisan {\n /**\n * Re-route the Symfony command events to their Laravel counterparts.\n *\n * @internal\n * @return \\Jiminny\\Console\\Kernel\n * @static\n */\n public static function rerouteSymfonyCommandEvents()\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->rerouteSymfonyCommandEvents();\n }\n\n /**\n * Run the console application.\n *\n * @param \\Symfony\\Component\\Console\\Input\\InputInterface $input\n * @param \\Symfony\\Component\\Console\\Output\\OutputInterface|null $output\n * @return int\n * @static\n */\n public static function handle($input, $output = null)\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->handle($input, $output);\n }\n\n /**\n * Terminate the application.\n *\n * @param \\Symfony\\Component\\Console\\Input\\InputInterface $input\n * @param int $status\n * @return void\n * @static\n */\n public static function terminate($input, $status)\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n $instance->terminate($input, $status);\n }\n\n /**\n * Register a callback to be invoked when the command lifecycle duration exceeds a given amount of time.\n *\n * @param \\DateTimeInterface|\\Carbon\\CarbonInterval|float|int $threshold\n * @param callable $handler\n * @return void\n * @static\n */\n public static function whenCommandLifecycleIsLongerThan($threshold, $handler)\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n $instance->whenCommandLifecycleIsLongerThan($threshold, $handler);\n }\n\n /**\n * When the command being handled started.\n *\n * @return \\Illuminate\\Support\\Carbon|null\n * @static\n */\n public static function commandStartedAt()\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->commandStartedAt();\n }\n\n /**\n * Resolve a console schedule instance.\n *\n * @return \\Illuminate\\Console\\Scheduling\\Schedule\n * @static\n */\n public static function resolveConsoleSchedule()\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->resolveConsoleSchedule();\n }\n\n /**\n * Register a Closure based command with the application.\n *\n * @param string $signature\n * @param \\Closure $callback\n * @return \\Illuminate\\Foundation\\Console\\ClosureCommand\n * @static\n */\n public static function command($signature, $callback)\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->command($signature, $callback);\n }\n\n /**\n * Register the given command with the console application.\n *\n * @param \\Symfony\\Component\\Console\\Command\\Command $command\n * @return void\n * @static\n */\n public static function registerCommand($command)\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n $instance->registerCommand($command);\n }\n\n /**\n * Run an Artisan console command by name.\n *\n * @param \\Symfony\\Component\\Console\\Command\\Command|string $command\n * @param array $parameters\n * @param \\Symfony\\Component\\Console\\Output\\OutputInterface|null $outputBuffer\n * @return int\n * @throws \\Symfony\\Component\\Console\\Exception\\CommandNotFoundException\n * @static\n */\n public static function call($command, $parameters = [], $outputBuffer = null)\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->call($command, $parameters, $outputBuffer);\n }\n\n /**\n * Queue the given console command.\n *\n * @param string $command\n * @param array $parameters\n * @return \\Illuminate\\Foundation\\Bus\\PendingDispatch\n * @static\n */\n public static function queue($command, $parameters = [])\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->queue($command, $parameters);\n }\n\n /**\n * Get all of the commands registered with the console.\n *\n * @return array\n * @static\n */\n public static function all()\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->all();\n }\n\n /**\n * Get the output for the last run command.\n *\n * @return string\n * @static\n */\n public static function output()\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->output();\n }\n\n /**\n * Bootstrap the application for artisan commands.\n *\n * @return void\n * @static\n */\n public static function bootstrap()\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n $instance->bootstrap();\n }\n\n /**\n * Bootstrap the application without booting service providers.\n *\n * @return void\n * @static\n */\n public static function bootstrapWithoutBootingProviders()\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n $instance->bootstrapWithoutBootingProviders();\n }\n\n /**\n * Set the Artisan application instance.\n *\n * @param \\Illuminate\\Console\\Application|null $artisan\n * @return void\n * @static\n */\n public static function setArtisan($artisan)\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n $instance->setArtisan($artisan);\n }\n\n /**\n * Set the Artisan commands provided by the application.\n *\n * @param array $commands\n * @return \\Jiminny\\Console\\Kernel\n * @static\n */\n public static function addCommands($commands)\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->addCommands($commands);\n }\n\n /**\n * Set the paths that should have their Artisan commands automatically discovered.\n *\n * @param array $paths\n * @return \\Jiminny\\Console\\Kernel\n * @static\n */\n public static function addCommandPaths($paths)\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->addCommandPaths($paths);\n }\n\n /**\n * Set the paths that should have their Artisan \"routes\" automatically discovered.\n *\n * @param array $paths\n * @return \\Jiminny\\Console\\Kernel\n * @static\n */\n public static function addCommandRoutePaths($paths)\n {\n //Method inherited from \\Illuminate\\Foundation\\Console\\Kernel \n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->addCommandRoutePaths($paths);\n }\n\n /**\n * Confirm before proceeding with the action.\n * \n * This method only asks for confirmation in production.\n *\n * @param string $warning\n * @param \\Closure|bool|null $callback\n * @return bool\n * @static\n */\n public static function confirmToProceed($warning = 'Application In Production', $callback = null)\n {\n /** @var \\Jiminny\\Console\\Kernel $instance */\n return $instance->confirmToProceed($warning, $callback);\n }\n\n }\n /**\n * @see \\Illuminate\\Auth\\AuthManager\n * @see \\Illuminate\\Auth\\SessionGuard\n */\n class Auth {\n /**\n * Attempt to get the guard from the local cache.\n *\n * @param string|null $name\n * @return \\Illuminate\\Contracts\\Auth\\Guard|\\Illuminate\\Contracts\\Auth\\StatefulGuard\n * @static\n */\n public static function guard($name = null)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->guard($name);\n }\n\n /**\n * Create a session based authentication guard.\n *\n * @param string $name\n * @param array $config\n * @return \\Illuminate\\Auth\\SessionGuard\n * @static\n */\n public static function createSessionDriver($name, $config)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->createSessionDriver($name, $config);\n }\n\n /**\n * Create a token based authentication guard.\n *\n * @param string $name\n * @param array $config\n * @return \\Illuminate\\Auth\\TokenGuard\n * @static\n */\n public static function createTokenDriver($name, $config)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->createTokenDriver($name, $config);\n }\n\n /**\n * Get the default authentication driver name.\n *\n * @return string\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Set the default guard driver the factory should serve.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function shouldUse($name)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n $instance->shouldUse($name);\n }\n\n /**\n * Set the default authentication driver name.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultDriver($name)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n $instance->setDefaultDriver($name);\n }\n\n /**\n * Register a new callback based request guard.\n *\n * @param string $driver\n * @param callable $callback\n * @return \\Illuminate\\Auth\\AuthManager\n * @static\n */\n public static function viaRequest($driver, $callback)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->viaRequest($driver, $callback);\n }\n\n /**\n * Get the user resolver callback.\n *\n * @return \\Closure\n * @static\n */\n public static function userResolver()\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->userResolver();\n }\n\n /**\n * Set the callback to be used to resolve users.\n *\n * @param \\Closure $userResolver\n * @return \\Illuminate\\Auth\\AuthManager\n * @static\n */\n public static function resolveUsersUsing($userResolver)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->resolveUsersUsing($userResolver);\n }\n\n /**\n * Register a custom driver creator Closure.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @return \\Illuminate\\Auth\\AuthManager\n * @static\n */\n public static function extend($driver, $callback)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->extend($driver, $callback);\n }\n\n /**\n * Register a custom provider creator Closure.\n *\n * @param string $name\n * @param \\Closure $callback\n * @return \\Illuminate\\Auth\\AuthManager\n * @static\n */\n public static function provider($name, $callback)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->provider($name, $callback);\n }\n\n /**\n * Determines if any guards have already been resolved.\n *\n * @return bool\n * @static\n */\n public static function hasResolvedGuards()\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->hasResolvedGuards();\n }\n\n /**\n * Forget all of the resolved guard instances.\n *\n * @return \\Illuminate\\Auth\\AuthManager\n * @static\n */\n public static function forgetGuards()\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->forgetGuards();\n }\n\n /**\n * Set the application instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Foundation\\Application $app\n * @return \\Illuminate\\Auth\\AuthManager\n * @static\n */\n public static function setApplication($app)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->setApplication($app);\n }\n\n /**\n * Create the user provider implementation for the driver.\n *\n * @param string|null $provider\n * @return \\Illuminate\\Contracts\\Auth\\UserProvider|null\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function createUserProvider($provider = null)\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->createUserProvider($provider);\n }\n\n /**\n * Get the default user provider name.\n *\n * @return string\n * @static\n */\n public static function getDefaultUserProvider()\n {\n /** @var \\Illuminate\\Auth\\AuthManager $instance */\n return $instance->getDefaultUserProvider();\n }\n\n /**\n * Get the currently authenticated user.\n *\n * @return \\Jiminny\\Models\\User|null\n * @static\n */\n public static function user()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->user();\n }\n\n /**\n * Get the ID for the currently authenticated user.\n *\n * @return int|string|null\n * @static\n */\n public static function id()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->id();\n }\n\n /**\n * Log a user into the application without sessions or cookies.\n *\n * @param array $credentials\n * @return bool\n * @static\n */\n public static function once($credentials = [])\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->once($credentials);\n }\n\n /**\n * Log the given user ID into the application without sessions or cookies.\n *\n * @param mixed $id\n * @return \\Jiminny\\Models\\User|false\n * @static\n */\n public static function onceUsingId($id)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->onceUsingId($id);\n }\n\n /**\n * Validate a user's credentials.\n *\n * @param array $credentials\n * @return bool\n * @static\n */\n public static function validate($credentials = [])\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->validate($credentials);\n }\n\n /**\n * Attempt to authenticate using HTTP Basic Auth.\n *\n * @param string $field\n * @param array $extraConditions\n * @return \\Symfony\\Component\\HttpFoundation\\Response|null\n * @throws \\Symfony\\Component\\HttpKernel\\Exception\\UnauthorizedHttpException\n * @static\n */\n public static function basic($field = 'email', $extraConditions = [])\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->basic($field, $extraConditions);\n }\n\n /**\n * Perform a stateless HTTP Basic login attempt.\n *\n * @param string $field\n * @param array $extraConditions\n * @return \\Symfony\\Component\\HttpFoundation\\Response|null\n * @throws \\Symfony\\Component\\HttpKernel\\Exception\\UnauthorizedHttpException\n * @static\n */\n public static function onceBasic($field = 'email', $extraConditions = [])\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->onceBasic($field, $extraConditions);\n }\n\n /**\n * Attempt to authenticate a user using the given credentials.\n *\n * @param array $credentials\n * @param bool $remember\n * @return bool\n * @static\n */\n public static function attempt($credentials = [], $remember = false)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->attempt($credentials, $remember);\n }\n\n /**\n * Attempt to authenticate a user with credentials and additional callbacks.\n *\n * @param array $credentials\n * @param array|callable|null $callbacks\n * @param bool $remember\n * @return bool\n * @static\n */\n public static function attemptWhen($credentials = [], $callbacks = null, $remember = false)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->attemptWhen($credentials, $callbacks, $remember);\n }\n\n /**\n * Log the given user ID into the application.\n *\n * @param mixed $id\n * @param bool $remember\n * @return \\Jiminny\\Models\\User|false\n * @static\n */\n public static function loginUsingId($id, $remember = false)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->loginUsingId($id, $remember);\n }\n\n /**\n * Log a user into the application.\n *\n * @param \\Illuminate\\Contracts\\Auth\\Authenticatable $user\n * @param bool $remember\n * @return void\n * @static\n */\n public static function login($user, $remember = false)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n $instance->login($user, $remember);\n }\n\n /**\n * Log the user out of the application.\n *\n * @return void\n * @static\n */\n public static function logout()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n $instance->logout();\n }\n\n /**\n * Log the user out of the application on their current device only.\n * \n * This method does not cycle the \"remember\" token.\n *\n * @return void\n * @static\n */\n public static function logoutCurrentDevice()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n $instance->logoutCurrentDevice();\n }\n\n /**\n * Invalidate other sessions for the current user.\n * \n * The application must be using the AuthenticateSession middleware.\n *\n * @param string $password\n * @return \\Jiminny\\Models\\User|null\n * @throws \\Illuminate\\Auth\\AuthenticationException\n * @static\n */\n public static function logoutOtherDevices($password)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->logoutOtherDevices($password);\n }\n\n /**\n * Register an authentication attempt event listener.\n *\n * @param mixed $callback\n * @return void\n * @static\n */\n public static function attempting($callback)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n $instance->attempting($callback);\n }\n\n /**\n * Get the last user we attempted to authenticate.\n *\n * @return \\Jiminny\\Models\\User\n * @static\n */\n public static function getLastAttempted()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->getLastAttempted();\n }\n\n /**\n * Get a unique identifier for the auth session value.\n *\n * @return string\n * @static\n */\n public static function getName()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->getName();\n }\n\n /**\n * Get the name of the cookie used to store the \"recaller\".\n *\n * @return string\n * @static\n */\n public static function getRecallerName()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->getRecallerName();\n }\n\n /**\n * Determine if the user was authenticated via \"remember me\" cookie.\n *\n * @return bool\n * @static\n */\n public static function viaRemember()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->viaRemember();\n }\n\n /**\n * Set the number of minutes the remember me cookie should be valid for.\n *\n * @param int $minutes\n * @return \\Illuminate\\Auth\\SessionGuard\n * @static\n */\n public static function setRememberDuration($minutes)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->setRememberDuration($minutes);\n }\n\n /**\n * Get the cookie creator instance used by the guard.\n *\n * @return \\Illuminate\\Contracts\\Cookie\\QueueingFactory\n * @throws \\RuntimeException\n * @static\n */\n public static function getCookieJar()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->getCookieJar();\n }\n\n /**\n * Set the cookie creator instance used by the guard.\n *\n * @param \\Illuminate\\Contracts\\Cookie\\QueueingFactory $cookie\n * @return void\n * @static\n */\n public static function setCookieJar($cookie)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n $instance->setCookieJar($cookie);\n }\n\n /**\n * Get the event dispatcher instance.\n *\n * @return \\Illuminate\\Contracts\\Events\\Dispatcher\n * @static\n */\n public static function getDispatcher()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->getDispatcher();\n }\n\n /**\n * Set the event dispatcher instance.\n *\n * @param \\Illuminate\\Contracts\\Events\\Dispatcher $events\n * @return void\n * @static\n */\n public static function setDispatcher($events)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n $instance->setDispatcher($events);\n }\n\n /**\n * Get the session store used by the guard.\n *\n * @return \\Illuminate\\Contracts\\Session\\Session\n * @static\n */\n public static function getSession()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->getSession();\n }\n\n /**\n * Return the currently cached user.\n *\n * @return \\Jiminny\\Models\\User|null\n * @static\n */\n public static function getUser()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->getUser();\n }\n\n /**\n * Set the current user.\n *\n * @param \\Illuminate\\Contracts\\Auth\\Authenticatable $user\n * @return \\Illuminate\\Auth\\SessionGuard\n * @static\n */\n public static function setUser($user)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->setUser($user);\n }\n\n /**\n * Get the current request instance.\n *\n * @return \\Symfony\\Component\\HttpFoundation\\Request\n * @static\n */\n public static function getRequest()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->getRequest();\n }\n\n /**\n * Set the current request instance.\n *\n * @param \\Symfony\\Component\\HttpFoundation\\Request $request\n * @return \\Illuminate\\Auth\\SessionGuard\n * @static\n */\n public static function setRequest($request)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->setRequest($request);\n }\n\n /**\n * Get the timebox instance used by the guard.\n *\n * @return \\Illuminate\\Support\\Timebox\n * @static\n */\n public static function getTimebox()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->getTimebox();\n }\n\n /**\n * Determine if the current user is authenticated. If not, throw an exception.\n *\n * @return \\Jiminny\\Models\\User\n * @throws \\Illuminate\\Auth\\AuthenticationException\n * @static\n */\n public static function authenticate()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->authenticate();\n }\n\n /**\n * Determine if the guard has a user instance.\n *\n * @return bool\n * @static\n */\n public static function hasUser()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->hasUser();\n }\n\n /**\n * Determine if the current user is authenticated.\n *\n * @return bool\n * @static\n */\n public static function check()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->check();\n }\n\n /**\n * Determine if the current user is a guest.\n *\n * @return bool\n * @static\n */\n public static function guest()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->guest();\n }\n\n /**\n * Forget the current user.\n *\n * @return \\Illuminate\\Auth\\SessionGuard\n * @static\n */\n public static function forgetUser()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->forgetUser();\n }\n\n /**\n * Get the user provider used by the guard.\n *\n * @return \\Illuminate\\Contracts\\Auth\\UserProvider\n * @static\n */\n public static function getProvider()\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n return $instance->getProvider();\n }\n\n /**\n * Set the user provider used by the guard.\n *\n * @param \\Illuminate\\Contracts\\Auth\\UserProvider $provider\n * @return void\n * @static\n */\n public static function setProvider($provider)\n {\n /** @var \\Illuminate\\Auth\\SessionGuard $instance */\n $instance->setProvider($provider);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Auth\\SessionGuard::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Auth\\SessionGuard::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Auth\\SessionGuard::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Auth\\SessionGuard::flushMacros();\n }\n\n }\n /**\n * @see \\Illuminate\\View\\Compilers\\BladeCompiler\n */\n class Blade {\n /**\n * Compile the view at the given path.\n *\n * @param string|null $path\n * @return void\n * @static\n */\n public static function compile($path = null)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->compile($path);\n }\n\n /**\n * Get the path currently being compiled.\n *\n * @return string\n * @static\n */\n public static function getPath()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->getPath();\n }\n\n /**\n * Set the path currently being compiled.\n *\n * @param string $path\n * @return void\n * @static\n */\n public static function setPath($path)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->setPath($path);\n }\n\n /**\n * Compile the given Blade template contents.\n *\n * @param string $value\n * @return string\n * @static\n */\n public static function compileString($value)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->compileString($value);\n }\n\n /**\n * Evaluate and render a Blade string to HTML.\n *\n * @param string $string\n * @param array $data\n * @param bool $deleteCachedView\n * @return string\n * @static\n */\n public static function render($string, $data = [], $deleteCachedView = false)\n {\n return \\Illuminate\\View\\Compilers\\BladeCompiler::render($string, $data, $deleteCachedView);\n }\n\n /**\n * Render a component instance to HTML.\n *\n * @param \\Illuminate\\View\\Component $component\n * @return string\n * @static\n */\n public static function renderComponent($component)\n {\n return \\Illuminate\\View\\Compilers\\BladeCompiler::renderComponent($component);\n }\n\n /**\n * Strip the parentheses from the given expression.\n *\n * @param string $expression\n * @return string\n * @static\n */\n public static function stripParentheses($expression)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->stripParentheses($expression);\n }\n\n /**\n * Register a custom Blade compiler.\n *\n * @param callable $compiler\n * @return void\n * @static\n */\n public static function extend($compiler)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->extend($compiler);\n }\n\n /**\n * Get the extensions used by the compiler.\n *\n * @return array\n * @static\n */\n public static function getExtensions()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->getExtensions();\n }\n\n /**\n * Register an \"if\" statement directive.\n *\n * @param string $name\n * @param callable $callback\n * @return void\n * @static\n */\n public static function if($name, $callback)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->if($name, $callback);\n }\n\n /**\n * Check the result of a condition.\n *\n * @param string $name\n * @param mixed $parameters\n * @return bool\n * @static\n */\n public static function check($name, ...$parameters)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->check($name, ...$parameters);\n }\n\n /**\n * Register a class-based component alias directive.\n *\n * @param string $class\n * @param string|null $alias\n * @param string $prefix\n * @return void\n * @static\n */\n public static function component($class, $alias = null, $prefix = '')\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->component($class, $alias, $prefix);\n }\n\n /**\n * Register an array of class-based components.\n *\n * @param array $components\n * @param string $prefix\n * @return void\n * @static\n */\n public static function components($components, $prefix = '')\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->components($components, $prefix);\n }\n\n /**\n * Get the registered class component aliases.\n *\n * @return array\n * @static\n */\n public static function getClassComponentAliases()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->getClassComponentAliases();\n }\n\n /**\n * Register a new anonymous component path.\n *\n * @param string $path\n * @param string|null $prefix\n * @return void\n * @static\n */\n public static function anonymousComponentPath($path, $prefix = null)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->anonymousComponentPath($path, $prefix);\n }\n\n /**\n * Register an anonymous component namespace.\n *\n * @param string $directory\n * @param string|null $prefix\n * @return void\n * @static\n */\n public static function anonymousComponentNamespace($directory, $prefix = null)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->anonymousComponentNamespace($directory, $prefix);\n }\n\n /**\n * Register a class-based component namespace.\n *\n * @param string $namespace\n * @param string $prefix\n * @return void\n * @static\n */\n public static function componentNamespace($namespace, $prefix)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->componentNamespace($namespace, $prefix);\n }\n\n /**\n * Get the registered anonymous component paths.\n *\n * @return array\n * @static\n */\n public static function getAnonymousComponentPaths()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->getAnonymousComponentPaths();\n }\n\n /**\n * Get the registered anonymous component namespaces.\n *\n * @return array\n * @static\n */\n public static function getAnonymousComponentNamespaces()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->getAnonymousComponentNamespaces();\n }\n\n /**\n * Get the registered class component namespaces.\n *\n * @return array\n * @static\n */\n public static function getClassComponentNamespaces()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->getClassComponentNamespaces();\n }\n\n /**\n * Register a component alias directive.\n *\n * @param string $path\n * @param string|null $alias\n * @return void\n * @static\n */\n public static function aliasComponent($path, $alias = null)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->aliasComponent($path, $alias);\n }\n\n /**\n * Register an include alias directive.\n *\n * @param string $path\n * @param string|null $alias\n * @return void\n * @static\n */\n public static function include($path, $alias = null)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->include($path, $alias);\n }\n\n /**\n * Register an include alias directive.\n *\n * @param string $path\n * @param string|null $alias\n * @return void\n * @static\n */\n public static function aliasInclude($path, $alias = null)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->aliasInclude($path, $alias);\n }\n\n /**\n * Register a handler for custom directives, binding the handler to the compiler.\n *\n * @param string $name\n * @param callable $handler\n * @return void\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function bindDirective($name, $handler)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->bindDirective($name, $handler);\n }\n\n /**\n * Register a handler for custom directives.\n *\n * @param string $name\n * @param callable $handler\n * @param bool $bind\n * @return void\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function directive($name, $handler, $bind = false)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->directive($name, $handler, $bind);\n }\n\n /**\n * Get the list of custom directives.\n *\n * @return array\n * @static\n */\n public static function getCustomDirectives()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->getCustomDirectives();\n }\n\n /**\n * Indicate that the following callable should be used to prepare strings for compilation.\n *\n * @param callable $callback\n * @return \\Illuminate\\View\\Compilers\\BladeCompiler\n * @static\n */\n public static function prepareStringsForCompilationUsing($callback)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->prepareStringsForCompilationUsing($callback);\n }\n\n /**\n * Register a new precompiler.\n *\n * @param callable $precompiler\n * @return void\n * @static\n */\n public static function precompiler($precompiler)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->precompiler($precompiler);\n }\n\n /**\n * Execute the given callback using a custom echo format.\n *\n * @param string $format\n * @param callable $callback\n * @return string\n * @static\n */\n public static function usingEchoFormat($format, $callback)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->usingEchoFormat($format, $callback);\n }\n\n /**\n * Set the echo format to be used by the compiler.\n *\n * @param string $format\n * @return void\n * @static\n */\n public static function setEchoFormat($format)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->setEchoFormat($format);\n }\n\n /**\n * Set the \"echo\" format to double encode entities.\n *\n * @return void\n * @static\n */\n public static function withDoubleEncoding()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->withDoubleEncoding();\n }\n\n /**\n * Set the \"echo\" format to not double encode entities.\n *\n * @return void\n * @static\n */\n public static function withoutDoubleEncoding()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->withoutDoubleEncoding();\n }\n\n /**\n * Indicate that component tags should not be compiled.\n *\n * @return void\n * @static\n */\n public static function withoutComponentTags()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->withoutComponentTags();\n }\n\n /**\n * Get the path to the compiled version of a view.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function getCompiledPath($path)\n {\n //Method inherited from \\Illuminate\\View\\Compilers\\Compiler \n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->getCompiledPath($path);\n }\n\n /**\n * Determine if the view at the given path is expired.\n *\n * @param string $path\n * @return bool\n * @throws \\ErrorException\n * @static\n */\n public static function isExpired($path)\n {\n //Method inherited from \\Illuminate\\View\\Compilers\\Compiler \n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->isExpired($path);\n }\n\n /**\n * Get a new component hash for a component name.\n *\n * @param string $component\n * @return string\n * @static\n */\n public static function newComponentHash($component)\n {\n return \\Illuminate\\View\\Compilers\\BladeCompiler::newComponentHash($component);\n }\n\n /**\n * Compile a class component opening.\n *\n * @param string $component\n * @param string $alias\n * @param string $data\n * @param string $hash\n * @return string\n * @static\n */\n public static function compileClassComponentOpening($component, $alias, $data, $hash)\n {\n return \\Illuminate\\View\\Compilers\\BladeCompiler::compileClassComponentOpening($component, $alias, $data, $hash);\n }\n\n /**\n * Compile the end-component statements into valid PHP.\n *\n * @return string\n * @static\n */\n public static function compileEndComponentClass()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->compileEndComponentClass();\n }\n\n /**\n * Sanitize the given component attribute value.\n *\n * @param mixed $value\n * @return mixed\n * @static\n */\n public static function sanitizeComponentAttribute($value)\n {\n return \\Illuminate\\View\\Compilers\\BladeCompiler::sanitizeComponentAttribute($value);\n }\n\n /**\n * Compile an end-once block into valid PHP.\n *\n * @return string\n * @static\n */\n public static function compileEndOnce()\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->compileEndOnce();\n }\n\n /**\n * Add a handler to be executed before echoing a given class.\n *\n * @param string|callable $class\n * @param callable|null $handler\n * @return void\n * @static\n */\n public static function stringable($class, $handler = null)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n $instance->stringable($class, $handler);\n }\n\n /**\n * Compile Blade echos into valid PHP.\n *\n * @param string $value\n * @return string\n * @static\n */\n public static function compileEchos($value)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->compileEchos($value);\n }\n\n /**\n * Apply the echo handler for the value if it exists.\n *\n * @param string $value\n * @return string\n * @static\n */\n public static function applyEchoHandler($value)\n {\n /** @var \\Illuminate\\View\\Compilers\\BladeCompiler $instance */\n return $instance->applyEchoHandler($value);\n }\n\n }\n /**\n * @method static mixed auth(\\Illuminate\\Http\\Request $request)\n * @method static mixed validAuthenticationResponse(\\Illuminate\\Http\\Request $request, mixed $result)\n * @method static void broadcast(array $channels, string $event, array $payload = [])\n * @method static array|null resolveAuthenticatedUser(\\Illuminate\\Http\\Request $request)\n * @method static void resolveAuthenticatedUserUsing(\\Closure $callback)\n * @method static \\Illuminate\\Broadcasting\\Broadcasters\\Broadcaster channel(\\Illuminate\\Contracts\\Broadcasting\\HasBroadcastChannel|string $channel, callable|string $callback, array $options = [])\n * @method static \\Illuminate\\Support\\Collection getChannels()\n * @see \\Illuminate\\Broadcasting\\BroadcastManager\n * @see \\Illuminate\\Broadcasting\\Broadcasters\\Broadcaster\n */\n class Broadcast {\n /**\n * Register the routes for handling broadcast channel authentication and sockets.\n *\n * @param array|null $attributes\n * @return void\n * @static\n */\n public static function routes($attributes = null)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n $instance->routes($attributes);\n }\n\n /**\n * Register the routes for handling broadcast user authentication.\n *\n * @param array|null $attributes\n * @return void\n * @static\n */\n public static function userRoutes($attributes = null)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n $instance->userRoutes($attributes);\n }\n\n /**\n * Register the routes for handling broadcast authentication and sockets.\n * \n * Alias of \"routes\" method.\n *\n * @param array|null $attributes\n * @return void\n * @static\n */\n public static function channelRoutes($attributes = null)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n $instance->channelRoutes($attributes);\n }\n\n /**\n * Get the socket ID for the given request.\n *\n * @param \\Illuminate\\Http\\Request|null $request\n * @return string|null\n * @static\n */\n public static function socket($request = null)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->socket($request);\n }\n\n /**\n * Begin sending an anonymous broadcast to the given channels.\n *\n * @static\n */\n public static function on($channels)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->on($channels);\n }\n\n /**\n * Begin sending an anonymous broadcast to the given private channels.\n *\n * @static\n */\n public static function private($channel)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->private($channel);\n }\n\n /**\n * Begin sending an anonymous broadcast to the given presence channels.\n *\n * @static\n */\n public static function presence($channel)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->presence($channel);\n }\n\n /**\n * Begin broadcasting an event.\n *\n * @param mixed $event\n * @return \\Illuminate\\Broadcasting\\PendingBroadcast\n * @static\n */\n public static function event($event = null)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->event($event);\n }\n\n /**\n * Queue the given event for broadcast.\n *\n * @param mixed $event\n * @return void\n * @static\n */\n public static function queue($event)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n $instance->queue($event);\n }\n\n /**\n * Get a driver instance.\n *\n * @param string|null $driver\n * @return mixed\n * @static\n */\n public static function connection($driver = null)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->connection($driver);\n }\n\n /**\n * Get a driver instance.\n *\n * @param string|null $name\n * @return mixed\n * @static\n */\n public static function driver($name = null)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->driver($name);\n }\n\n /**\n * Get a Pusher instance for the given configuration.\n *\n * @param array $config\n * @return \\Pusher\\Pusher\n * @static\n */\n public static function pusher($config)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->pusher($config);\n }\n\n /**\n * Get an Ably instance for the given configuration.\n *\n * @param array $config\n * @return \\Ably\\AblyRest\n * @static\n */\n public static function ably($config)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->ably($config);\n }\n\n /**\n * Get the default driver name.\n *\n * @return string\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Set the default driver name.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultDriver($name)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n $instance->setDefaultDriver($name);\n }\n\n /**\n * Disconnect the given disk and remove from local cache.\n *\n * @param string|null $name\n * @return void\n * @static\n */\n public static function purge($name = null)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n $instance->purge($name);\n }\n\n /**\n * Register a custom driver creator Closure.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @return \\Illuminate\\Broadcasting\\BroadcastManager\n * @static\n */\n public static function extend($driver, $callback)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->extend($driver, $callback);\n }\n\n /**\n * Get the application instance used by the manager.\n *\n * @return \\Illuminate\\Contracts\\Foundation\\Application\n * @static\n */\n public static function getApplication()\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->getApplication();\n }\n\n /**\n * Set the application instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Foundation\\Application $app\n * @return \\Illuminate\\Broadcasting\\BroadcastManager\n * @static\n */\n public static function setApplication($app)\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->setApplication($app);\n }\n\n /**\n * Forget all of the resolved driver instances.\n *\n * @return \\Illuminate\\Broadcasting\\BroadcastManager\n * @static\n */\n public static function forgetDrivers()\n {\n /** @var \\Illuminate\\Broadcasting\\BroadcastManager $instance */\n return $instance->forgetDrivers();\n }\n\n }\n /**\n * @see \\Illuminate\\Bus\\Dispatcher\n * @see \\Illuminate\\Support\\Testing\\Fakes\\BusFake\n */\n class Bus {\n /**\n * Dispatch a command to its appropriate handler.\n *\n * @param mixed $command\n * @return mixed\n * @static\n */\n public static function dispatch($command)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->dispatch($command);\n }\n\n /**\n * Dispatch a command to its appropriate handler in the current process.\n * \n * Queueable jobs will be dispatched to the \"sync\" queue.\n *\n * @param mixed $command\n * @param mixed $handler\n * @return mixed\n * @static\n */\n public static function dispatchSync($command, $handler = null)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->dispatchSync($command, $handler);\n }\n\n /**\n * Dispatch a command to its appropriate handler in the current process without using the synchronous queue.\n *\n * @param mixed $command\n * @param mixed $handler\n * @return mixed\n * @static\n */\n public static function dispatchNow($command, $handler = null)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->dispatchNow($command, $handler);\n }\n\n /**\n * Attempt to find the batch with the given ID.\n *\n * @param string $batchId\n * @return \\Illuminate\\Bus\\Batch|null\n * @static\n */\n public static function findBatch($batchId)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->findBatch($batchId);\n }\n\n /**\n * Create a new batch of queueable jobs.\n *\n * @param \\Illuminate\\Support\\Collection|mixed $jobs\n * @return \\Illuminate\\Bus\\PendingBatch\n * @static\n */\n public static function batch($jobs)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->batch($jobs);\n }\n\n /**\n * Create a new chain of queueable jobs.\n *\n * @param \\Illuminate\\Support\\Collection|array|null $jobs\n * @return \\Illuminate\\Foundation\\Bus\\PendingChain\n * @static\n */\n public static function chain($jobs = null)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->chain($jobs);\n }\n\n /**\n * Determine if the given command has a handler.\n *\n * @param mixed $command\n * @return bool\n * @static\n */\n public static function hasCommandHandler($command)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->hasCommandHandler($command);\n }\n\n /**\n * Retrieve the handler for a command.\n *\n * @param mixed $command\n * @return mixed\n * @static\n */\n public static function getCommandHandler($command)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->getCommandHandler($command);\n }\n\n /**\n * Dispatch a command to its appropriate handler behind a queue.\n *\n * @param mixed $command\n * @return mixed\n * @throws \\RuntimeException\n * @static\n */\n public static function dispatchToQueue($command)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->dispatchToQueue($command);\n }\n\n /**\n * Dispatch a command to its appropriate handler after the current process.\n *\n * @param mixed $command\n * @param mixed $handler\n * @return void\n * @static\n */\n public static function dispatchAfterResponse($command, $handler = null)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n $instance->dispatchAfterResponse($command, $handler);\n }\n\n /**\n * Set the pipes through which commands should be piped before dispatching.\n *\n * @param array $pipes\n * @return \\Illuminate\\Bus\\Dispatcher\n * @static\n */\n public static function pipeThrough($pipes)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->pipeThrough($pipes);\n }\n\n /**\n * Map a command to a handler.\n *\n * @param array $map\n * @return \\Illuminate\\Bus\\Dispatcher\n * @static\n */\n public static function map($map)\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->map($map);\n }\n\n /**\n * Allow dispatching after responses.\n *\n * @return \\Illuminate\\Bus\\Dispatcher\n * @static\n */\n public static function withDispatchingAfterResponses()\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->withDispatchingAfterResponses();\n }\n\n /**\n * Disable dispatching after responses.\n *\n * @return \\Illuminate\\Bus\\Dispatcher\n * @static\n */\n public static function withoutDispatchingAfterResponses()\n {\n /** @var \\Illuminate\\Bus\\Dispatcher $instance */\n return $instance->withoutDispatchingAfterResponses();\n }\n\n /**\n * Specify the jobs that should be dispatched instead of faked.\n *\n * @param array|string $jobsToDispatch\n * @return \\Illuminate\\Support\\Testing\\Fakes\\BusFake\n * @static\n */\n public static function except($jobsToDispatch)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->except($jobsToDispatch);\n }\n\n /**\n * Assert if a job was dispatched based on a truth-test callback.\n *\n * @param string|\\Closure $command\n * @param callable|int|null $callback\n * @return void\n * @static\n */\n public static function assertDispatched($command, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertDispatched($command, $callback);\n }\n\n /**\n * Assert if a job was pushed exactly once.\n *\n * @param string|\\Closure $command\n * @param int $times\n * @return void\n * @static\n */\n public static function assertDispatchedOnce($command)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertDispatchedOnce($command);\n }\n\n /**\n * Assert if a job was pushed a number of times.\n *\n * @param string|\\Closure $command\n * @param int $times\n * @return void\n * @static\n */\n public static function assertDispatchedTimes($command, $times = 1)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertDispatchedTimes($command, $times);\n }\n\n /**\n * Determine if a job was dispatched based on a truth-test callback.\n *\n * @param string|\\Closure $command\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertNotDispatched($command, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertNotDispatched($command, $callback);\n }\n\n /**\n * Assert that no jobs were dispatched.\n *\n * @return void\n * @static\n */\n public static function assertNothingDispatched()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertNothingDispatched();\n }\n\n /**\n * Assert if a job was explicitly dispatched synchronously based on a truth-test callback.\n *\n * @param string|\\Closure $command\n * @param callable|int|null $callback\n * @return void\n * @static\n */\n public static function assertDispatchedSync($command, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertDispatchedSync($command, $callback);\n }\n\n /**\n * Assert if a job was pushed synchronously a number of times.\n *\n * @param string|\\Closure $command\n * @param int $times\n * @return void\n * @static\n */\n public static function assertDispatchedSyncTimes($command, $times = 1)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertDispatchedSyncTimes($command, $times);\n }\n\n /**\n * Determine if a job was dispatched based on a truth-test callback.\n *\n * @param string|\\Closure $command\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertNotDispatchedSync($command, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertNotDispatchedSync($command, $callback);\n }\n\n /**\n * Assert if a job was dispatched after the response was sent based on a truth-test callback.\n *\n * @param string|\\Closure $command\n * @param callable|int|null $callback\n * @return void\n * @static\n */\n public static function assertDispatchedAfterResponse($command, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertDispatchedAfterResponse($command, $callback);\n }\n\n /**\n * Assert if a job was pushed after the response was sent a number of times.\n *\n * @param string|\\Closure $command\n * @param int $times\n * @return void\n * @static\n */\n public static function assertDispatchedAfterResponseTimes($command, $times = 1)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertDispatchedAfterResponseTimes($command, $times);\n }\n\n /**\n * Determine if a job was dispatched based on a truth-test callback.\n *\n * @param string|\\Closure $command\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertNotDispatchedAfterResponse($command, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertNotDispatchedAfterResponse($command, $callback);\n }\n\n /**\n * Assert if a chain of jobs was dispatched.\n *\n * @param array $expectedChain\n * @return void\n * @static\n */\n public static function assertChained($expectedChain)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertChained($expectedChain);\n }\n\n /**\n * Assert no chained jobs was dispatched.\n *\n * @return void\n * @static\n */\n public static function assertNothingChained()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertNothingChained();\n }\n\n /**\n * Assert if a job was dispatched with an empty chain based on a truth-test callback.\n *\n * @param string|\\Closure $command\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertDispatchedWithoutChain($command, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertDispatchedWithoutChain($command, $callback);\n }\n\n /**\n * Create a new assertion about a chained batch.\n *\n * @param \\Closure $callback\n * @return \\Illuminate\\Support\\Testing\\Fakes\\ChainedBatchTruthTest\n * @static\n */\n public static function chainedBatch($callback)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->chainedBatch($callback);\n }\n\n /**\n * Assert if a batch was dispatched based on a truth-test callback.\n *\n * @param callable $callback\n * @return void\n * @static\n */\n public static function assertBatched($callback)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertBatched($callback);\n }\n\n /**\n * Assert the number of batches that have been dispatched.\n *\n * @param int $count\n * @return void\n * @static\n */\n public static function assertBatchCount($count)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertBatchCount($count);\n }\n\n /**\n * Assert that no batched jobs were dispatched.\n *\n * @return void\n * @static\n */\n public static function assertNothingBatched()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertNothingBatched();\n }\n\n /**\n * Assert that no jobs were dispatched, chained, or batched.\n *\n * @return void\n * @static\n */\n public static function assertNothingPlaced()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n $instance->assertNothingPlaced();\n }\n\n /**\n * Get all of the jobs matching a truth-test callback.\n *\n * @param string $command\n * @param callable|null $callback\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function dispatched($command, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->dispatched($command, $callback);\n }\n\n /**\n * Get all of the jobs dispatched synchronously matching a truth-test callback.\n *\n * @param string $command\n * @param callable|null $callback\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function dispatchedSync($command, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->dispatchedSync($command, $callback);\n }\n\n /**\n * Get all of the jobs dispatched after the response was sent matching a truth-test callback.\n *\n * @param string $command\n * @param callable|null $callback\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function dispatchedAfterResponse($command, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->dispatchedAfterResponse($command, $callback);\n }\n\n /**\n * Get all of the pending batches matching a truth-test callback.\n *\n * @param callable $callback\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function batched($callback)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->batched($callback);\n }\n\n /**\n * Determine if there are any stored commands for a given class.\n *\n * @param string $command\n * @return bool\n * @static\n */\n public static function hasDispatched($command)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->hasDispatched($command);\n }\n\n /**\n * Determine if there are any stored commands for a given class.\n *\n * @param string $command\n * @return bool\n * @static\n */\n public static function hasDispatchedSync($command)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->hasDispatchedSync($command);\n }\n\n /**\n * Determine if there are any stored commands for a given class.\n *\n * @param string $command\n * @return bool\n * @static\n */\n public static function hasDispatchedAfterResponse($command)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->hasDispatchedAfterResponse($command);\n }\n\n /**\n * Dispatch an empty job batch for testing.\n *\n * @param string $name\n * @return \\Illuminate\\Bus\\Batch\n * @static\n */\n public static function dispatchFakeBatch($name = '')\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->dispatchFakeBatch($name);\n }\n\n /**\n * Record the fake pending batch dispatch.\n *\n * @param \\Illuminate\\Bus\\PendingBatch $pendingBatch\n * @return \\Illuminate\\Bus\\Batch\n * @static\n */\n public static function recordPendingBatch($pendingBatch)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->recordPendingBatch($pendingBatch);\n }\n\n /**\n * Specify if commands should be serialized and restored when being batched.\n *\n * @param bool $serializeAndRestore\n * @return \\Illuminate\\Support\\Testing\\Fakes\\BusFake\n * @static\n */\n public static function serializeAndRestore($serializeAndRestore = true)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->serializeAndRestore($serializeAndRestore);\n }\n\n /**\n * Get the batches that have been dispatched.\n *\n * @return array\n * @static\n */\n public static function dispatchedBatches()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\BusFake $instance */\n return $instance->dispatchedBatches();\n }\n\n }\n /**\n * @see \\Illuminate\\Cache\\CacheManager\n * @see \\Illuminate\\Cache\\Repository\n */\n class Cache {\n /**\n * Get a cache store instance by name, wrapped in a repository.\n *\n * @param string|null $name\n * @return \\Illuminate\\Contracts\\Cache\\Repository\n * @static\n */\n public static function store($name = null)\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n return $instance->store($name);\n }\n\n /**\n * Get a cache driver instance.\n *\n * @param string|null $driver\n * @return \\Illuminate\\Contracts\\Cache\\Repository\n * @static\n */\n public static function driver($driver = null)\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n return $instance->driver($driver);\n }\n\n /**\n * Get a memoized cache driver instance.\n *\n * @param string|null $driver\n * @return \\Illuminate\\Contracts\\Cache\\Repository\n * @static\n */\n public static function memo($driver = null)\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n return $instance->memo($driver);\n }\n\n /**\n * Resolve the given store.\n *\n * @param string $name\n * @return \\Illuminate\\Contracts\\Cache\\Repository\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function resolve($name)\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n return $instance->resolve($name);\n }\n\n /**\n * Build a cache repository with the given configuration.\n *\n * @param array $config\n * @return \\Illuminate\\Cache\\Repository\n * @static\n */\n public static function build($config)\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n return $instance->build($config);\n }\n\n /**\n * Create a new cache repository with the given implementation.\n *\n * @param \\Illuminate\\Contracts\\Cache\\Store $store\n * @param array $config\n * @return \\Illuminate\\Cache\\Repository\n * @static\n */\n public static function repository($store, $config = [])\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n return $instance->repository($store, $config);\n }\n\n /**\n * Re-set the event dispatcher on all resolved cache repositories.\n *\n * @return void\n * @static\n */\n public static function refreshEventDispatcher()\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n $instance->refreshEventDispatcher();\n }\n\n /**\n * Get the default cache driver name.\n *\n * @return string\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Set the default cache driver name.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultDriver($name)\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n $instance->setDefaultDriver($name);\n }\n\n /**\n * Unset the given driver instances.\n *\n * @param array|string|null $name\n * @return \\Illuminate\\Cache\\CacheManager\n * @static\n */\n public static function forgetDriver($name = null)\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n return $instance->forgetDriver($name);\n }\n\n /**\n * Disconnect the given driver and remove from local cache.\n *\n * @param string|null $name\n * @return void\n * @static\n */\n public static function purge($name = null)\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n $instance->purge($name);\n }\n\n /**\n * Register a custom driver creator Closure.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @param-closure-this $this $callback\n * @return \\Illuminate\\Cache\\CacheManager\n * @static\n */\n public static function extend($driver, $callback)\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n return $instance->extend($driver, $callback);\n }\n\n /**\n * Set the application instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Foundation\\Application $app\n * @return \\Illuminate\\Cache\\CacheManager\n * @static\n */\n public static function setApplication($app)\n {\n /** @var \\Illuminate\\Cache\\CacheManager $instance */\n return $instance->setApplication($app);\n }\n\n /**\n * Determine if an item exists in the cache.\n *\n * @param array|string $key\n * @return bool\n * @static\n */\n public static function has($key)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->has($key);\n }\n\n /**\n * Determine if an item doesn't exist in the cache.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function missing($key)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->missing($key);\n }\n\n /**\n * Retrieve an item from the cache by key.\n *\n * @param array|string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function get($key, $default = null)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->get($key, $default);\n }\n\n /**\n * Retrieve multiple items from the cache by key.\n * \n * Items not found in the cache will have a null value.\n *\n * @param array $keys\n * @return array\n * @static\n */\n public static function many($keys)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->many($keys);\n }\n\n /**\n * Obtains multiple cache items by their unique keys.\n *\n * @return iterable\n * @param iterable<string> $keys A list of keys that can be obtained in a single operation.\n * @param mixed $default Default value to return for keys that do not exist.\n * @return iterable<string, mixed> A list of key => value pairs. Cache keys that do not exist or are stale will have $default as value.\n * @throws \\Psr\\SimpleCache\\InvalidArgumentException\n * MUST be thrown if $keys is neither an array nor a Traversable,\n * or if any of the $keys are not a legal value.\n * @static\n */\n public static function getMultiple($keys, $default = null)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->getMultiple($keys, $default);\n }\n\n /**\n * Retrieve an item from the cache and delete it.\n *\n * @param array|string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function pull($key, $default = null)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->pull($key, $default);\n }\n\n /**\n * Store an item in the cache.\n *\n * @param array|string $key\n * @param mixed $value\n * @param \\DateTimeInterface|\\DateInterval|int|null $ttl\n * @return bool\n * @static\n */\n public static function put($key, $value, $ttl = null)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->put($key, $value, $ttl);\n }\n\n /**\n * Persists data in the cache, uniquely referenced by a key with an optional expiration TTL time.\n *\n * @return bool\n * @param string $key The key of the item to store.\n * @param mixed $value The value of the item to store, must be serializable.\n * @param null|int|\\DateInterval $ttl Optional. The TTL value of this item. If no value is sent and\n * the driver supports TTL then the library may set a default value\n * for it or let the driver take care of that.\n * @return bool True on success and false on failure.\n * @throws \\Psr\\SimpleCache\\InvalidArgumentException\n * MUST be thrown if the $key string is not a legal value.\n * @static\n */\n public static function set($key, $value, $ttl = null)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->set($key, $value, $ttl);\n }\n\n /**\n * Store multiple items in the cache for a given number of seconds.\n *\n * @param array $values\n * @param \\DateTimeInterface|\\DateInterval|int|null $ttl\n * @return bool\n * @static\n */\n public static function putMany($values, $ttl = null)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->putMany($values, $ttl);\n }\n\n /**\n * Persists a set of key => value pairs in the cache, with an optional TTL.\n *\n * @return bool\n * @param iterable $values A list of key => value pairs for a multiple-set operation.\n * @param null|int|\\DateInterval $ttl Optional. The TTL value of this item. If no value is sent and\n * the driver supports TTL then the library may set a default value\n * for it or let the driver take care of that.\n * @return bool True on success and false on failure.\n * @throws \\Psr\\SimpleCache\\InvalidArgumentException\n * MUST be thrown if $values is neither an array nor a Traversable,\n * or if any of the $values are not a legal value.\n * @static\n */\n public static function setMultiple($values, $ttl = null)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->setMultiple($values, $ttl);\n }\n\n /**\n * Store an item in the cache if the key does not exist.\n *\n * @param string $key\n * @param mixed $value\n * @param \\DateTimeInterface|\\DateInterval|int|null $ttl\n * @return bool\n * @static\n */\n public static function add($key, $value, $ttl = null)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->add($key, $value, $ttl);\n }\n\n /**\n * Increment the value of an item in the cache.\n *\n * @param string $key\n * @param mixed $value\n * @return int|bool\n * @static\n */\n public static function increment($key, $value = 1)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->increment($key, $value);\n }\n\n /**\n * Decrement the value of an item in the cache.\n *\n * @param string $key\n * @param mixed $value\n * @return int|bool\n * @static\n */\n public static function decrement($key, $value = 1)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->decrement($key, $value);\n }\n\n /**\n * Store an item in the cache indefinitely.\n *\n * @param string $key\n * @param mixed $value\n * @return bool\n * @static\n */\n public static function forever($key, $value)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->forever($key, $value);\n }\n\n /**\n * Get an item from the cache, or execute the given Closure and store the result.\n *\n * @template TCacheValue\n * @param string $key\n * @param \\Closure|\\DateTimeInterface|\\DateInterval|int|null $ttl\n * @param \\Closure(): TCacheValue $callback\n * @return TCacheValue\n * @static\n */\n public static function remember($key, $ttl, $callback)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->remember($key, $ttl, $callback);\n }\n\n /**\n * Get an item from the cache, or execute the given Closure and store the result forever.\n *\n * @template TCacheValue\n * @param string $key\n * @param \\Closure(): TCacheValue $callback\n * @return TCacheValue\n * @static\n */\n public static function sear($key, $callback)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->sear($key, $callback);\n }\n\n /**\n * Get an item from the cache, or execute the given Closure and store the result forever.\n *\n * @template TCacheValue\n * @param string $key\n * @param \\Closure(): TCacheValue $callback\n * @return TCacheValue\n * @static\n */\n public static function rememberForever($key, $callback)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->rememberForever($key, $callback);\n }\n\n /**\n * Retrieve an item from the cache by key, refreshing it in the background if it is stale.\n *\n * @template TCacheValue\n * @param string $key\n * @param array{ 0: \\DateTimeInterface|\\DateInterval|int, 1: \\DateTimeInterface|\\DateInterval|int } $ttl\n * @param (callable(): TCacheValue) $callback\n * @param array{ seconds?: int, owner?: string }|null $lock\n * @param bool $alwaysDefer\n * @return TCacheValue\n * @static\n */\n public static function flexible($key, $ttl, $callback, $lock = null, $alwaysDefer = false)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->flexible($key, $ttl, $callback, $lock, $alwaysDefer);\n }\n\n /**\n * Remove an item from the cache.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function forget($key)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->forget($key);\n }\n\n /**\n * Delete an item from the cache by its unique key.\n *\n * @return bool\n * @param string $key The unique cache key of the item to delete.\n * @return bool True if the item was successfully removed. False if there was an error.\n * @throws \\Psr\\SimpleCache\\InvalidArgumentException\n * MUST be thrown if the $key string is not a legal value.\n * @static\n */\n public static function delete($key)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->delete($key);\n }\n\n /**\n * Deletes multiple cache items in a single operation.\n *\n * @return bool\n * @param iterable<string> $keys A list of string-based keys to be deleted.\n * @return bool True if the items were successfully removed. False if there was an error.\n * @throws \\Psr\\SimpleCache\\InvalidArgumentException\n * MUST be thrown if $keys is neither an array nor a Traversable,\n * or if any of the $keys are not a legal value.\n * @static\n */\n public static function deleteMultiple($keys)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->deleteMultiple($keys);\n }\n\n /**\n * Wipes clean the entire cache's keys.\n *\n * @return bool\n * @return bool True on success and false on failure.\n * @static\n */\n public static function clear()\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->clear();\n }\n\n /**\n * Begin executing a new tags operation if the store supports it.\n *\n * @param mixed $names\n * @return \\Illuminate\\Cache\\TaggedCache\n * @throws \\BadMethodCallException\n * @static\n */\n public static function tags($names)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->tags($names);\n }\n\n /**\n * Get the name of the cache store.\n *\n * @return string|null\n * @static\n */\n public static function getName()\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->getName();\n }\n\n /**\n * Determine if the current store supports tags.\n *\n * @return bool\n * @static\n */\n public static function supportsTags()\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->supportsTags();\n }\n\n /**\n * Get the default cache time.\n *\n * @return int|null\n * @static\n */\n public static function getDefaultCacheTime()\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->getDefaultCacheTime();\n }\n\n /**\n * Set the default cache time in seconds.\n *\n * @param int|null $seconds\n * @return \\Illuminate\\Cache\\Repository\n * @static\n */\n public static function setDefaultCacheTime($seconds)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->setDefaultCacheTime($seconds);\n }\n\n /**\n * Get the cache store implementation.\n *\n * @return \\Illuminate\\Contracts\\Cache\\Store\n * @static\n */\n public static function getStore()\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->getStore();\n }\n\n /**\n * Set the cache store implementation.\n *\n * @param \\Illuminate\\Contracts\\Cache\\Store $store\n * @return static\n * @static\n */\n public static function setStore($store)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->setStore($store);\n }\n\n /**\n * Get the event dispatcher instance.\n *\n * @return \\Illuminate\\Contracts\\Events\\Dispatcher|null\n * @static\n */\n public static function getEventDispatcher()\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->getEventDispatcher();\n }\n\n /**\n * Set the event dispatcher instance.\n *\n * @param \\Illuminate\\Contracts\\Events\\Dispatcher $events\n * @return void\n * @static\n */\n public static function setEventDispatcher($events)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n $instance->setEventDispatcher($events);\n }\n\n /**\n * Determine if a cached value exists.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function offsetExists($key)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->offsetExists($key);\n }\n\n /**\n * Retrieve an item from the cache by key.\n *\n * @param string $key\n * @return mixed\n * @static\n */\n public static function offsetGet($key)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->offsetGet($key);\n }\n\n /**\n * Store an item in the cache for the default time.\n *\n * @param string $key\n * @param mixed $value\n * @return void\n * @static\n */\n public static function offsetSet($key, $value)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n $instance->offsetSet($key, $value);\n }\n\n /**\n * Remove an item from the cache.\n *\n * @param string $key\n * @return void\n * @static\n */\n public static function offsetUnset($key)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n $instance->offsetUnset($key);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Cache\\Repository::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Cache\\Repository::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Cache\\Repository::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Cache\\Repository::flushMacros();\n }\n\n /**\n * Dynamically handle calls to the class.\n *\n * @param string $method\n * @param array $parameters\n * @return mixed\n * @throws \\BadMethodCallException\n * @static\n */\n public static function macroCall($method, $parameters)\n {\n /** @var \\Illuminate\\Cache\\Repository $instance */\n return $instance->macroCall($method, $parameters);\n }\n\n /**\n * Get a lock instance.\n *\n * @param string $name\n * @param int $seconds\n * @param string|null $owner\n * @return \\Illuminate\\Contracts\\Cache\\Lock\n * @static\n */\n public static function lock($name, $seconds = 0, $owner = null)\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n return $instance->lock($name, $seconds, $owner);\n }\n\n /**\n * Restore a lock instance using the owner identifier.\n *\n * @param string $name\n * @param string $owner\n * @return \\Illuminate\\Contracts\\Cache\\Lock\n * @static\n */\n public static function restoreLock($name, $owner)\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n return $instance->restoreLock($name, $owner);\n }\n\n /**\n * Remove all items from the cache.\n *\n * @return bool\n * @static\n */\n public static function flush()\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n return $instance->flush();\n }\n\n /**\n * Remove all expired tag set entries.\n *\n * @return void\n * @static\n */\n public static function flushStaleTags()\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n $instance->flushStaleTags();\n }\n\n /**\n * Get the Redis connection instance.\n *\n * @return \\Illuminate\\Redis\\Connections\\Connection\n * @static\n */\n public static function connection()\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n return $instance->connection();\n }\n\n /**\n * Get the Redis connection instance that should be used to manage locks.\n *\n * @return \\Illuminate\\Redis\\Connections\\Connection\n * @static\n */\n public static function lockConnection()\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n return $instance->lockConnection();\n }\n\n /**\n * Specify the name of the connection that should be used to store data.\n *\n * @param string $connection\n * @return void\n * @static\n */\n public static function setConnection($connection)\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n $instance->setConnection($connection);\n }\n\n /**\n * Specify the name of the connection that should be used to manage locks.\n *\n * @param string $connection\n * @return \\Illuminate\\Cache\\RedisStore\n * @static\n */\n public static function setLockConnection($connection)\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n return $instance->setLockConnection($connection);\n }\n\n /**\n * Get the Redis database instance.\n *\n * @return \\Illuminate\\Contracts\\Redis\\Factory\n * @static\n */\n public static function getRedis()\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n return $instance->getRedis();\n }\n\n /**\n * Get the cache key prefix.\n *\n * @return string\n * @static\n */\n public static function getPrefix()\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n return $instance->getPrefix();\n }\n\n /**\n * Set the cache key prefix.\n *\n * @param string $prefix\n * @return void\n * @static\n */\n public static function setPrefix($prefix)\n {\n /** @var \\Illuminate\\Cache\\RedisStore $instance */\n $instance->setPrefix($prefix);\n }\n\n }\n /**\n * @method static array run(\\Closure|array $tasks)\n * @method static \\Illuminate\\Support\\Defer\\DeferredCallback defer(\\Closure|array $tasks)\n * @see \\Illuminate\\Concurrency\\ConcurrencyManager\n */\n class Concurrency {\n /**\n * Get a driver instance by name.\n *\n * @param string|null $name\n * @return mixed\n * @static\n */\n public static function driver($name = null)\n {\n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n return $instance->driver($name);\n }\n\n /**\n * Create an instance of the process concurrency driver.\n *\n * @param array $config\n * @return \\Illuminate\\Concurrency\\ProcessDriver\n * @static\n */\n public static function createProcessDriver($config)\n {\n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n return $instance->createProcessDriver($config);\n }\n\n /**\n * Create an instance of the fork concurrency driver.\n *\n * @param array $config\n * @return \\Illuminate\\Concurrency\\ForkDriver\n * @throws \\RuntimeException\n * @static\n */\n public static function createForkDriver($config)\n {\n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n return $instance->createForkDriver($config);\n }\n\n /**\n * Create an instance of the sync concurrency driver.\n *\n * @param array $config\n * @return \\Illuminate\\Concurrency\\SyncDriver\n * @static\n */\n public static function createSyncDriver($config)\n {\n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n return $instance->createSyncDriver($config);\n }\n\n /**\n * Get the default instance name.\n *\n * @return string\n * @static\n */\n public static function getDefaultInstance()\n {\n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n return $instance->getDefaultInstance();\n }\n\n /**\n * Set the default instance name.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultInstance($name)\n {\n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n $instance->setDefaultInstance($name);\n }\n\n /**\n * Get the instance specific configuration.\n *\n * @param string $name\n * @return array\n * @static\n */\n public static function getInstanceConfig($name)\n {\n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n return $instance->getInstanceConfig($name);\n }\n\n /**\n * Get an instance by name.\n *\n * @param string|null $name\n * @return mixed\n * @static\n */\n public static function instance($name = null)\n {\n //Method inherited from \\Illuminate\\Support\\MultipleInstanceManager \n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n return $instance->instance($name);\n }\n\n /**\n * Unset the given instances.\n *\n * @param array|string|null $name\n * @return \\Illuminate\\Concurrency\\ConcurrencyManager\n * @static\n */\n public static function forgetInstance($name = null)\n {\n //Method inherited from \\Illuminate\\Support\\MultipleInstanceManager \n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n return $instance->forgetInstance($name);\n }\n\n /**\n * Disconnect the given instance and remove from local cache.\n *\n * @param string|null $name\n * @return void\n * @static\n */\n public static function purge($name = null)\n {\n //Method inherited from \\Illuminate\\Support\\MultipleInstanceManager \n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n $instance->purge($name);\n }\n\n /**\n * Register a custom instance creator Closure.\n *\n * @param string $name\n * @param \\Closure $callback\n * @param-closure-this $this $callback\n * @return \\Illuminate\\Concurrency\\ConcurrencyManager\n * @static\n */\n public static function extend($name, $callback)\n {\n //Method inherited from \\Illuminate\\Support\\MultipleInstanceManager \n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n return $instance->extend($name, $callback);\n }\n\n /**\n * Set the application instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Foundation\\Application $app\n * @return \\Illuminate\\Concurrency\\ConcurrencyManager\n * @static\n */\n public static function setApplication($app)\n {\n //Method inherited from \\Illuminate\\Support\\MultipleInstanceManager \n /** @var \\Illuminate\\Concurrency\\ConcurrencyManager $instance */\n return $instance->setApplication($app);\n }\n\n }\n /**\n * @see \\Illuminate\\Config\\Repository\n */\n class Config {\n /**\n * Determine if the given configuration value exists.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function has($key)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->has($key);\n }\n\n /**\n * Get the specified configuration value.\n *\n * @param array|string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function get($key, $default = null)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->get($key, $default);\n }\n\n /**\n * Get many configuration values.\n *\n * @param array<string|int,mixed> $keys\n * @return array<string,mixed>\n * @static\n */\n public static function getMany($keys)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->getMany($keys);\n }\n\n /**\n * Get the specified string configuration value.\n *\n * @param string $key\n * @param (\\Closure():(string|null))|string|null $default\n * @return string\n * @static\n */\n public static function string($key, $default = null)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->string($key, $default);\n }\n\n /**\n * Get the specified integer configuration value.\n *\n * @param string $key\n * @param (\\Closure():(int|null))|int|null $default\n * @return int\n * @static\n */\n public static function integer($key, $default = null)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->integer($key, $default);\n }\n\n /**\n * Get the specified float configuration value.\n *\n * @param string $key\n * @param (\\Closure():(float|null))|float|null $default\n * @return float\n * @static\n */\n public static function float($key, $default = null)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->float($key, $default);\n }\n\n /**\n * Get the specified boolean configuration value.\n *\n * @param string $key\n * @param (\\Closure():(bool|null))|bool|null $default\n * @return bool\n * @static\n */\n public static function boolean($key, $default = null)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->boolean($key, $default);\n }\n\n /**\n * Get the specified array configuration value.\n *\n * @param string $key\n * @param (\\Closure():(array<array-key, mixed>|null))|array<array-key, mixed>|null $default\n * @return array<array-key, mixed>\n * @static\n */\n public static function array($key, $default = null)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->array($key, $default);\n }\n\n /**\n * Get the specified array configuration value as a collection.\n *\n * @param string $key\n * @param (\\Closure():(array<array-key, mixed>|null))|array<array-key, mixed>|null $default\n * @return Collection<array-key, mixed>\n * @static\n */\n public static function collection($key, $default = null)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->collection($key, $default);\n }\n\n /**\n * Set a given configuration value.\n *\n * @param array|string $key\n * @param mixed $value\n * @return void\n * @static\n */\n public static function set($key, $value = null)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n $instance->set($key, $value);\n }\n\n /**\n * Prepend a value onto an array configuration value.\n *\n * @param string $key\n * @param mixed $value\n * @return void\n * @static\n */\n public static function prepend($key, $value)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n $instance->prepend($key, $value);\n }\n\n /**\n * Push a value onto an array configuration value.\n *\n * @param string $key\n * @param mixed $value\n * @return void\n * @static\n */\n public static function push($key, $value)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n $instance->push($key, $value);\n }\n\n /**\n * Get all of the configuration items for the application.\n *\n * @return array\n * @static\n */\n public static function all()\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->all();\n }\n\n /**\n * Determine if the given configuration option exists.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function offsetExists($key)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->offsetExists($key);\n }\n\n /**\n * Get a configuration option.\n *\n * @param string $key\n * @return mixed\n * @static\n */\n public static function offsetGet($key)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n return $instance->offsetGet($key);\n }\n\n /**\n * Set a configuration option.\n *\n * @param string $key\n * @param mixed $value\n * @return void\n * @static\n */\n public static function offsetSet($key, $value)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n $instance->offsetSet($key, $value);\n }\n\n /**\n * Unset a configuration option.\n *\n * @param string $key\n * @return void\n * @static\n */\n public static function offsetUnset($key)\n {\n /** @var \\Illuminate\\Config\\Repository $instance */\n $instance->offsetUnset($key);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Config\\Repository::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Config\\Repository::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Config\\Repository::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Config\\Repository::flushMacros();\n }\n\n }\n /**\n * @see \\Illuminate\\Log\\Context\\Repository\n */\n class Context {\n /**\n * Determine if the given key exists.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function has($key)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->has($key);\n }\n\n /**\n * Determine if the given key is missing.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function missing($key)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->missing($key);\n }\n\n /**\n * Determine if the given key exists within the hidden context data.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function hasHidden($key)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->hasHidden($key);\n }\n\n /**\n * Determine if the given key is missing within the hidden context data.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function missingHidden($key)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->missingHidden($key);\n }\n\n /**\n * Retrieve all the context data.\n *\n * @return array<string, mixed>\n * @static\n */\n public static function all()\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->all();\n }\n\n /**\n * Retrieve all the hidden context data.\n *\n * @return array<string, mixed>\n * @static\n */\n public static function allHidden()\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->allHidden();\n }\n\n /**\n * Retrieve the given key's value.\n *\n * @param string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function get($key, $default = null)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->get($key, $default);\n }\n\n /**\n * Retrieve the given key's hidden value.\n *\n * @param string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function getHidden($key, $default = null)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->getHidden($key, $default);\n }\n\n /**\n * Retrieve the given key's value and then forget it.\n *\n * @param string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function pull($key, $default = null)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->pull($key, $default);\n }\n\n /**\n * Retrieve the given key's hidden value and then forget it.\n *\n * @param string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function pullHidden($key, $default = null)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->pullHidden($key, $default);\n }\n\n /**\n * Retrieve only the values of the given keys.\n *\n * @param array<int, string> $keys\n * @return array<string, mixed>\n * @static\n */\n public static function only($keys)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->only($keys);\n }\n\n /**\n * Retrieve only the hidden values of the given keys.\n *\n * @param array<int, string> $keys\n * @return array<string, mixed>\n * @static\n */\n public static function onlyHidden($keys)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->onlyHidden($keys);\n }\n\n /**\n * Retrieve all values except those with the given keys.\n *\n * @param array<int, string> $keys\n * @return array<string, mixed>\n * @static\n */\n public static function except($keys)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->except($keys);\n }\n\n /**\n * Retrieve all hidden values except those with the given keys.\n *\n * @param array<int, string> $keys\n * @return array<string, mixed>\n * @static\n */\n public static function exceptHidden($keys)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->exceptHidden($keys);\n }\n\n /**\n * Add a context value.\n *\n * @param string|array<string, mixed> $key\n * @param mixed $value\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function add($key, $value = null)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->add($key, $value);\n }\n\n /**\n * Add a hidden context value.\n *\n * @param string|array<string, mixed> $key\n * @param mixed $value\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function addHidden($key, $value = null)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->addHidden($key, $value);\n }\n\n /**\n * Add a context value if it does not exist yet, and return the value.\n *\n * @param string $key\n * @param mixed $value\n * @return mixed\n * @static\n */\n public static function remember($key, $value)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->remember($key, $value);\n }\n\n /**\n * Add a hidden context value if it does not exist yet, and return the value.\n *\n * @param string $key\n * @param mixed $value\n * @return mixed\n * @static\n */\n public static function rememberHidden($key, $value)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->rememberHidden($key, $value);\n }\n\n /**\n * Forget the given context key.\n *\n * @param string|array<int, string> $key\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function forget($key)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->forget($key);\n }\n\n /**\n * Forget the given hidden context key.\n *\n * @param string|array<int, string> $key\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function forgetHidden($key)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->forgetHidden($key);\n }\n\n /**\n * Add a context value if it does not exist yet.\n *\n * @param string $key\n * @param mixed $value\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function addIf($key, $value)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->addIf($key, $value);\n }\n\n /**\n * Add a hidden context value if it does not exist yet.\n *\n * @param string $key\n * @param mixed $value\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function addHiddenIf($key, $value)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->addHiddenIf($key, $value);\n }\n\n /**\n * Push the given values onto the key's stack.\n *\n * @param string $key\n * @param mixed $values\n * @return \\Illuminate\\Log\\Context\\Repository\n * @throws \\RuntimeException\n * @static\n */\n public static function push($key, ...$values)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->push($key, ...$values);\n }\n\n /**\n * Pop the latest value from the key's stack.\n *\n * @param string $key\n * @return mixed\n * @throws \\RuntimeException\n * @static\n */\n public static function pop($key)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->pop($key);\n }\n\n /**\n * Push the given hidden values onto the key's stack.\n *\n * @param string $key\n * @param mixed $values\n * @return \\Illuminate\\Log\\Context\\Repository\n * @throws \\RuntimeException\n * @static\n */\n public static function pushHidden($key, ...$values)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->pushHidden($key, ...$values);\n }\n\n /**\n * Pop the latest hidden value from the key's stack.\n *\n * @param string $key\n * @return mixed\n * @throws \\RuntimeException\n * @static\n */\n public static function popHidden($key)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->popHidden($key);\n }\n\n /**\n * Increment a context counter.\n *\n * @param string $key\n * @param int $amount\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function increment($key, $amount = 1)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->increment($key, $amount);\n }\n\n /**\n * Decrement a context counter.\n *\n * @param string $key\n * @param int $amount\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function decrement($key, $amount = 1)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->decrement($key, $amount);\n }\n\n /**\n * Determine if the given value is in the given stack.\n *\n * @param string $key\n * @param mixed $value\n * @param bool $strict\n * @return bool\n * @throws \\RuntimeException\n * @static\n */\n public static function stackContains($key, $value, $strict = false)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->stackContains($key, $value, $strict);\n }\n\n /**\n * Determine if the given value is in the given hidden stack.\n *\n * @param string $key\n * @param mixed $value\n * @param bool $strict\n * @return bool\n * @throws \\RuntimeException\n * @static\n */\n public static function hiddenStackContains($key, $value, $strict = false)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->hiddenStackContains($key, $value, $strict);\n }\n\n /**\n * Run the callback function with the given context values and restore the original context state when complete.\n *\n * @param callable $callback\n * @param array<string, mixed> $data\n * @param array<string, mixed> $hidden\n * @return mixed\n * @throws \\Throwable\n * @static\n */\n public static function scope($callback, $data = [], $hidden = [])\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->scope($callback, $data, $hidden);\n }\n\n /**\n * Determine if the repository is empty.\n *\n * @return bool\n * @static\n */\n public static function isEmpty()\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->isEmpty();\n }\n\n /**\n * Execute the given callback when context is about to be dehydrated.\n *\n * @param callable $callback\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function dehydrating($callback)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->dehydrating($callback);\n }\n\n /**\n * Execute the given callback when context has been hydrated.\n *\n * @param callable $callback\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function hydrated($callback)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->hydrated($callback);\n }\n\n /**\n * Handle unserialize exceptions using the given callback.\n *\n * @param callable|null $callback\n * @return static\n * @static\n */\n public static function handleUnserializeExceptionsUsing($callback)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->handleUnserializeExceptionsUsing($callback);\n }\n\n /**\n * Flush all context data.\n *\n * @return \\Illuminate\\Log\\Context\\Repository\n * @static\n */\n public static function flush()\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->flush();\n }\n\n /**\n * Dehydrate the context data.\n *\n * @internal\n * @return \\Illuminate\\Log\\Context\\?array\n * @static\n */\n public static function dehydrate()\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->dehydrate();\n }\n\n /**\n * Hydrate the context instance.\n *\n * @internal\n * @param \\Illuminate\\Log\\Context\\?array $context\n * @return \\Illuminate\\Log\\Context\\Repository\n * @throws \\RuntimeException\n * @static\n */\n public static function hydrate($context)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->hydrate($context);\n }\n\n /**\n * Apply the callback if the given \"value\" is (or resolves to) truthy.\n *\n * @template TWhenParameter\n * @template TWhenReturnType\n * @param (\\Closure($this): TWhenParameter)|TWhenParameter|null $value\n * @param (callable($this, TWhenParameter): TWhenReturnType)|null $callback\n * @param (callable($this, TWhenParameter): TWhenReturnType)|null $default\n * @return $this|TWhenReturnType\n * @static\n */\n public static function when($value = null, $callback = null, $default = null)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->when($value, $callback, $default);\n }\n\n /**\n * Apply the callback if the given \"value\" is (or resolves to) falsy.\n *\n * @template TUnlessParameter\n * @template TUnlessReturnType\n * @param (\\Closure($this): TUnlessParameter)|TUnlessParameter|null $value\n * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $callback\n * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $default\n * @return $this|TUnlessReturnType\n * @static\n */\n public static function unless($value = null, $callback = null, $default = null)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->unless($value, $callback, $default);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Log\\Context\\Repository::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Log\\Context\\Repository::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Log\\Context\\Repository::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Log\\Context\\Repository::flushMacros();\n }\n\n /**\n * Restore the model from the model identifier instance.\n *\n * @param \\Illuminate\\Contracts\\Database\\ModelIdentifier $value\n * @return \\Illuminate\\Database\\Eloquent\\Model\n * @static\n */\n public static function restoreModel($value)\n {\n /** @var \\Illuminate\\Log\\Context\\Repository $instance */\n return $instance->restoreModel($value);\n }\n\n }\n /**\n * @see \\Illuminate\\Cookie\\CookieJar\n */\n class Cookie {\n /**\n * Create a new cookie instance.\n *\n * @param string $name\n * @param string $value\n * @param int $minutes\n * @param string|null $path\n * @param string|null $domain\n * @param bool|null $secure\n * @param bool $httpOnly\n * @param bool $raw\n * @param string|null $sameSite\n * @return \\Symfony\\Component\\HttpFoundation\\Cookie\n * @static\n */\n public static function make($name, $value, $minutes = 0, $path = null, $domain = null, $secure = null, $httpOnly = true, $raw = false, $sameSite = null)\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n return $instance->make($name, $value, $minutes, $path, $domain, $secure, $httpOnly, $raw, $sameSite);\n }\n\n /**\n * Create a cookie that lasts \"forever\" (400 days).\n *\n * @param string $name\n * @param string $value\n * @param string|null $path\n * @param string|null $domain\n * @param bool|null $secure\n * @param bool $httpOnly\n * @param bool $raw\n * @param string|null $sameSite\n * @return \\Symfony\\Component\\HttpFoundation\\Cookie\n * @static\n */\n public static function forever($name, $value, $path = null, $domain = null, $secure = null, $httpOnly = true, $raw = false, $sameSite = null)\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n return $instance->forever($name, $value, $path, $domain, $secure, $httpOnly, $raw, $sameSite);\n }\n\n /**\n * Expire the given cookie.\n *\n * @param string $name\n * @param string|null $path\n * @param string|null $domain\n * @return \\Symfony\\Component\\HttpFoundation\\Cookie\n * @static\n */\n public static function forget($name, $path = null, $domain = null)\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n return $instance->forget($name, $path, $domain);\n }\n\n /**\n * Determine if a cookie has been queued.\n *\n * @param string $key\n * @param string|null $path\n * @return bool\n * @static\n */\n public static function hasQueued($key, $path = null)\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n return $instance->hasQueued($key, $path);\n }\n\n /**\n * Get a queued cookie instance.\n *\n * @param string $key\n * @param mixed $default\n * @param string|null $path\n * @return \\Symfony\\Component\\HttpFoundation\\Cookie|null\n * @static\n */\n public static function queued($key, $default = null, $path = null)\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n return $instance->queued($key, $default, $path);\n }\n\n /**\n * Queue a cookie to send with the next response.\n *\n * @param mixed $parameters\n * @return void\n * @static\n */\n public static function queue(...$parameters)\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n $instance->queue(...$parameters);\n }\n\n /**\n * Queue a cookie to expire with the next response.\n *\n * @param string $name\n * @param string|null $path\n * @param string|null $domain\n * @return void\n * @static\n */\n public static function expire($name, $path = null, $domain = null)\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n $instance->expire($name, $path, $domain);\n }\n\n /**\n * Remove a cookie from the queue.\n *\n * @param string $name\n * @param string|null $path\n * @return void\n * @static\n */\n public static function unqueue($name, $path = null)\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n $instance->unqueue($name, $path);\n }\n\n /**\n * Set the default path and domain for the jar.\n *\n * @param string $path\n * @param string|null $domain\n * @param bool|null $secure\n * @param string|null $sameSite\n * @return \\Illuminate\\Cookie\\CookieJar\n * @static\n */\n public static function setDefaultPathAndDomain($path, $domain, $secure = false, $sameSite = null)\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n return $instance->setDefaultPathAndDomain($path, $domain, $secure, $sameSite);\n }\n\n /**\n * Get the cookies which have been queued for the next request.\n *\n * @return \\Symfony\\Component\\HttpFoundation\\Cookie[]\n * @static\n */\n public static function getQueuedCookies()\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n return $instance->getQueuedCookies();\n }\n\n /**\n * Flush the cookies which have been queued for the next request.\n *\n * @return \\Illuminate\\Cookie\\CookieJar\n * @static\n */\n public static function flushQueuedCookies()\n {\n /** @var \\Illuminate\\Cookie\\CookieJar $instance */\n return $instance->flushQueuedCookies();\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Cookie\\CookieJar::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Cookie\\CookieJar::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Cookie\\CookieJar::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Cookie\\CookieJar::flushMacros();\n }\n\n }\n /**\n * @see \\Illuminate\\Encryption\\Encrypter\n */\n class Crypt {\n /**\n * Determine if the given key and cipher combination is valid.\n *\n * @param string $key\n * @param string $cipher\n * @return bool\n * @static\n */\n public static function supported($key, $cipher)\n {\n return \\Illuminate\\Encryption\\Encrypter::supported($key, $cipher);\n }\n\n /**\n * Create a new encryption key for the given cipher.\n *\n * @param string $cipher\n * @return string\n * @static\n */\n public static function generateKey($cipher)\n {\n return \\Illuminate\\Encryption\\Encrypter::generateKey($cipher);\n }\n\n /**\n * Encrypt the given value.\n *\n * @param mixed $value\n * @param bool $serialize\n * @return string\n * @throws \\Illuminate\\Contracts\\Encryption\\EncryptException\n * @static\n */\n public static function encrypt($value, $serialize = true)\n {\n /** @var \\Illuminate\\Encryption\\Encrypter $instance */\n return $instance->encrypt($value, $serialize);\n }\n\n /**\n * Encrypt a string without serialization.\n *\n * @param string $value\n * @return string\n * @throws \\Illuminate\\Contracts\\Encryption\\EncryptException\n * @static\n */\n public static function encryptString($value)\n {\n /** @var \\Illuminate\\Encryption\\Encrypter $instance */\n return $instance->encryptString($value);\n }\n\n /**\n * Decrypt the given value.\n *\n * @param string $payload\n * @param bool $unserialize\n * @return mixed\n * @throws \\Illuminate\\Contracts\\Encryption\\DecryptException\n * @static\n */\n public static function decrypt($payload, $unserialize = true)\n {\n /** @var \\Illuminate\\Encryption\\Encrypter $instance */\n return $instance->decrypt($payload, $unserialize);\n }\n\n /**\n * Decrypt the given string without unserialization.\n *\n * @param string $payload\n * @return string\n * @throws \\Illuminate\\Contracts\\Encryption\\DecryptException\n * @static\n */\n public static function decryptString($payload)\n {\n /** @var \\Illuminate\\Encryption\\Encrypter $instance */\n return $instance->decryptString($payload);\n }\n\n /**\n * Get the encryption key that the encrypter is currently using.\n *\n * @return string\n * @static\n */\n public static function getKey()\n {\n /** @var \\Illuminate\\Encryption\\Encrypter $instance */\n return $instance->getKey();\n }\n\n /**\n * Get the current encryption key and all previous encryption keys.\n *\n * @return array\n * @static\n */\n public static function getAllKeys()\n {\n /** @var \\Illuminate\\Encryption\\Encrypter $instance */\n return $instance->getAllKeys();\n }\n\n /**\n * Get the previous encryption keys.\n *\n * @return array\n * @static\n */\n public static function getPreviousKeys()\n {\n /** @var \\Illuminate\\Encryption\\Encrypter $instance */\n return $instance->getPreviousKeys();\n }\n\n /**\n * Set the previous / legacy encryption keys that should be utilized if decryption fails.\n *\n * @param array $keys\n * @return \\Illuminate\\Encryption\\Encrypter\n * @static\n */\n public static function previousKeys($keys)\n {\n /** @var \\Illuminate\\Encryption\\Encrypter $instance */\n return $instance->previousKeys($keys);\n }\n\n }\n /**\n * @see \\Illuminate\\Database\\DatabaseManager\n */\n class DB {\n /**\n * Get a database connection instance.\n *\n * @param \\UnitEnum|string|null $name\n * @return \\Illuminate\\Database\\Connection\n * @static\n */\n public static function connection($name = null)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->connection($name);\n }\n\n /**\n * Build a database connection instance from the given configuration.\n *\n * @param array $config\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function build($config)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->build($config);\n }\n\n /**\n * Calculate the dynamic connection name for an on-demand connection based on its configuration.\n *\n * @param array $config\n * @return string\n * @static\n */\n public static function calculateDynamicConnectionName($config)\n {\n return \\Illuminate\\Database\\DatabaseManager::calculateDynamicConnectionName($config);\n }\n\n /**\n * Get a database connection instance from the given configuration.\n *\n * @param \\UnitEnum|string $name\n * @param array $config\n * @param bool $force\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function connectUsing($name, $config, $force = false)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->connectUsing($name, $config, $force);\n }\n\n /**\n * Disconnect from the given database and remove from local cache.\n *\n * @param \\UnitEnum|string|null $name\n * @return void\n * @static\n */\n public static function purge($name = null)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n $instance->purge($name);\n }\n\n /**\n * Disconnect from the given database.\n *\n * @param \\UnitEnum|string|null $name\n * @return void\n * @static\n */\n public static function disconnect($name = null)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n $instance->disconnect($name);\n }\n\n /**\n * Reconnect to the given database.\n *\n * @param \\UnitEnum|string|null $name\n * @return \\Illuminate\\Database\\Connection\n * @static\n */\n public static function reconnect($name = null)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->reconnect($name);\n }\n\n /**\n * Set the default database connection for the callback execution.\n *\n * @param \\UnitEnum|string $name\n * @param callable $callback\n * @return mixed\n * @static\n */\n public static function usingConnection($name, $callback)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->usingConnection($name, $callback);\n }\n\n /**\n * Get the default connection name.\n *\n * @return string\n * @static\n */\n public static function getDefaultConnection()\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->getDefaultConnection();\n }\n\n /**\n * Set the default connection name.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultConnection($name)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n $instance->setDefaultConnection($name);\n }\n\n /**\n * Get all of the supported drivers.\n *\n * @return string[]\n * @static\n */\n public static function supportedDrivers()\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->supportedDrivers();\n }\n\n /**\n * Get all of the drivers that are actually available.\n *\n * @return string[]\n * @static\n */\n public static function availableDrivers()\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->availableDrivers();\n }\n\n /**\n * Register an extension connection resolver.\n *\n * @param string $name\n * @param callable $resolver\n * @return void\n * @static\n */\n public static function extend($name, $resolver)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n $instance->extend($name, $resolver);\n }\n\n /**\n * Remove an extension connection resolver.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function forgetExtension($name)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n $instance->forgetExtension($name);\n }\n\n /**\n * Return all of the created connections.\n *\n * @return array<string, \\Illuminate\\Database\\Connection>\n * @static\n */\n public static function getConnections()\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->getConnections();\n }\n\n /**\n * Set the database reconnector callback.\n *\n * @param callable $reconnector\n * @return void\n * @static\n */\n public static function setReconnector($reconnector)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n $instance->setReconnector($reconnector);\n }\n\n /**\n * Set the application instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Foundation\\Application $app\n * @return \\Illuminate\\Database\\DatabaseManager\n * @static\n */\n public static function setApplication($app)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->setApplication($app);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Database\\DatabaseManager::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Database\\DatabaseManager::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Database\\DatabaseManager::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Database\\DatabaseManager::flushMacros();\n }\n\n /**\n * Dynamically handle calls to the class.\n *\n * @param string $method\n * @param array $parameters\n * @return mixed\n * @throws \\BadMethodCallException\n * @static\n */\n public static function macroCall($method, $parameters)\n {\n /** @var \\Illuminate\\Database\\DatabaseManager $instance */\n return $instance->macroCall($method, $parameters);\n }\n\n /**\n * Get a human-readable name for the given connection driver.\n *\n * @return string\n * @static\n */\n public static function getDriverTitle()\n {\n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getDriverTitle();\n }\n\n /**\n * Determine if the connected database is a MariaDB database.\n *\n * @return bool\n * @static\n */\n public static function isMaria()\n {\n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->isMaria();\n }\n\n /**\n * Get the server version for the connection.\n *\n * @return string\n * @static\n */\n public static function getServerVersion()\n {\n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getServerVersion();\n }\n\n /**\n * Get a schema builder instance for the connection.\n *\n * @return \\Illuminate\\Database\\Schema\\MariaDbBuilder\n * @static\n */\n public static function getSchemaBuilder()\n {\n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getSchemaBuilder();\n }\n\n /**\n * Get the schema state for the connection.\n *\n * @param \\Illuminate\\Filesystem\\Filesystem|null $files\n * @param callable|null $processFactory\n * @return \\Illuminate\\Database\\Schema\\MariaDbSchemaState\n * @static\n */\n public static function getSchemaState($files = null, $processFactory = null)\n {\n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getSchemaState($files, $processFactory);\n }\n\n /**\n * Run an insert statement against the database.\n *\n * @param string $query\n * @param array $bindings\n * @param string|null $sequence\n * @return bool\n * @static\n */\n public static function insert($query, $bindings = [], $sequence = null)\n {\n //Method inherited from \\Illuminate\\Database\\MySqlConnection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->insert($query, $bindings, $sequence);\n }\n\n /**\n * Get the connection's last insert ID.\n *\n * @return string|int|null\n * @static\n */\n public static function getLastInsertId()\n {\n //Method inherited from \\Illuminate\\Database\\MySqlConnection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getLastInsertId();\n }\n\n /**\n * Set the query grammar to the default implementation.\n *\n * @return void\n * @static\n */\n public static function useDefaultQueryGrammar()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->useDefaultQueryGrammar();\n }\n\n /**\n * Set the schema grammar to the default implementation.\n *\n * @return void\n * @static\n */\n public static function useDefaultSchemaGrammar()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->useDefaultSchemaGrammar();\n }\n\n /**\n * Set the query post processor to the default implementation.\n *\n * @return void\n * @static\n */\n public static function useDefaultPostProcessor()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->useDefaultPostProcessor();\n }\n\n /**\n * Begin a fluent query against a database table.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Contracts\\Database\\Query\\Expression|\\UnitEnum|string $table\n * @param string|null $as\n * @return \\Illuminate\\Database\\Query\\Builder\n * @static\n */\n public static function table($table, $as = null)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->table($table, $as);\n }\n\n /**\n * Get a new query builder instance.\n *\n * @return \\Illuminate\\Database\\Query\\Builder\n * @static\n */\n public static function query()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->query();\n }\n\n /**\n * Run a select statement and return a single result.\n *\n * @param string $query\n * @param array $bindings\n * @param bool $useReadPdo\n * @return mixed\n * @static\n */\n public static function selectOne($query, $bindings = [], $useReadPdo = true)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->selectOne($query, $bindings, $useReadPdo);\n }\n\n /**\n * Run a select statement and return the first column of the first row.\n *\n * @param string $query\n * @param array $bindings\n * @param bool $useReadPdo\n * @return mixed\n * @throws \\Illuminate\\Database\\MultipleColumnsSelectedException\n * @static\n */\n public static function scalar($query, $bindings = [], $useReadPdo = true)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->scalar($query, $bindings, $useReadPdo);\n }\n\n /**\n * Run a select statement against the database.\n *\n * @param string $query\n * @param array $bindings\n * @return array\n * @static\n */\n public static function selectFromWriteConnection($query, $bindings = [])\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->selectFromWriteConnection($query, $bindings);\n }\n\n /**\n * Run a select statement against the database.\n *\n * @param string $query\n * @param array $bindings\n * @param bool $useReadPdo\n * @return array\n * @static\n */\n public static function select($query, $bindings = [], $useReadPdo = true)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->select($query, $bindings, $useReadPdo);\n }\n\n /**\n * Run a select statement against the database and returns all of the result sets.\n *\n * @param string $query\n * @param array $bindings\n * @param bool $useReadPdo\n * @return array\n * @static\n */\n public static function selectResultSets($query, $bindings = [], $useReadPdo = true)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->selectResultSets($query, $bindings, $useReadPdo);\n }\n\n /**\n * Run a select statement against the database and returns a generator.\n *\n * @param string $query\n * @param array $bindings\n * @param bool $useReadPdo\n * @return \\Generator<int, \\stdClass>\n * @static\n */\n public static function cursor($query, $bindings = [], $useReadPdo = true)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->cursor($query, $bindings, $useReadPdo);\n }\n\n /**\n * Run an update statement against the database.\n *\n * @param string $query\n * @param array $bindings\n * @return int\n * @static\n */\n public static function update($query, $bindings = [])\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->update($query, $bindings);\n }\n\n /**\n * Run a delete statement against the database.\n *\n * @param string $query\n * @param array $bindings\n * @return int\n * @static\n */\n public static function delete($query, $bindings = [])\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->delete($query, $bindings);\n }\n\n /**\n * Execute an SQL statement and return the boolean result.\n *\n * @param string $query\n * @param array $bindings\n * @return bool\n * @static\n */\n public static function statement($query, $bindings = [])\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->statement($query, $bindings);\n }\n\n /**\n * Run an SQL statement and get the number of rows affected.\n *\n * @param string $query\n * @param array $bindings\n * @return int\n * @static\n */\n public static function affectingStatement($query, $bindings = [])\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->affectingStatement($query, $bindings);\n }\n\n /**\n * Run a raw, unprepared query against the PDO connection.\n *\n * @param string $query\n * @return bool\n * @static\n */\n public static function unprepared($query)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->unprepared($query);\n }\n\n /**\n * Get the number of open connections for the database.\n *\n * @return int|null\n * @static\n */\n public static function threadCount()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->threadCount();\n }\n\n /**\n * Execute the given callback in \"dry run\" mode.\n *\n * @param (\\Closure(\\Illuminate\\Database\\Connection): mixed) $callback\n * @return \\Illuminate\\Database\\array{query: string, bindings: array, time: float|null}[]\n * @static\n */\n public static function pretend($callback)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->pretend($callback);\n }\n\n /**\n * Execute the given callback without \"pretending\".\n *\n * @param \\Closure $callback\n * @return mixed\n * @static\n */\n public static function withoutPretending($callback)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->withoutPretending($callback);\n }\n\n /**\n * Bind values to their parameters in the given statement.\n *\n * @param \\PDOStatement $statement\n * @param array $bindings\n * @return void\n * @static\n */\n public static function bindValues($statement, $bindings)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->bindValues($statement, $bindings);\n }\n\n /**\n * Prepare the query bindings for execution.\n *\n * @param array $bindings\n * @return array\n * @static\n */\n public static function prepareBindings($bindings)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->prepareBindings($bindings);\n }\n\n /**\n * Log a query in the connection's query log.\n *\n * @param string $query\n * @param array $bindings\n * @param float|null $time\n * @return void\n * @static\n */\n public static function logQuery($query, $bindings, $time = null)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->logQuery($query, $bindings, $time);\n }\n\n /**\n * Register a callback to be invoked when the connection queries for longer than a given amount of time.\n *\n * @param \\DateTimeInterface|\\Carbon\\CarbonInterval|float|int $threshold\n * @param (callable(\\Illuminate\\Database\\Connection, \\Illuminate\\Database\\Events\\QueryExecuted): mixed) $handler\n * @return void\n * @static\n */\n public static function whenQueryingForLongerThan($threshold, $handler)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->whenQueryingForLongerThan($threshold, $handler);\n }\n\n /**\n * Allow all the query duration handlers to run again, even if they have already run.\n *\n * @return void\n * @static\n */\n public static function allowQueryDurationHandlersToRunAgain()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->allowQueryDurationHandlersToRunAgain();\n }\n\n /**\n * Get the duration of all run queries in milliseconds.\n *\n * @return float\n * @static\n */\n public static function totalQueryDuration()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->totalQueryDuration();\n }\n\n /**\n * Reset the duration of all run queries.\n *\n * @return void\n * @static\n */\n public static function resetTotalQueryDuration()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->resetTotalQueryDuration();\n }\n\n /**\n * Reconnect to the database if a PDO connection is missing.\n *\n * @return void\n * @static\n */\n public static function reconnectIfMissingConnection()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->reconnectIfMissingConnection();\n }\n\n /**\n * Register a hook to be run just before a database transaction is started.\n *\n * @param \\Closure $callback\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function beforeStartingTransaction($callback)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->beforeStartingTransaction($callback);\n }\n\n /**\n * Register a hook to be run just before a database query is executed.\n *\n * @param \\Closure $callback\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function beforeExecuting($callback)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->beforeExecuting($callback);\n }\n\n /**\n * Register a database query listener with the connection.\n *\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function listen($callback)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->listen($callback);\n }\n\n /**\n * Get a new raw query expression.\n *\n * @param mixed $value\n * @return \\Illuminate\\Contracts\\Database\\Query\\Expression\n * @static\n */\n public static function raw($value)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->raw($value);\n }\n\n /**\n * Escape a value for safe SQL embedding.\n *\n * @param string|float|int|bool|null $value\n * @param bool $binary\n * @return string\n * @static\n */\n public static function escape($value, $binary = false)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->escape($value, $binary);\n }\n\n /**\n * Determine if the database connection has modified any database records.\n *\n * @return bool\n * @static\n */\n public static function hasModifiedRecords()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->hasModifiedRecords();\n }\n\n /**\n * Indicate if any records have been modified.\n *\n * @param bool $value\n * @return void\n * @static\n */\n public static function recordsHaveBeenModified($value = true)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->recordsHaveBeenModified($value);\n }\n\n /**\n * Set the record modification state.\n *\n * @param bool $value\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setRecordModificationState($value)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setRecordModificationState($value);\n }\n\n /**\n * Reset the record modification state.\n *\n * @return void\n * @static\n */\n public static function forgetRecordModificationState()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->forgetRecordModificationState();\n }\n\n /**\n * Indicate that the connection should use the write PDO connection for reads.\n *\n * @param bool $value\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function useWriteConnectionWhenReading($value = true)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->useWriteConnectionWhenReading($value);\n }\n\n /**\n * Get the current PDO connection.\n *\n * @return \\PDO\n * @static\n */\n public static function getPdo()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getPdo();\n }\n\n /**\n * Get the current PDO connection parameter without executing any reconnect logic.\n *\n * @return \\PDO|\\Closure|null\n * @static\n */\n public static function getRawPdo()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getRawPdo();\n }\n\n /**\n * Get the current PDO connection used for reading.\n *\n * @return \\PDO\n * @static\n */\n public static function getReadPdo()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getReadPdo();\n }\n\n /**\n * Get the current read PDO connection parameter without executing any reconnect logic.\n *\n * @return \\PDO|\\Closure|null\n * @static\n */\n public static function getRawReadPdo()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getRawReadPdo();\n }\n\n /**\n * Set the PDO connection.\n *\n * @param \\PDO|\\Closure|null $pdo\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setPdo($pdo)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setPdo($pdo);\n }\n\n /**\n * Set the PDO connection used for reading.\n *\n * @param \\PDO|\\Closure|null $pdo\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setReadPdo($pdo)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setReadPdo($pdo);\n }\n\n /**\n * Get the database connection name.\n *\n * @return string|null\n * @static\n */\n public static function getName()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getName();\n }\n\n /**\n * Get the database connection full name.\n *\n * @return string|null\n * @static\n */\n public static function getNameWithReadWriteType()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getNameWithReadWriteType();\n }\n\n /**\n * Get an option from the configuration options.\n *\n * @param string|null $option\n * @return mixed\n * @static\n */\n public static function getConfig($option = null)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getConfig($option);\n }\n\n /**\n * Get the PDO driver name.\n *\n * @return string\n * @static\n */\n public static function getDriverName()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getDriverName();\n }\n\n /**\n * Get the query grammar used by the connection.\n *\n * @return \\Illuminate\\Database\\Query\\Grammars\\Grammar\n * @static\n */\n public static function getQueryGrammar()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getQueryGrammar();\n }\n\n /**\n * Set the query grammar used by the connection.\n *\n * @param \\Illuminate\\Database\\Query\\Grammars\\Grammar $grammar\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setQueryGrammar($grammar)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setQueryGrammar($grammar);\n }\n\n /**\n * Get the schema grammar used by the connection.\n *\n * @return \\Illuminate\\Database\\Schema\\Grammars\\Grammar\n * @static\n */\n public static function getSchemaGrammar()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getSchemaGrammar();\n }\n\n /**\n * Set the schema grammar used by the connection.\n *\n * @param \\Illuminate\\Database\\Schema\\Grammars\\Grammar $grammar\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setSchemaGrammar($grammar)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setSchemaGrammar($grammar);\n }\n\n /**\n * Get the query post processor used by the connection.\n *\n * @return \\Illuminate\\Database\\Query\\Processors\\Processor\n * @static\n */\n public static function getPostProcessor()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getPostProcessor();\n }\n\n /**\n * Set the query post processor used by the connection.\n *\n * @param \\Illuminate\\Database\\Query\\Processors\\Processor $processor\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setPostProcessor($processor)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setPostProcessor($processor);\n }\n\n /**\n * Get the event dispatcher used by the connection.\n *\n * @return \\Illuminate\\Contracts\\Events\\Dispatcher\n * @static\n */\n public static function getEventDispatcher()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getEventDispatcher();\n }\n\n /**\n * Set the event dispatcher instance on the connection.\n *\n * @param \\Illuminate\\Contracts\\Events\\Dispatcher $events\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setEventDispatcher($events)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setEventDispatcher($events);\n }\n\n /**\n * Unset the event dispatcher for this connection.\n *\n * @return void\n * @static\n */\n public static function unsetEventDispatcher()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->unsetEventDispatcher();\n }\n\n /**\n * Set the transaction manager instance on the connection.\n *\n * @param \\Illuminate\\Database\\DatabaseTransactionsManager $manager\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setTransactionManager($manager)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setTransactionManager($manager);\n }\n\n /**\n * Unset the transaction manager for this connection.\n *\n * @return void\n * @static\n */\n public static function unsetTransactionManager()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->unsetTransactionManager();\n }\n\n /**\n * Determine if the connection is in a \"dry run\".\n *\n * @return bool\n * @static\n */\n public static function pretending()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->pretending();\n }\n\n /**\n * Get the connection query log.\n *\n * @return \\Illuminate\\Database\\array{query: string, bindings: array, time: float|null}[]\n * @static\n */\n public static function getQueryLog()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getQueryLog();\n }\n\n /**\n * Get the connection query log with embedded bindings.\n *\n * @return array\n * @static\n */\n public static function getRawQueryLog()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getRawQueryLog();\n }\n\n /**\n * Clear the query log.\n *\n * @return void\n * @static\n */\n public static function flushQueryLog()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->flushQueryLog();\n }\n\n /**\n * Enable the query log on the connection.\n *\n * @return void\n * @static\n */\n public static function enableQueryLog()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->enableQueryLog();\n }\n\n /**\n * Disable the query log on the connection.\n *\n * @return void\n * @static\n */\n public static function disableQueryLog()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->disableQueryLog();\n }\n\n /**\n * Determine whether we're logging queries.\n *\n * @return bool\n * @static\n */\n public static function logging()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->logging();\n }\n\n /**\n * Get the name of the connected database.\n *\n * @return string\n * @static\n */\n public static function getDatabaseName()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getDatabaseName();\n }\n\n /**\n * Set the name of the connected database.\n *\n * @param string $database\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setDatabaseName($database)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setDatabaseName($database);\n }\n\n /**\n * Set the read / write type of the connection.\n *\n * @param string|null $readWriteType\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setReadWriteType($readWriteType)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setReadWriteType($readWriteType);\n }\n\n /**\n * Get the table prefix for the connection.\n *\n * @return string\n * @static\n */\n public static function getTablePrefix()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->getTablePrefix();\n }\n\n /**\n * Set the table prefix in use by the connection.\n *\n * @param string $prefix\n * @return \\Illuminate\\Database\\MariaDbConnection\n * @static\n */\n public static function setTablePrefix($prefix)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->setTablePrefix($prefix);\n }\n\n /**\n * Execute the given callback without table prefix.\n *\n * @param \\Closure $callback\n * @return mixed\n * @static\n */\n public static function withoutTablePrefix($callback)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->withoutTablePrefix($callback);\n }\n\n /**\n * Register a connection resolver.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function resolverFor($driver, $callback)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n \\Illuminate\\Database\\MariaDbConnection::resolverFor($driver, $callback);\n }\n\n /**\n * Get the connection resolver for the given driver.\n *\n * @param string $driver\n * @return \\Closure|null\n * @static\n */\n public static function getResolver($driver)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n return \\Illuminate\\Database\\MariaDbConnection::getResolver($driver);\n }\n\n /**\n * @template TReturn of mixed\n * \n * Execute a Closure within a transaction.\n * @param (\\Closure(static): TReturn) $callback\n * @param int $attempts\n * @return TReturn\n * @throws \\Throwable\n * @static\n */\n public static function transaction($callback, $attempts = 1)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->transaction($callback, $attempts);\n }\n\n /**\n * Start a new database transaction.\n *\n * @return void\n * @throws \\Throwable\n * @static\n */\n public static function beginTransaction()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->beginTransaction();\n }\n\n /**\n * Commit the active database transaction.\n *\n * @return void\n * @throws \\Throwable\n * @static\n */\n public static function commit()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->commit();\n }\n\n /**\n * Rollback the active database transaction.\n *\n * @param int|null $toLevel\n * @return void\n * @throws \\Throwable\n * @static\n */\n public static function rollBack($toLevel = null)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->rollBack($toLevel);\n }\n\n /**\n * Get the number of active transactions.\n *\n * @return int\n * @static\n */\n public static function transactionLevel()\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n return $instance->transactionLevel();\n }\n\n /**\n * Execute the callback after a transaction commits.\n *\n * @param callable $callback\n * @return void\n * @throws \\RuntimeException\n * @static\n */\n public static function afterCommit($callback)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->afterCommit($callback);\n }\n\n /**\n * Execute the callback after a transaction rolls back.\n *\n * @param callable $callback\n * @return void\n * @throws \\RuntimeException\n * @static\n */\n public static function afterRollBack($callback)\n {\n //Method inherited from \\Illuminate\\Database\\Connection \n /** @var \\Illuminate\\Database\\MariaDbConnection $instance */\n $instance->afterRollBack($callback);\n }\n\n }\n /**\n * @see \\Illuminate\\Events\\Dispatcher\n * @see \\Illuminate\\Support\\Testing\\Fakes\\EventFake\n */\n class Event {\n /**\n * Register an event listener with the dispatcher.\n *\n * @param \\Illuminate\\Events\\Queued\\Closure|callable|array|class-string|string $events\n * @param \\Illuminate\\Events\\Queued\\Closure|callable|array|class-string|null $listener\n * @return void\n * @static\n */\n public static function listen($events, $listener = null)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n $instance->listen($events, $listener);\n }\n\n /**\n * Determine if a given event has listeners.\n *\n * @param string $eventName\n * @return bool\n * @static\n */\n public static function hasListeners($eventName)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->hasListeners($eventName);\n }\n\n /**\n * Determine if the given event has any wildcard listeners.\n *\n * @param string $eventName\n * @return bool\n * @static\n */\n public static function hasWildcardListeners($eventName)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->hasWildcardListeners($eventName);\n }\n\n /**\n * Register an event and payload to be fired later.\n *\n * @param string $event\n * @param object|array $payload\n * @return void\n * @static\n */\n public static function push($event, $payload = [])\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n $instance->push($event, $payload);\n }\n\n /**\n * Flush a set of pushed events.\n *\n * @param string $event\n * @return void\n * @static\n */\n public static function flush($event)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n $instance->flush($event);\n }\n\n /**\n * Register an event subscriber with the dispatcher.\n *\n * @param object|string $subscriber\n * @return void\n * @static\n */\n public static function subscribe($subscriber)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n $instance->subscribe($subscriber);\n }\n\n /**\n * Fire an event until the first non-null response is returned.\n *\n * @param string|object $event\n * @param mixed $payload\n * @return mixed\n * @static\n */\n public static function until($event, $payload = [])\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->until($event, $payload);\n }\n\n /**\n * Fire an event and call the listeners.\n *\n * @param string|object $event\n * @param mixed $payload\n * @param bool $halt\n * @return array|null\n * @static\n */\n public static function dispatch($event, $payload = [], $halt = false)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->dispatch($event, $payload, $halt);\n }\n\n /**\n * Get all of the listeners for a given event name.\n *\n * @param string $eventName\n * @return array\n * @static\n */\n public static function getListeners($eventName)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->getListeners($eventName);\n }\n\n /**\n * Register an event listener with the dispatcher.\n *\n * @param \\Closure|string|array $listener\n * @param bool $wildcard\n * @return \\Closure\n * @static\n */\n public static function makeListener($listener, $wildcard = false)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->makeListener($listener, $wildcard);\n }\n\n /**\n * Create a class based listener using the IoC container.\n *\n * @param string $listener\n * @param bool $wildcard\n * @return \\Closure\n * @static\n */\n public static function createClassListener($listener, $wildcard = false)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->createClassListener($listener, $wildcard);\n }\n\n /**\n * Remove a set of listeners from the dispatcher.\n *\n * @param string $event\n * @return void\n * @static\n */\n public static function forget($event)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n $instance->forget($event);\n }\n\n /**\n * Forget all of the pushed listeners.\n *\n * @return void\n * @static\n */\n public static function forgetPushed()\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n $instance->forgetPushed();\n }\n\n /**\n * Set the queue resolver implementation.\n *\n * @param callable $resolver\n * @return \\Illuminate\\Events\\Dispatcher\n * @static\n */\n public static function setQueueResolver($resolver)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->setQueueResolver($resolver);\n }\n\n /**\n * Set the database transaction manager resolver implementation.\n *\n * @param callable $resolver\n * @return \\Illuminate\\Events\\Dispatcher\n * @static\n */\n public static function setTransactionManagerResolver($resolver)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->setTransactionManagerResolver($resolver);\n }\n\n /**\n * Execute the given callback while deferring events, then dispatch all deferred events.\n *\n * @param callable $callback\n * @param array|null $events\n * @return mixed\n * @static\n */\n public static function defer($callback, $events = null)\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->defer($callback, $events);\n }\n\n /**\n * Gets the raw, unprepared listeners.\n *\n * @return array\n * @static\n */\n public static function getRawListeners()\n {\n /** @var \\Illuminate\\Events\\Dispatcher $instance */\n return $instance->getRawListeners();\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Events\\Dispatcher::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Events\\Dispatcher::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Events\\Dispatcher::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Events\\Dispatcher::flushMacros();\n }\n\n /**\n * Specify the events that should be dispatched instead of faked.\n *\n * @param array|string $eventsToDispatch\n * @return \\Illuminate\\Support\\Testing\\Fakes\\EventFake\n * @static\n */\n public static function except($eventsToDispatch)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\EventFake $instance */\n return $instance->except($eventsToDispatch);\n }\n\n /**\n * Assert if an event has a listener attached to it.\n *\n * @param string $expectedEvent\n * @param string|array $expectedListener\n * @return void\n * @static\n */\n public static function assertListening($expectedEvent, $expectedListener)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\EventFake $instance */\n $instance->assertListening($expectedEvent, $expectedListener);\n }\n\n /**\n * Assert if an event was dispatched based on a truth-test callback.\n *\n * @param string|\\Closure $event\n * @param callable|int|null $callback\n * @return void\n * @static\n */\n public static function assertDispatched($event, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\EventFake $instance */\n $instance->assertDispatched($event, $callback);\n }\n\n /**\n * Assert if an event was dispatched exactly once.\n *\n * @param string $event\n * @param int $times\n * @return void\n * @static\n */\n public static function assertDispatchedOnce($event)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\EventFake $instance */\n $instance->assertDispatchedOnce($event);\n }\n\n /**\n * Assert if an event was dispatched a number of times.\n *\n * @param string $event\n * @param int $times\n * @return void\n * @static\n */\n public static function assertDispatchedTimes($event, $times = 1)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\EventFake $instance */\n $instance->assertDispatchedTimes($event, $times);\n }\n\n /**\n * Determine if an event was dispatched based on a truth-test callback.\n *\n * @param string|\\Closure $event\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertNotDispatched($event, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\EventFake $instance */\n $instance->assertNotDispatched($event, $callback);\n }\n\n /**\n * Assert that no events were dispatched.\n *\n * @return void\n * @static\n */\n public static function assertNothingDispatched()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\EventFake $instance */\n $instance->assertNothingDispatched();\n }\n\n /**\n * Get all of the events matching a truth-test callback.\n *\n * @param string $event\n * @param callable|null $callback\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function dispatched($event, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\EventFake $instance */\n return $instance->dispatched($event, $callback);\n }\n\n /**\n * Determine if the given event has been dispatched.\n *\n * @param string $event\n * @return bool\n * @static\n */\n public static function hasDispatched($event)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\EventFake $instance */\n return $instance->hasDispatched($event);\n }\n\n /**\n * Get the events that have been dispatched.\n *\n * @return array\n * @static\n */\n public static function dispatchedEvents()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\EventFake $instance */\n return $instance->dispatchedEvents();\n }\n\n }\n /**\n * @see \\Illuminate\\Filesystem\\Filesystem\n */\n class File {\n /**\n * Determine if a file or directory exists.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function exists($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->exists($path);\n }\n\n /**\n * Determine if a file or directory is missing.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function missing($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->missing($path);\n }\n\n /**\n * Get the contents of a file.\n *\n * @param string $path\n * @param bool $lock\n * @return string\n * @throws \\Illuminate\\Contracts\\Filesystem\\FileNotFoundException\n * @static\n */\n public static function get($path, $lock = false)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->get($path, $lock);\n }\n\n /**\n * Get the contents of a file as decoded JSON.\n *\n * @param string $path\n * @param int $flags\n * @param bool $lock\n * @return array\n * @throws \\Illuminate\\Contracts\\Filesystem\\FileNotFoundException\n * @static\n */\n public static function json($path, $flags = 0, $lock = false)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->json($path, $flags, $lock);\n }\n\n /**\n * Get contents of a file with shared access.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function sharedGet($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->sharedGet($path);\n }\n\n /**\n * Get the returned value of a file.\n *\n * @param string $path\n * @param array $data\n * @return mixed\n * @throws \\Illuminate\\Contracts\\Filesystem\\FileNotFoundException\n * @static\n */\n public static function getRequire($path, $data = [])\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->getRequire($path, $data);\n }\n\n /**\n * Require the given file once.\n *\n * @param string $path\n * @param array $data\n * @return mixed\n * @throws \\Illuminate\\Contracts\\Filesystem\\FileNotFoundException\n * @static\n */\n public static function requireOnce($path, $data = [])\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->requireOnce($path, $data);\n }\n\n /**\n * Get the contents of a file one line at a time.\n *\n * @param string $path\n * @return \\Illuminate\\Support\\LazyCollection\n * @throws \\Illuminate\\Contracts\\Filesystem\\FileNotFoundException\n * @static\n */\n public static function lines($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->lines($path);\n }\n\n /**\n * Get the hash of the file at the given path.\n *\n * @param string $path\n * @param string $algorithm\n * @return string|false\n * @static\n */\n public static function hash($path, $algorithm = 'md5')\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->hash($path, $algorithm);\n }\n\n /**\n * Write the contents of a file.\n *\n * @param string $path\n * @param string $contents\n * @param bool $lock\n * @return int|bool\n * @static\n */\n public static function put($path, $contents, $lock = false)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->put($path, $contents, $lock);\n }\n\n /**\n * Write the contents of a file, replacing it atomically if it already exists.\n *\n * @param string $path\n * @param string $content\n * @param int|null $mode\n * @return void\n * @static\n */\n public static function replace($path, $content, $mode = null)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n $instance->replace($path, $content, $mode);\n }\n\n /**\n * Replace a given string within a given file.\n *\n * @param array|string $search\n * @param array|string $replace\n * @param string $path\n * @return void\n * @static\n */\n public static function replaceInFile($search, $replace, $path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n $instance->replaceInFile($search, $replace, $path);\n }\n\n /**\n * Prepend to a file.\n *\n * @param string $path\n * @param string $data\n * @return int\n * @static\n */\n public static function prepend($path, $data)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->prepend($path, $data);\n }\n\n /**\n * Append to a file.\n *\n * @param string $path\n * @param string $data\n * @param bool $lock\n * @return int\n * @static\n */\n public static function append($path, $data, $lock = false)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->append($path, $data, $lock);\n }\n\n /**\n * Get or set UNIX mode of a file or directory.\n *\n * @param string $path\n * @param int|null $mode\n * @return mixed\n * @static\n */\n public static function chmod($path, $mode = null)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->chmod($path, $mode);\n }\n\n /**\n * Delete the file at a given path.\n *\n * @param string|array $paths\n * @return bool\n * @static\n */\n public static function delete($paths)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->delete($paths);\n }\n\n /**\n * Move a file to a new location.\n *\n * @param string $path\n * @param string $target\n * @return bool\n * @static\n */\n public static function move($path, $target)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->move($path, $target);\n }\n\n /**\n * Copy a file to a new location.\n *\n * @param string $path\n * @param string $target\n * @return bool\n * @static\n */\n public static function copy($path, $target)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->copy($path, $target);\n }\n\n /**\n * Create a symlink to the target file or directory. On Windows, a hard link is created if the target is a file.\n *\n * @param string $target\n * @param string $link\n * @return bool|null\n * @static\n */\n public static function link($target, $link)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->link($target, $link);\n }\n\n /**\n * Create a relative symlink to the target file or directory.\n *\n * @param string $target\n * @param string $link\n * @return void\n * @throws \\RuntimeException\n * @static\n */\n public static function relativeLink($target, $link)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n $instance->relativeLink($target, $link);\n }\n\n /**\n * Extract the file name from a file path.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function name($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->name($path);\n }\n\n /**\n * Extract the trailing name component from a file path.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function basename($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->basename($path);\n }\n\n /**\n * Extract the parent directory from a file path.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function dirname($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->dirname($path);\n }\n\n /**\n * Extract the file extension from a file path.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function extension($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->extension($path);\n }\n\n /**\n * Guess the file extension from the mime-type of a given file.\n *\n * @param string $path\n * @return string|null\n * @throws \\RuntimeException\n * @static\n */\n public static function guessExtension($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->guessExtension($path);\n }\n\n /**\n * Get the file type of a given file.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function type($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->type($path);\n }\n\n /**\n * Get the mime-type of a given file.\n *\n * @param string $path\n * @return string|false\n * @static\n */\n public static function mimeType($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->mimeType($path);\n }\n\n /**\n * Get the file size of a given file.\n *\n * @param string $path\n * @return int\n * @static\n */\n public static function size($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->size($path);\n }\n\n /**\n * Get the file's last modification time.\n *\n * @param string $path\n * @return int\n * @static\n */\n public static function lastModified($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->lastModified($path);\n }\n\n /**\n * Determine if the given path is a directory.\n *\n * @param string $directory\n * @return bool\n * @static\n */\n public static function isDirectory($directory)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->isDirectory($directory);\n }\n\n /**\n * Determine if the given path is a directory that does not contain any other files or directories.\n *\n * @param string $directory\n * @param bool $ignoreDotFiles\n * @return bool\n * @static\n */\n public static function isEmptyDirectory($directory, $ignoreDotFiles = false)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->isEmptyDirectory($directory, $ignoreDotFiles);\n }\n\n /**\n * Determine if the given path is readable.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function isReadable($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->isReadable($path);\n }\n\n /**\n * Determine if the given path is writable.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function isWritable($path)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->isWritable($path);\n }\n\n /**\n * Determine if two files are the same by comparing their hashes.\n *\n * @param string $firstFile\n * @param string $secondFile\n * @return bool\n * @static\n */\n public static function hasSameHash($firstFile, $secondFile)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->hasSameHash($firstFile, $secondFile);\n }\n\n /**\n * Determine if the given path is a file.\n *\n * @param string $file\n * @return bool\n * @static\n */\n public static function isFile($file)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->isFile($file);\n }\n\n /**\n * Find path names matching a given pattern.\n *\n * @param string $pattern\n * @param int $flags\n * @return array\n * @static\n */\n public static function glob($pattern, $flags = 0)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->glob($pattern, $flags);\n }\n\n /**\n * Get an array of all files in a directory.\n *\n * @param string $directory\n * @param bool $hidden\n * @return \\Symfony\\Component\\Finder\\SplFileInfo[]\n * @static\n */\n public static function files($directory, $hidden = false)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->files($directory, $hidden);\n }\n\n /**\n * Get all of the files from the given directory (recursive).\n *\n * @param string $directory\n * @param bool $hidden\n * @return \\Symfony\\Component\\Finder\\SplFileInfo[]\n * @static\n */\n public static function allFiles($directory, $hidden = false)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->allFiles($directory, $hidden);\n }\n\n /**\n * Get all of the directories within a given directory.\n *\n * @param string $directory\n * @return array\n * @static\n */\n public static function directories($directory)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->directories($directory);\n }\n\n /**\n * Ensure a directory exists.\n *\n * @param string $path\n * @param int $mode\n * @param bool $recursive\n * @return void\n * @static\n */\n public static function ensureDirectoryExists($path, $mode = 493, $recursive = true)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n $instance->ensureDirectoryExists($path, $mode, $recursive);\n }\n\n /**\n * Create a directory.\n *\n * @param string $path\n * @param int $mode\n * @param bool $recursive\n * @param bool $force\n * @return bool\n * @static\n */\n public static function makeDirectory($path, $mode = 493, $recursive = false, $force = false)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->makeDirectory($path, $mode, $recursive, $force);\n }\n\n /**\n * Move a directory.\n *\n * @param string $from\n * @param string $to\n * @param bool $overwrite\n * @return bool\n * @static\n */\n public static function moveDirectory($from, $to, $overwrite = false)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->moveDirectory($from, $to, $overwrite);\n }\n\n /**\n * Copy a directory from one location to another.\n *\n * @param string $directory\n * @param string $destination\n * @param int|null $options\n * @return bool\n * @static\n */\n public static function copyDirectory($directory, $destination, $options = null)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->copyDirectory($directory, $destination, $options);\n }\n\n /**\n * Recursively delete a directory.\n * \n * The directory itself may be optionally preserved.\n *\n * @param string $directory\n * @param bool $preserve\n * @return bool\n * @static\n */\n public static function deleteDirectory($directory, $preserve = false)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->deleteDirectory($directory, $preserve);\n }\n\n /**\n * Remove all of the directories within a given directory.\n *\n * @param string $directory\n * @return bool\n * @static\n */\n public static function deleteDirectories($directory)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->deleteDirectories($directory);\n }\n\n /**\n * Empty the specified directory of all files and folders.\n *\n * @param string $directory\n * @return bool\n * @static\n */\n public static function cleanDirectory($directory)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->cleanDirectory($directory);\n }\n\n /**\n * Apply the callback if the given \"value\" is (or resolves to) truthy.\n *\n * @template TWhenParameter\n * @template TWhenReturnType\n * @param (\\Closure($this): TWhenParameter)|TWhenParameter|null $value\n * @param (callable($this, TWhenParameter): TWhenReturnType)|null $callback\n * @param (callable($this, TWhenParameter): TWhenReturnType)|null $default\n * @return $this|TWhenReturnType\n * @static\n */\n public static function when($value = null, $callback = null, $default = null)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->when($value, $callback, $default);\n }\n\n /**\n * Apply the callback if the given \"value\" is (or resolves to) falsy.\n *\n * @template TUnlessParameter\n * @template TUnlessReturnType\n * @param (\\Closure($this): TUnlessParameter)|TUnlessParameter|null $value\n * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $callback\n * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $default\n * @return $this|TUnlessReturnType\n * @static\n */\n public static function unless($value = null, $callback = null, $default = null)\n {\n /** @var \\Illuminate\\Filesystem\\Filesystem $instance */\n return $instance->unless($value, $callback, $default);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Filesystem\\Filesystem::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Filesystem\\Filesystem::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Filesystem\\Filesystem::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Filesystem\\Filesystem::flushMacros();\n }\n\n }\n /**\n * @see \\Illuminate\\Auth\\Access\\Gate\n */\n class Gate {\n /**\n * Determine if a given ability has been defined.\n *\n * @param string|array $ability\n * @return bool\n * @static\n */\n public static function has($ability)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->has($ability);\n }\n\n /**\n * Perform an on-demand authorization check. Throw an authorization exception if the condition or callback is false.\n *\n * @param \\Illuminate\\Auth\\Access\\Response|\\Closure|bool $condition\n * @param string|null $message\n * @param string|null $code\n * @return \\Illuminate\\Auth\\Access\\Response\n * @throws \\Illuminate\\Auth\\Access\\AuthorizationException\n * @static\n */\n public static function allowIf($condition, $message = null, $code = null)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->allowIf($condition, $message, $code);\n }\n\n /**\n * Perform an on-demand authorization check. Throw an authorization exception if the condition or callback is true.\n *\n * @param \\Illuminate\\Auth\\Access\\Response|\\Closure|bool $condition\n * @param string|null $message\n * @param string|null $code\n * @return \\Illuminate\\Auth\\Access\\Response\n * @throws \\Illuminate\\Auth\\Access\\AuthorizationException\n * @static\n */\n public static function denyIf($condition, $message = null, $code = null)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->denyIf($condition, $message, $code);\n }\n\n /**\n * Define a new ability.\n *\n * @param \\UnitEnum|string $ability\n * @param callable|array|string $callback\n * @return \\Illuminate\\Auth\\Access\\Gate\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function define($ability, $callback)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->define($ability, $callback);\n }\n\n /**\n * Define abilities for a resource.\n *\n * @param string $name\n * @param string $class\n * @param array|null $abilities\n * @return \\Illuminate\\Auth\\Access\\Gate\n * @static\n */\n public static function resource($name, $class, $abilities = null)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->resource($name, $class, $abilities);\n }\n\n /**\n * Define a policy class for a given class type.\n *\n * @param string $class\n * @param string $policy\n * @return \\Illuminate\\Auth\\Access\\Gate\n * @static\n */\n public static function policy($class, $policy)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->policy($class, $policy);\n }\n\n /**\n * Register a callback to run before all Gate checks.\n *\n * @param callable $callback\n * @return \\Illuminate\\Auth\\Access\\Gate\n * @static\n */\n public static function before($callback)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->before($callback);\n }\n\n /**\n * Register a callback to run after all Gate checks.\n *\n * @param callable $callback\n * @return \\Illuminate\\Auth\\Access\\Gate\n * @static\n */\n public static function after($callback)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->after($callback);\n }\n\n /**\n * Determine if all of the given abilities should be granted for the current user.\n *\n * @param iterable|\\UnitEnum|string $ability\n * @param mixed $arguments\n * @return bool\n * @static\n */\n public static function allows($ability, $arguments = [])\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->allows($ability, $arguments);\n }\n\n /**\n * Determine if any of the given abilities should be denied for the current user.\n *\n * @param iterable|\\UnitEnum|string $ability\n * @param mixed $arguments\n * @return bool\n * @static\n */\n public static function denies($ability, $arguments = [])\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->denies($ability, $arguments);\n }\n\n /**\n * Determine if all of the given abilities should be granted for the current user.\n *\n * @param iterable|\\UnitEnum|string $abilities\n * @param mixed $arguments\n * @return bool\n * @static\n */\n public static function check($abilities, $arguments = [])\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->check($abilities, $arguments);\n }\n\n /**\n * Determine if any one of the given abilities should be granted for the current user.\n *\n * @param iterable|\\UnitEnum|string $abilities\n * @param mixed $arguments\n * @return bool\n * @static\n */\n public static function any($abilities, $arguments = [])\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->any($abilities, $arguments);\n }\n\n /**\n * Determine if all of the given abilities should be denied for the current user.\n *\n * @param iterable|\\UnitEnum|string $abilities\n * @param mixed $arguments\n * @return bool\n * @static\n */\n public static function none($abilities, $arguments = [])\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->none($abilities, $arguments);\n }\n\n /**\n * Determine if the given ability should be granted for the current user.\n *\n * @param \\UnitEnum|string $ability\n * @param mixed $arguments\n * @return \\Illuminate\\Auth\\Access\\Response\n * @throws \\Illuminate\\Auth\\Access\\AuthorizationException\n * @static\n */\n public static function authorize($ability, $arguments = [])\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->authorize($ability, $arguments);\n }\n\n /**\n * Inspect the user for the given ability.\n *\n * @param \\UnitEnum|string $ability\n * @param mixed $arguments\n * @return \\Illuminate\\Auth\\Access\\Response\n * @static\n */\n public static function inspect($ability, $arguments = [])\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->inspect($ability, $arguments);\n }\n\n /**\n * Get the raw result from the authorization callback.\n *\n * @param string $ability\n * @param mixed $arguments\n * @return mixed\n * @throws \\Illuminate\\Auth\\Access\\AuthorizationException\n * @static\n */\n public static function raw($ability, $arguments = [])\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->raw($ability, $arguments);\n }\n\n /**\n * Get a policy instance for a given class.\n *\n * @param object|string $class\n * @return mixed\n * @static\n */\n public static function getPolicyFor($class)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->getPolicyFor($class);\n }\n\n /**\n * Specify a callback to be used to guess policy names.\n *\n * @param callable $callback\n * @return \\Illuminate\\Auth\\Access\\Gate\n * @static\n */\n public static function guessPolicyNamesUsing($callback)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->guessPolicyNamesUsing($callback);\n }\n\n /**\n * Build a policy class instance of the given type.\n *\n * @param object|string $class\n * @return mixed\n * @throws \\Illuminate\\Contracts\\Container\\BindingResolutionException\n * @static\n */\n public static function resolvePolicy($class)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->resolvePolicy($class);\n }\n\n /**\n * Get a gate instance for the given user.\n *\n * @param \\Illuminate\\Contracts\\Auth\\Authenticatable|mixed $user\n * @return static\n * @static\n */\n public static function forUser($user)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->forUser($user);\n }\n\n /**\n * Get all of the defined abilities.\n *\n * @return array\n * @static\n */\n public static function abilities()\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->abilities();\n }\n\n /**\n * Get all of the defined policies.\n *\n * @return array\n * @static\n */\n public static function policies()\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->policies();\n }\n\n /**\n * Set the default denial response for gates and policies.\n *\n * @param \\Illuminate\\Auth\\Access\\Response $response\n * @return \\Illuminate\\Auth\\Access\\Gate\n * @static\n */\n public static function defaultDenialResponse($response)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->defaultDenialResponse($response);\n }\n\n /**\n * Set the container instance used by the gate.\n *\n * @param \\Illuminate\\Contracts\\Container\\Container $container\n * @return \\Illuminate\\Auth\\Access\\Gate\n * @static\n */\n public static function setContainer($container)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->setContainer($container);\n }\n\n /**\n * Deny with a HTTP status code.\n *\n * @param int $status\n * @param string|null $message\n * @param int|null $code\n * @return \\Illuminate\\Auth\\Access\\Response\n * @static\n */\n public static function denyWithStatus($status, $message = null, $code = null)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->denyWithStatus($status, $message, $code);\n }\n\n /**\n * Deny with a 404 HTTP status code.\n *\n * @param string|null $message\n * @param int|null $code\n * @return \\Illuminate\\Auth\\Access\\Response\n * @static\n */\n public static function denyAsNotFound($message = null, $code = null)\n {\n /** @var \\Illuminate\\Auth\\Access\\Gate $instance */\n return $instance->denyAsNotFound($message, $code);\n }\n\n }\n /**\n * @see \\Illuminate\\Hashing\\HashManager\n * @see \\Illuminate\\Hashing\\AbstractHasher\n */\n class Hash {\n /**\n * Create an instance of the Bcrypt hash Driver.\n *\n * @return \\Illuminate\\Hashing\\BcryptHasher\n * @static\n */\n public static function createBcryptDriver()\n {\n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->createBcryptDriver();\n }\n\n /**\n * Create an instance of the Argon2i hash Driver.\n *\n * @return \\Illuminate\\Hashing\\ArgonHasher\n * @static\n */\n public static function createArgonDriver()\n {\n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->createArgonDriver();\n }\n\n /**\n * Create an instance of the Argon2id hash Driver.\n *\n * @return \\Illuminate\\Hashing\\Argon2IdHasher\n * @static\n */\n public static function createArgon2idDriver()\n {\n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->createArgon2idDriver();\n }\n\n /**\n * Get information about the given hashed value.\n *\n * @param string $hashedValue\n * @return array\n * @static\n */\n public static function info($hashedValue)\n {\n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->info($hashedValue);\n }\n\n /**\n * Hash the given value.\n *\n * @param string $value\n * @param array $options\n * @return string\n * @static\n */\n public static function make($value, $options = [])\n {\n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->make($value, $options);\n }\n\n /**\n * Check the given plain value against a hash.\n *\n * @param string $value\n * @param string $hashedValue\n * @param array $options\n * @return bool\n * @static\n */\n public static function check($value, $hashedValue, $options = [])\n {\n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->check($value, $hashedValue, $options);\n }\n\n /**\n * Check if the given hash has been hashed using the given options.\n *\n * @param string $hashedValue\n * @param array $options\n * @return bool\n * @static\n */\n public static function needsRehash($hashedValue, $options = [])\n {\n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->needsRehash($hashedValue, $options);\n }\n\n /**\n * Determine if a given string is already hashed.\n *\n * @param string $value\n * @return bool\n * @static\n */\n public static function isHashed($value)\n {\n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->isHashed($value);\n }\n\n /**\n * Get the default driver name.\n *\n * @return string\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Verifies that the configuration is less than or equal to what is configured.\n *\n * @param array $value\n * @return bool\n * @internal\n * @static\n */\n public static function verifyConfiguration($value)\n {\n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->verifyConfiguration($value);\n }\n\n /**\n * Get a driver instance.\n *\n * @param string|null $driver\n * @return mixed\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function driver($driver = null)\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->driver($driver);\n }\n\n /**\n * Register a custom driver creator Closure.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @return \\Illuminate\\Hashing\\HashManager\n * @static\n */\n public static function extend($driver, $callback)\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->extend($driver, $callback);\n }\n\n /**\n * Get all of the created \"drivers\".\n *\n * @return array\n * @static\n */\n public static function getDrivers()\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->getDrivers();\n }\n\n /**\n * Get the container instance used by the manager.\n *\n * @return \\Illuminate\\Contracts\\Container\\Container\n * @static\n */\n public static function getContainer()\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->getContainer();\n }\n\n /**\n * Set the container instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Container\\Container $container\n * @return \\Illuminate\\Hashing\\HashManager\n * @static\n */\n public static function setContainer($container)\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->setContainer($container);\n }\n\n /**\n * Forget all of the resolved driver instances.\n *\n * @return \\Illuminate\\Hashing\\HashManager\n * @static\n */\n public static function forgetDrivers()\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Hashing\\HashManager $instance */\n return $instance->forgetDrivers();\n }\n\n }\n /**\n * @method static \\Illuminate\\Http\\Client\\PendingRequest baseUrl(string $url)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withBody(\\Psr\\Http\\Message\\StreamInterface|string $content, string $contentType = 'application/json')\n * @method static \\Illuminate\\Http\\Client\\PendingRequest asJson()\n * @method static \\Illuminate\\Http\\Client\\PendingRequest asForm()\n * @method static \\Illuminate\\Http\\Client\\PendingRequest attach(string|array $name, string|resource $contents = '', string|null $filename = null, array $headers = [])\n * @method static \\Illuminate\\Http\\Client\\PendingRequest asMultipart()\n * @method static \\Illuminate\\Http\\Client\\PendingRequest bodyFormat(string $format)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withQueryParameters(array $parameters)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest contentType(string $contentType)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest acceptJson()\n * @method static \\Illuminate\\Http\\Client\\PendingRequest accept(string $contentType)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withHeaders(array $headers)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withHeader(string $name, mixed $value)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest replaceHeaders(array $headers)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withBasicAuth(string $username, string $password)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withDigestAuth(string $username, string $password)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withNtlmAuth(string $username, string $password)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withToken(string $token, string $type = 'Bearer')\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withUserAgent(string|bool $userAgent)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withUrlParameters(array $parameters = [])\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withCookies(array $cookies, string $domain)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest maxRedirects(int $max)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withoutRedirecting()\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withoutVerifying()\n * @method static \\Illuminate\\Http\\Client\\PendingRequest sink(string|resource $to)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest timeout(int|float $seconds)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest connectTimeout(int|float $seconds)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest retry(array|int $times, \\Closure|int $sleepMilliseconds = 0, callable|null $when = null, bool $throw = true)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withOptions(array $options)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withMiddleware(callable $middleware)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withRequestMiddleware(callable $middleware)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest withResponseMiddleware(callable $middleware)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest beforeSending(callable $callback)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest throw(callable|null $callback = null)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest throwIf(callable|bool $condition)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest throwUnless(callable|bool $condition)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest dump()\n * @method static \\Illuminate\\Http\\Client\\PendingRequest dd()\n * @method static \\Illuminate\\Http\\Client\\Response get(string $url, array|string|null $query = null)\n * @method static \\Illuminate\\Http\\Client\\Response head(string $url, array|string|null $query = null)\n * @method static \\Illuminate\\Http\\Client\\Response post(string $url, array|\\JsonSerializable|\\Illuminate\\Contracts\\Support\\Arrayable $data = [])\n * @method static \\Illuminate\\Http\\Client\\Response patch(string $url, array|\\JsonSerializable|\\Illuminate\\Contracts\\Support\\Arrayable $data = [])\n * @method static \\Illuminate\\Http\\Client\\Response put(string $url, array|\\JsonSerializable|\\Illuminate\\Contracts\\Support\\Arrayable $data = [])\n * @method static \\Illuminate\\Http\\Client\\Response delete(string $url, array|\\JsonSerializable|\\Illuminate\\Contracts\\Support\\Arrayable $data = [])\n * @method static array pool(callable $callback)\n * @method static \\Illuminate\\Http\\Client\\Batch batch(callable $callback)\n * @method static \\Illuminate\\Http\\Client\\Response send(string $method, string $url, array $options = [])\n * @method static \\GuzzleHttp\\Client buildClient()\n * @method static \\GuzzleHttp\\Client createClient(\\GuzzleHttp\\HandlerStack $handlerStack)\n * @method static \\GuzzleHttp\\HandlerStack buildHandlerStack()\n * @method static \\GuzzleHttp\\HandlerStack pushHandlers(\\GuzzleHttp\\HandlerStack $handlerStack)\n * @method static \\Closure buildBeforeSendingHandler()\n * @method static \\Closure buildRecorderHandler()\n * @method static \\Closure buildStubHandler()\n * @method static \\GuzzleHttp\\Psr7\\RequestInterface runBeforeSendingCallbacks(\\GuzzleHttp\\Psr7\\RequestInterface $request, array $options)\n * @method static array mergeOptions(array ...$options)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest stub(callable $callback)\n * @method static bool isAllowedRequestUrl(string $url)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest async(bool $async = true)\n * @method static \\GuzzleHttp\\Promise\\PromiseInterface|null getPromise()\n * @method static \\Illuminate\\Http\\Client\\PendingRequest truncateExceptionsAt(int $length)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest dontTruncateExceptions()\n * @method static \\Illuminate\\Http\\Client\\PendingRequest setClient(\\GuzzleHttp\\Client $client)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest setHandler(callable $handler)\n * @method static array getOptions()\n * @method static \\Illuminate\\Http\\Client\\PendingRequest|mixed when(\\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null)\n * @method static \\Illuminate\\Http\\Client\\PendingRequest|mixed unless(\\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null)\n * @see \\Illuminate\\Http\\Client\\Factory\n */\n class Http {\n /**\n * Add middleware to apply to every request.\n *\n * @param callable $middleware\n * @return \\Illuminate\\Http\\Client\\Factory\n * @static\n */\n public static function globalMiddleware($middleware)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->globalMiddleware($middleware);\n }\n\n /**\n * Add request middleware to apply to every request.\n *\n * @param callable $middleware\n * @return \\Illuminate\\Http\\Client\\Factory\n * @static\n */\n public static function globalRequestMiddleware($middleware)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->globalRequestMiddleware($middleware);\n }\n\n /**\n * Add response middleware to apply to every request.\n *\n * @param callable $middleware\n * @return \\Illuminate\\Http\\Client\\Factory\n * @static\n */\n public static function globalResponseMiddleware($middleware)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->globalResponseMiddleware($middleware);\n }\n\n /**\n * Set the options to apply to every request.\n *\n * @param \\Closure|array $options\n * @return \\Illuminate\\Http\\Client\\Factory\n * @static\n */\n public static function globalOptions($options)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->globalOptions($options);\n }\n\n /**\n * Create a new response instance for use during stubbing.\n *\n * @param array|string|null $body\n * @param int $status\n * @param array $headers\n * @return \\GuzzleHttp\\Promise\\PromiseInterface\n * @static\n */\n public static function response($body = null, $status = 200, $headers = [])\n {\n return \\Illuminate\\Http\\Client\\Factory::response($body, $status, $headers);\n }\n\n /**\n * Create a new PSR-7 response instance for use during stubbing.\n *\n * @param array|string|null $body\n * @param int $status\n * @param array<string, mixed> $headers\n * @return \\GuzzleHttp\\Psr7\\Response\n * @static\n */\n public static function psr7Response($body = null, $status = 200, $headers = [])\n {\n return \\Illuminate\\Http\\Client\\Factory::psr7Response($body, $status, $headers);\n }\n\n /**\n * Create a new RequestException instance for use during stubbing.\n *\n * @param array|string|null $body\n * @param int $status\n * @param array<string, mixed> $headers\n * @return \\Illuminate\\Http\\Client\\RequestException\n * @static\n */\n public static function failedRequest($body = null, $status = 200, $headers = [])\n {\n return \\Illuminate\\Http\\Client\\Factory::failedRequest($body, $status, $headers);\n }\n\n /**\n * Create a new connection exception for use during stubbing.\n *\n * @param string|null $message\n * @return \\Closure(\\Illuminate\\Http\\Client\\Request): \\GuzzleHttp\\Promise\\PromiseInterface\n * @static\n */\n public static function failedConnection($message = null)\n {\n return \\Illuminate\\Http\\Client\\Factory::failedConnection($message);\n }\n\n /**\n * Get an invokable object that returns a sequence of responses in order for use during stubbing.\n *\n * @param array $responses\n * @return \\Illuminate\\Http\\Client\\ResponseSequence\n * @static\n */\n public static function sequence($responses = [])\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->sequence($responses);\n }\n\n /**\n * Register a stub callable that will intercept requests and be able to return stub responses.\n *\n * @param callable|array<string, mixed>|null $callback\n * @return \\Illuminate\\Http\\Client\\Factory\n * @static\n */\n public static function fake($callback = null)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->fake($callback);\n }\n\n /**\n * Register a response sequence for the given URL pattern.\n *\n * @param string $url\n * @return \\Illuminate\\Http\\Client\\ResponseSequence\n * @static\n */\n public static function fakeSequence($url = '*')\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->fakeSequence($url);\n }\n\n /**\n * Stub the given URL using the given callback.\n *\n * @param string $url\n * @param \\Illuminate\\Http\\Client\\Response|\\GuzzleHttp\\Promise\\PromiseInterface|callable|int|string|array|\\Illuminate\\Http\\Client\\ResponseSequence $callback\n * @return \\Illuminate\\Http\\Client\\Factory\n * @static\n */\n public static function stubUrl($url, $callback)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->stubUrl($url, $callback);\n }\n\n /**\n * Indicate that an exception should be thrown if any request is not faked.\n *\n * @param bool $prevent\n * @return \\Illuminate\\Http\\Client\\Factory\n * @static\n */\n public static function preventStrayRequests($prevent = true)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->preventStrayRequests($prevent);\n }\n\n /**\n * Determine if stray requests are being prevented.\n *\n * @return bool\n * @static\n */\n public static function preventingStrayRequests()\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->preventingStrayRequests();\n }\n\n /**\n * Allow stray, unfaked requests entirely, or optionally allow only specific URLs.\n *\n * @param array<int, string>|null $only\n * @return \\Illuminate\\Http\\Client\\Factory\n * @static\n */\n public static function allowStrayRequests($only = null)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->allowStrayRequests($only);\n }\n\n /**\n * Begin recording request / response pairs.\n *\n * @return \\Illuminate\\Http\\Client\\Factory\n * @static\n */\n public static function record()\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->record();\n }\n\n /**\n * Record a request response pair.\n *\n * @param \\Illuminate\\Http\\Client\\Request $request\n * @param \\Illuminate\\Http\\Client\\Response|null $response\n * @return void\n * @static\n */\n public static function recordRequestResponsePair($request, $response)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n $instance->recordRequestResponsePair($request, $response);\n }\n\n /**\n * Assert that a request / response pair was recorded matching a given truth test.\n *\n * @param callable|(\\Closure(\\Illuminate\\Http\\Client\\Request, \\Illuminate\\Http\\Client\\Response|null): bool) $callback\n * @return void\n * @static\n */\n public static function assertSent($callback)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n $instance->assertSent($callback);\n }\n\n /**\n * Assert that the given request was sent in the given order.\n *\n * @param list<string|(\\Closure(\\Illuminate\\Http\\Client\\Request, \\Illuminate\\Http\\Client\\Response|null): bool)|callable> $callbacks\n * @return void\n * @static\n */\n public static function assertSentInOrder($callbacks)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n $instance->assertSentInOrder($callbacks);\n }\n\n /**\n * Assert that a request / response pair was not recorded matching a given truth test.\n *\n * @param callable|(\\Closure(\\Illuminate\\Http\\Client\\Request, \\Illuminate\\Http\\Client\\Response|null): bool) $callback\n * @return void\n * @static\n */\n public static function assertNotSent($callback)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n $instance->assertNotSent($callback);\n }\n\n /**\n * Assert that no request / response pair was recorded.\n *\n * @return void\n * @static\n */\n public static function assertNothingSent()\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n $instance->assertNothingSent();\n }\n\n /**\n * Assert how many requests have been recorded.\n *\n * @param int $count\n * @return void\n * @static\n */\n public static function assertSentCount($count)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n $instance->assertSentCount($count);\n }\n\n /**\n * Assert that every created response sequence is empty.\n *\n * @return void\n * @static\n */\n public static function assertSequencesAreEmpty()\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n $instance->assertSequencesAreEmpty();\n }\n\n /**\n * Get a collection of the request / response pairs matching the given truth test.\n *\n * @param (\\Closure(\\Illuminate\\Http\\Client\\Request, \\Illuminate\\Http\\Client\\Response|null): bool)|callable $callback\n * @return \\Illuminate\\Support\\Collection<int, array{0: \\Illuminate\\Http\\Client\\Request, 1: \\Illuminate\\Http\\Client\\Response|null}>\n * @static\n */\n public static function recorded($callback = null)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->recorded($callback);\n }\n\n /**\n * Create a new pending request instance for this factory.\n *\n * @return \\Illuminate\\Http\\Client\\PendingRequest\n * @static\n */\n public static function createPendingRequest()\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->createPendingRequest();\n }\n\n /**\n * Get the current event dispatcher implementation.\n *\n * @return \\Illuminate\\Contracts\\Events\\Dispatcher|null\n * @static\n */\n public static function getDispatcher()\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->getDispatcher();\n }\n\n /**\n * Get the array of global middleware.\n *\n * @return array\n * @static\n */\n public static function getGlobalMiddleware()\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->getGlobalMiddleware();\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Http\\Client\\Factory::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Http\\Client\\Factory::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Http\\Client\\Factory::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Http\\Client\\Factory::flushMacros();\n }\n\n /**\n * Dynamically handle calls to the class.\n *\n * @param string $method\n * @param array $parameters\n * @return mixed\n * @throws \\BadMethodCallException\n * @static\n */\n public static function macroCall($method, $parameters)\n {\n /** @var \\Illuminate\\Http\\Client\\Factory $instance */\n return $instance->macroCall($method, $parameters);\n }\n\n /**\n * @see \\Jiminny\\Providers\\PlanhatServiceProvider::register()\n * @return \\Illuminate\\Http\\Client\\PendingRequest\n * @static\n */\n public static function planhatApi()\n {\n return \\Illuminate\\Http\\Client\\Factory::planhatApi();\n }\n\n /**\n * @see \\Jiminny\\Providers\\PlanhatServiceProvider::register()\n * @return \\Illuminate\\Http\\Client\\PendingRequest\n * @static\n */\n public static function planhatAnalyticsApi()\n {\n return \\Illuminate\\Http\\Client\\Factory::planhatAnalyticsApi();\n }\n\n }\n /**\n * @see \\Illuminate\\Translation\\Translator\n */\n class Lang {\n /**\n * Determine if a translation exists for a given locale.\n *\n * @param string $key\n * @param string|null $locale\n * @return bool\n * @static\n */\n public static function hasForLocale($key, $locale = null)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->hasForLocale($key, $locale);\n }\n\n /**\n * Determine if a translation exists.\n *\n * @param string $key\n * @param string|null $locale\n * @param bool $fallback\n * @return bool\n * @static\n */\n public static function has($key, $locale = null, $fallback = true)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->has($key, $locale, $fallback);\n }\n\n /**\n * Get the translation for the given key.\n *\n * @param string $key\n * @param array $replace\n * @param string|null $locale\n * @param bool $fallback\n * @return string|array\n * @static\n */\n public static function get($key, $replace = [], $locale = null, $fallback = true)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->get($key, $replace, $locale, $fallback);\n }\n\n /**\n * Get a translation according to an integer value.\n *\n * @param string $key\n * @param \\Countable|int|float|array $number\n * @param array $replace\n * @param string|null $locale\n * @return string\n * @static\n */\n public static function choice($key, $number, $replace = [], $locale = null)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->choice($key, $number, $replace, $locale);\n }\n\n /**\n * Add translation lines to the given locale.\n *\n * @param array $lines\n * @param string $locale\n * @param string $namespace\n * @return void\n * @static\n */\n public static function addLines($lines, $locale, $namespace = '*')\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->addLines($lines, $locale, $namespace);\n }\n\n /**\n * Load the specified language group.\n *\n * @param string $namespace\n * @param string $group\n * @param string $locale\n * @return void\n * @static\n */\n public static function load($namespace, $group, $locale)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->load($namespace, $group, $locale);\n }\n\n /**\n * Register a callback that is responsible for handling missing translation keys.\n *\n * @param callable|null $callback\n * @return static\n * @static\n */\n public static function handleMissingKeysUsing($callback)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->handleMissingKeysUsing($callback);\n }\n\n /**\n * Add a new namespace to the loader.\n *\n * @param string $namespace\n * @param string $hint\n * @return void\n * @static\n */\n public static function addNamespace($namespace, $hint)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->addNamespace($namespace, $hint);\n }\n\n /**\n * Add a new path to the loader.\n *\n * @param string $path\n * @return void\n * @static\n */\n public static function addPath($path)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->addPath($path);\n }\n\n /**\n * Add a new JSON path to the loader.\n *\n * @param string $path\n * @return void\n * @static\n */\n public static function addJsonPath($path)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->addJsonPath($path);\n }\n\n /**\n * Parse a key into namespace, group, and item.\n *\n * @param string $key\n * @return array\n * @static\n */\n public static function parseKey($key)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->parseKey($key);\n }\n\n /**\n * Specify a callback that should be invoked to determined the applicable locale array.\n *\n * @param callable $callback\n * @return void\n * @static\n */\n public static function determineLocalesUsing($callback)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->determineLocalesUsing($callback);\n }\n\n /**\n * Get the message selector instance.\n *\n * @return \\Illuminate\\Translation\\MessageSelector\n * @static\n */\n public static function getSelector()\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->getSelector();\n }\n\n /**\n * Set the message selector instance.\n *\n * @param \\Illuminate\\Translation\\MessageSelector $selector\n * @return void\n * @static\n */\n public static function setSelector($selector)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->setSelector($selector);\n }\n\n /**\n * Get the language line loader implementation.\n *\n * @return \\Illuminate\\Contracts\\Translation\\Loader\n * @static\n */\n public static function getLoader()\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->getLoader();\n }\n\n /**\n * Get the default locale being used.\n *\n * @return string\n * @static\n */\n public static function locale()\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->locale();\n }\n\n /**\n * Get the default locale being used.\n *\n * @return string\n * @static\n */\n public static function getLocale()\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->getLocale();\n }\n\n /**\n * Set the default locale.\n *\n * @param string $locale\n * @return void\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function setLocale($locale)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->setLocale($locale);\n }\n\n /**\n * Get the fallback locale being used.\n *\n * @return string\n * @static\n */\n public static function getFallback()\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n return $instance->getFallback();\n }\n\n /**\n * Set the fallback locale being used.\n *\n * @param string $fallback\n * @return void\n * @static\n */\n public static function setFallback($fallback)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->setFallback($fallback);\n }\n\n /**\n * Set the loaded translation groups.\n *\n * @param array $loaded\n * @return void\n * @static\n */\n public static function setLoaded($loaded)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->setLoaded($loaded);\n }\n\n /**\n * Add a handler to be executed in order to format a given class to a string during translation replacements.\n *\n * @param callable|string $class\n * @param callable|null $handler\n * @return void\n * @static\n */\n public static function stringable($class, $handler = null)\n {\n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->stringable($class, $handler);\n }\n\n /**\n * Set the parsed value of a key.\n *\n * @param string $key\n * @param array $parsed\n * @return void\n * @static\n */\n public static function setParsedKey($key, $parsed)\n {\n //Method inherited from \\Illuminate\\Support\\NamespacedItemResolver \n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->setParsedKey($key, $parsed);\n }\n\n /**\n * Flush the cache of parsed keys.\n *\n * @return void\n * @static\n */\n public static function flushParsedKeys()\n {\n //Method inherited from \\Illuminate\\Support\\NamespacedItemResolver \n /** @var \\Illuminate\\Translation\\Translator $instance */\n $instance->flushParsedKeys();\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Translation\\Translator::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Translation\\Translator::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Translation\\Translator::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Translation\\Translator::flushMacros();\n }\n\n }\n /**\n * @method static void write(string $level, \\Illuminate\\Contracts\\Support\\Arrayable|\\Illuminate\\Contracts\\Support\\Jsonable|\\Illuminate\\Support\\Stringable|array|string $message, array $context = [])\n * @method static \\Illuminate\\Log\\Logger withContext(array $context = [])\n * @method static void listen(\\Closure $callback)\n * @method static \\Psr\\Log\\LoggerInterface getLogger()\n * @method static \\Illuminate\\Contracts\\Events\\Dispatcher getEventDispatcher()\n * @method static void setEventDispatcher(\\Illuminate\\Contracts\\Events\\Dispatcher $dispatcher)\n * @method static \\Illuminate\\Log\\Logger|mixed when(\\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null)\n * @method static \\Illuminate\\Log\\Logger|mixed unless(\\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null)\n * @see \\Illuminate\\Log\\LogManager\n */\n class Log {\n /**\n * Build an on-demand log channel.\n *\n * @param array $config\n * @return \\Psr\\Log\\LoggerInterface\n * @static\n */\n public static function build($config)\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->build($config);\n }\n\n /**\n * Create a new, on-demand aggregate logger instance.\n *\n * @param array $channels\n * @param string|null $channel\n * @return \\Psr\\Log\\LoggerInterface\n * @static\n */\n public static function stack($channels, $channel = null)\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->stack($channels, $channel);\n }\n\n /**\n * Get a log channel instance.\n *\n * @param string|null $channel\n * @return \\Psr\\Log\\LoggerInterface\n * @static\n */\n public static function channel($channel = null)\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->channel($channel);\n }\n\n /**\n * Get a log driver instance.\n *\n * @param string|null $driver\n * @return \\Psr\\Log\\LoggerInterface\n * @static\n */\n public static function driver($driver = null)\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->driver($driver);\n }\n\n /**\n * Share context across channels and stacks.\n *\n * @param array $context\n * @return \\Illuminate\\Log\\LogManager\n * @static\n */\n public static function shareContext($context)\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->shareContext($context);\n }\n\n /**\n * The context shared across channels and stacks.\n *\n * @return array\n * @static\n */\n public static function sharedContext()\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->sharedContext();\n }\n\n /**\n * Flush the log context on all currently resolved channels.\n *\n * @param string[]|null $keys\n * @return \\Illuminate\\Log\\LogManager\n * @static\n */\n public static function withoutContext($keys = null)\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->withoutContext($keys);\n }\n\n /**\n * Flush the shared context.\n *\n * @return \\Illuminate\\Log\\LogManager\n * @static\n */\n public static function flushSharedContext()\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->flushSharedContext();\n }\n\n /**\n * Get the default log driver name.\n *\n * @return string|null\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Set the default log driver name.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultDriver($name)\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->setDefaultDriver($name);\n }\n\n /**\n * Register a custom driver creator Closure.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @param-closure-this $this $callback\n * @return \\Illuminate\\Log\\LogManager\n * @static\n */\n public static function extend($driver, $callback)\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->extend($driver, $callback);\n }\n\n /**\n * Unset the given channel instance.\n *\n * @param string|null $driver\n * @return void\n * @static\n */\n public static function forgetChannel($driver = null)\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->forgetChannel($driver);\n }\n\n /**\n * Get all of the resolved log channels.\n *\n * @return array\n * @static\n */\n public static function getChannels()\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->getChannels();\n }\n\n /**\n * System is unusable.\n *\n * @param string|\\Stringable $message\n * @param array $context\n * @return void\n * @static\n */\n public static function emergency($message, $context = [])\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->emergency($message, $context);\n }\n\n /**\n * Action must be taken immediately.\n * \n * Example: Entire website down, database unavailable, etc. This should\n * trigger the SMS alerts and wake you up.\n *\n * @param string|\\Stringable $message\n * @param array $context\n * @return void\n * @static\n */\n public static function alert($message, $context = [])\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->alert($message, $context);\n }\n\n /**\n * Critical conditions.\n * \n * Example: Application component unavailable, unexpected exception.\n *\n * @param string|\\Stringable $message\n * @param array $context\n * @return void\n * @static\n */\n public static function critical($message, $context = [])\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->critical($message, $context);\n }\n\n /**\n * Runtime errors that do not require immediate action but should typically\n * be logged and monitored.\n *\n * @param string|\\Stringable $message\n * @param array $context\n * @return void\n * @static\n */\n public static function error($message, $context = [])\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->error($message, $context);\n }\n\n /**\n * Exceptional occurrences that are not errors.\n * \n * Example: Use of deprecated APIs, poor use of an API, undesirable things\n * that are not necessarily wrong.\n *\n * @param string|\\Stringable $message\n * @param array $context\n * @return void\n * @static\n */\n public static function warning($message, $context = [])\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->warning($message, $context);\n }\n\n /**\n * Normal but significant events.\n *\n * @param string|\\Stringable $message\n * @param array $context\n * @return void\n * @static\n */\n public static function notice($message, $context = [])\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->notice($message, $context);\n }\n\n /**\n * Interesting events.\n * \n * Example: User logs in, SQL logs.\n *\n * @param string|\\Stringable $message\n * @param array $context\n * @return void\n * @static\n */\n public static function info($message, $context = [])\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->info($message, $context);\n }\n\n /**\n * Detailed debug information.\n *\n * @param string|\\Stringable $message\n * @param array $context\n * @return void\n * @static\n */\n public static function debug($message, $context = [])\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->debug($message, $context);\n }\n\n /**\n * Logs with an arbitrary level.\n *\n * @param mixed $level\n * @param string|\\Stringable $message\n * @param array $context\n * @return void\n * @static\n */\n public static function log($level, $message, $context = [])\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n $instance->log($level, $message, $context);\n }\n\n /**\n * Set the application instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Foundation\\Application $app\n * @return \\Illuminate\\Log\\LogManager\n * @static\n */\n public static function setApplication($app)\n {\n /** @var \\Illuminate\\Log\\LogManager $instance */\n return $instance->setApplication($app);\n }\n\n }\n /**\n * @method static void alwaysFrom(string $address, string|null $name = null)\n * @method static void alwaysReplyTo(string $address, string|null $name = null)\n * @method static void alwaysReturnPath(string $address)\n * @method static void alwaysTo(string $address, string|null $name = null)\n * @method static \\Illuminate\\Mail\\SentMessage|null html(string $html, mixed $callback)\n * @method static \\Illuminate\\Mail\\SentMessage|null plain(string $view, array $data, mixed $callback)\n * @method static string render(string|array $view, array $data = [])\n * @method static mixed onQueue(\\BackedEnum|string|null $queue, \\Illuminate\\Contracts\\Mail\\Mailable $view)\n * @method static mixed queueOn(string $queue, \\Illuminate\\Contracts\\Mail\\Mailable $view)\n * @method static mixed laterOn(string $queue, \\DateTimeInterface|\\DateInterval|int $delay, \\Illuminate\\Contracts\\Mail\\Mailable $view)\n * @method static \\Symfony\\Component\\Mailer\\Transport\\TransportInterface getSymfonyTransport()\n * @method static \\Illuminate\\Contracts\\View\\Factory getViewFactory()\n * @method static void setSymfonyTransport(\\Symfony\\Component\\Mailer\\Transport\\TransportInterface $transport)\n * @method static \\Illuminate\\Mail\\Mailer setQueue(\\Illuminate\\Contracts\\Queue\\Factory $queue)\n * @method static void macro(string $name, object|callable $macro)\n * @method static void mixin(object $mixin, bool $replace = true)\n * @method static bool hasMacro(string $name)\n * @method static void flushMacros()\n * @see \\Illuminate\\Mail\\MailManager\n * @see \\Illuminate\\Support\\Testing\\Fakes\\MailFake\n */\n class Mail {\n /**\n * Get a mailer instance by name.\n *\n * @param string|null $name\n * @return \\Illuminate\\Contracts\\Mail\\Mailer\n * @static\n */\n public static function mailer($name = null)\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n return $instance->mailer($name);\n }\n\n /**\n * Get a mailer driver instance.\n *\n * @param string|null $driver\n * @return \\Illuminate\\Mail\\Mailer\n * @static\n */\n public static function driver($driver = null)\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n return $instance->driver($driver);\n }\n\n /**\n * Build a new mailer instance.\n *\n * @param array $config\n * @return \\Illuminate\\Mail\\Mailer\n * @static\n */\n public static function build($config)\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n return $instance->build($config);\n }\n\n /**\n * Create a new transport instance.\n *\n * @param array $config\n * @return \\Symfony\\Component\\Mailer\\Transport\\TransportInterface\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function createSymfonyTransport($config)\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n return $instance->createSymfonyTransport($config);\n }\n\n /**\n * Get the default mail driver name.\n *\n * @return string\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Set the default mail driver name.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultDriver($name)\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n $instance->setDefaultDriver($name);\n }\n\n /**\n * Disconnect the given mailer and remove from local cache.\n *\n * @param string|null $name\n * @return void\n * @static\n */\n public static function purge($name = null)\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n $instance->purge($name);\n }\n\n /**\n * Register a custom transport creator Closure.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @return \\Illuminate\\Mail\\MailManager\n * @static\n */\n public static function extend($driver, $callback)\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n return $instance->extend($driver, $callback);\n }\n\n /**\n * Get the application instance used by the manager.\n *\n * @return \\Illuminate\\Contracts\\Foundation\\Application\n * @static\n */\n public static function getApplication()\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n return $instance->getApplication();\n }\n\n /**\n * Set the application instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Foundation\\Application $app\n * @return \\Illuminate\\Mail\\MailManager\n * @static\n */\n public static function setApplication($app)\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n return $instance->setApplication($app);\n }\n\n /**\n * Forget all of the resolved mailer instances.\n *\n * @return \\Illuminate\\Mail\\MailManager\n * @static\n */\n public static function forgetMailers()\n {\n /** @var \\Illuminate\\Mail\\MailManager $instance */\n return $instance->forgetMailers();\n }\n\n /**\n * Assert if a mailable was sent based on a truth-test callback.\n *\n * @param string|\\Closure $mailable\n * @param callable|array|string|int|null $callback\n * @return void\n * @static\n */\n public static function assertSent($mailable, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertSent($mailable, $callback);\n }\n\n /**\n * Determine if a mailable was not sent or queued to be sent based on a truth-test callback.\n *\n * @param string|\\Closure $mailable\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertNotOutgoing($mailable, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertNotOutgoing($mailable, $callback);\n }\n\n /**\n * Determine if a mailable was not sent based on a truth-test callback.\n *\n * @param string|\\Closure $mailable\n * @param callable|array|string|null $callback\n * @return void\n * @static\n */\n public static function assertNotSent($mailable, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertNotSent($mailable, $callback);\n }\n\n /**\n * Assert that no mailables were sent or queued to be sent.\n *\n * @return void\n * @static\n */\n public static function assertNothingOutgoing()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertNothingOutgoing();\n }\n\n /**\n * Assert that no mailables were sent.\n *\n * @return void\n * @static\n */\n public static function assertNothingSent()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertNothingSent();\n }\n\n /**\n * Assert if a mailable was queued based on a truth-test callback.\n *\n * @param string|\\Closure $mailable\n * @param callable|array|string|int|null $callback\n * @return void\n * @static\n */\n public static function assertQueued($mailable, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertQueued($mailable, $callback);\n }\n\n /**\n * Determine if a mailable was not queued based on a truth-test callback.\n *\n * @param string|\\Closure $mailable\n * @param callable|array|string|null $callback\n * @return void\n * @static\n */\n public static function assertNotQueued($mailable, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertNotQueued($mailable, $callback);\n }\n\n /**\n * Assert that no mailables were queued.\n *\n * @return void\n * @static\n */\n public static function assertNothingQueued()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertNothingQueued();\n }\n\n /**\n * Assert the total number of mailables that were sent.\n *\n * @param int $count\n * @return void\n * @static\n */\n public static function assertSentCount($count)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertSentCount($count);\n }\n\n /**\n * Assert the total number of mailables that were queued.\n *\n * @param int $count\n * @return void\n * @static\n */\n public static function assertQueuedCount($count)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertQueuedCount($count);\n }\n\n /**\n * Assert the total number of mailables that were sent or queued.\n *\n * @param int $count\n * @return void\n * @static\n */\n public static function assertOutgoingCount($count)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->assertOutgoingCount($count);\n }\n\n /**\n * Get all of the mailables matching a truth-test callback.\n *\n * @param string|\\Closure $mailable\n * @param callable|null $callback\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function sent($mailable, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n return $instance->sent($mailable, $callback);\n }\n\n /**\n * Determine if the given mailable has been sent.\n *\n * @param string $mailable\n * @return bool\n * @static\n */\n public static function hasSent($mailable)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n return $instance->hasSent($mailable);\n }\n\n /**\n * Get all of the queued mailables matching a truth-test callback.\n *\n * @param string|\\Closure $mailable\n * @param callable|null $callback\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function queued($mailable, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n return $instance->queued($mailable, $callback);\n }\n\n /**\n * Determine if the given mailable has been queued.\n *\n * @param string $mailable\n * @return bool\n * @static\n */\n public static function hasQueued($mailable)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n return $instance->hasQueued($mailable);\n }\n\n /**\n * Begin the process of mailing a mailable class instance.\n *\n * @param mixed $users\n * @return \\Illuminate\\Mail\\PendingMail\n * @static\n */\n public static function to($users)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n return $instance->to($users);\n }\n\n /**\n * Begin the process of mailing a mailable class instance.\n *\n * @param mixed $users\n * @return \\Illuminate\\Mail\\PendingMail\n * @static\n */\n public static function cc($users)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n return $instance->cc($users);\n }\n\n /**\n * Begin the process of mailing a mailable class instance.\n *\n * @param mixed $users\n * @return \\Illuminate\\Mail\\PendingMail\n * @static\n */\n public static function bcc($users)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n return $instance->bcc($users);\n }\n\n /**\n * Send a new message with only a raw text part.\n *\n * @param string $text\n * @param \\Closure|string $callback\n * @return void\n * @static\n */\n public static function raw($text, $callback)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->raw($text, $callback);\n }\n\n /**\n * Send a new message using a view.\n *\n * @param \\Illuminate\\Contracts\\Mail\\Mailable|string|array $view\n * @param array $data\n * @param \\Closure|string|null $callback\n * @return mixed|void\n * @static\n */\n public static function send($view, $data = [], $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n return $instance->send($view, $data, $callback);\n }\n\n /**\n * Send a new message synchronously using a view.\n *\n * @param \\Illuminate\\Contracts\\Mail\\Mailable|string|array $mailable\n * @param array $data\n * @param \\Closure|string|null $callback\n * @return void\n * @static\n */\n public static function sendNow($mailable, $data = [], $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n $instance->sendNow($mailable, $data, $callback);\n }\n\n /**\n * Queue a new message for sending.\n *\n * @param \\Illuminate\\Contracts\\Mail\\Mailable|string|array $view\n * @param string|null $queue\n * @return mixed\n * @static\n */\n public static function queue($view, $queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n return $instance->queue($view, $queue);\n }\n\n /**\n * Queue a new e-mail message for sending after (n) seconds.\n *\n * @param \\DateTimeInterface|\\DateInterval|int $delay\n * @param \\Illuminate\\Contracts\\Mail\\Mailable|string|array $view\n * @param string|null $queue\n * @return mixed\n * @static\n */\n public static function later($delay, $view, $queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\MailFake $instance */\n return $instance->later($delay, $view, $queue);\n }\n\n }\n /**\n * @see \\Illuminate\\Notifications\\ChannelManager\n * @see \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake\n */\n class Notification {\n /**\n * Send the given notification to the given notifiable entities.\n *\n * @param \\Illuminate\\Support\\Collection|mixed $notifiables\n * @param mixed $notification\n * @return void\n * @static\n */\n public static function send($notifiables, $notification)\n {\n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n $instance->send($notifiables, $notification);\n }\n\n /**\n * Send the given notification immediately.\n *\n * @param \\Illuminate\\Support\\Collection|mixed $notifiables\n * @param mixed $notification\n * @param array|null $channels\n * @return void\n * @static\n */\n public static function sendNow($notifiables, $notification, $channels = null)\n {\n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n $instance->sendNow($notifiables, $notification, $channels);\n }\n\n /**\n * Get a channel instance.\n *\n * @param string|null $name\n * @return mixed\n * @static\n */\n public static function channel($name = null)\n {\n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n return $instance->channel($name);\n }\n\n /**\n * Get the default channel driver name.\n *\n * @return string\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Get the default channel driver name.\n *\n * @return string\n * @static\n */\n public static function deliversVia()\n {\n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n return $instance->deliversVia();\n }\n\n /**\n * Set the default channel driver name.\n *\n * @param string $channel\n * @return void\n * @static\n */\n public static function deliverVia($channel)\n {\n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n $instance->deliverVia($channel);\n }\n\n /**\n * Set the locale of notifications.\n *\n * @param string $locale\n * @return \\Illuminate\\Notifications\\ChannelManager\n * @static\n */\n public static function locale($locale)\n {\n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n return $instance->locale($locale);\n }\n\n /**\n * Get a driver instance.\n *\n * @param string|null $driver\n * @return mixed\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function driver($driver = null)\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n return $instance->driver($driver);\n }\n\n /**\n * Register a custom driver creator Closure.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @return \\Illuminate\\Notifications\\ChannelManager\n * @static\n */\n public static function extend($driver, $callback)\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n return $instance->extend($driver, $callback);\n }\n\n /**\n * Get all of the created \"drivers\".\n *\n * @return array\n * @static\n */\n public static function getDrivers()\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n return $instance->getDrivers();\n }\n\n /**\n * Get the container instance used by the manager.\n *\n * @return \\Illuminate\\Contracts\\Container\\Container\n * @static\n */\n public static function getContainer()\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n return $instance->getContainer();\n }\n\n /**\n * Set the container instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Container\\Container $container\n * @return \\Illuminate\\Notifications\\ChannelManager\n * @static\n */\n public static function setContainer($container)\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n return $instance->setContainer($container);\n }\n\n /**\n * Forget all of the resolved driver instances.\n *\n * @return \\Illuminate\\Notifications\\ChannelManager\n * @static\n */\n public static function forgetDrivers()\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Notifications\\ChannelManager $instance */\n return $instance->forgetDrivers();\n }\n\n /**\n * Assert if a notification was sent on-demand based on a truth-test callback.\n *\n * @param string|\\Closure $notification\n * @param callable|null $callback\n * @return void\n * @throws \\Exception\n * @static\n */\n public static function assertSentOnDemand($notification, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n $instance->assertSentOnDemand($notification, $callback);\n }\n\n /**\n * Assert if a notification was sent based on a truth-test callback.\n *\n * @param mixed $notifiable\n * @param string|\\Closure $notification\n * @param callable|null $callback\n * @return void\n * @throws \\Exception\n * @static\n */\n public static function assertSentTo($notifiable, $notification, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n $instance->assertSentTo($notifiable, $notification, $callback);\n }\n\n /**\n * Assert if a notification was sent on-demand a number of times.\n *\n * @param string $notification\n * @param int $times\n * @return void\n * @static\n */\n public static function assertSentOnDemandTimes($notification, $times = 1)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n $instance->assertSentOnDemandTimes($notification, $times);\n }\n\n /**\n * Assert if a notification was sent a number of times.\n *\n * @param mixed $notifiable\n * @param string $notification\n * @param int $times\n * @return void\n * @static\n */\n public static function assertSentToTimes($notifiable, $notification, $times = 1)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n $instance->assertSentToTimes($notifiable, $notification, $times);\n }\n\n /**\n * Determine if a notification was sent based on a truth-test callback.\n *\n * @param mixed $notifiable\n * @param string|\\Closure $notification\n * @param callable|null $callback\n * @return void\n * @throws \\Exception\n * @static\n */\n public static function assertNotSentTo($notifiable, $notification, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n $instance->assertNotSentTo($notifiable, $notification, $callback);\n }\n\n /**\n * Assert that no notifications were sent.\n *\n * @return void\n * @static\n */\n public static function assertNothingSent()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n $instance->assertNothingSent();\n }\n\n /**\n * Assert that no notifications were sent to the given notifiable.\n *\n * @param mixed $notifiable\n * @return void\n * @throws \\Exception\n * @static\n */\n public static function assertNothingSentTo($notifiable)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n $instance->assertNothingSentTo($notifiable);\n }\n\n /**\n * Assert the total amount of times a notification was sent.\n *\n * @param string $notification\n * @param int $expectedCount\n * @return void\n * @static\n */\n public static function assertSentTimes($notification, $expectedCount)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n $instance->assertSentTimes($notification, $expectedCount);\n }\n\n /**\n * Assert the total count of notification that were sent.\n *\n * @param int $expectedCount\n * @return void\n * @static\n */\n public static function assertCount($expectedCount)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n $instance->assertCount($expectedCount);\n }\n\n /**\n * Get all of the notifications matching a truth-test callback.\n *\n * @param mixed $notifiable\n * @param string $notification\n * @param callable|null $callback\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function sent($notifiable, $notification, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n return $instance->sent($notifiable, $notification, $callback);\n }\n\n /**\n * Determine if there are more notifications left to inspect.\n *\n * @param mixed $notifiable\n * @param string $notification\n * @return bool\n * @static\n */\n public static function hasSent($notifiable, $notification)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n return $instance->hasSent($notifiable, $notification);\n }\n\n /**\n * Specify if notification should be serialized and restored when being \"pushed\" to the queue.\n *\n * @param bool $serializeAndRestore\n * @return \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake\n * @static\n */\n public static function serializeAndRestore($serializeAndRestore = true)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n return $instance->serializeAndRestore($serializeAndRestore);\n }\n\n /**\n * Get the notifications that have been sent.\n *\n * @return array\n * @static\n */\n public static function sentNotifications()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake $instance */\n return $instance->sentNotifications();\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake::flushMacros();\n }\n\n }\n /**\n * @method static string sendResetLink(array $credentials, \\Closure|null $callback = null)\n * @method static mixed reset(array $credentials, \\Closure $callback)\n * @method static \\Illuminate\\Contracts\\Auth\\CanResetPassword|null getUser(array $credentials)\n * @method static string createToken(\\Illuminate\\Contracts\\Auth\\CanResetPassword $user)\n * @method static void deleteToken(\\Illuminate\\Contracts\\Auth\\CanResetPassword $user)\n * @method static bool tokenExists(\\Illuminate\\Contracts\\Auth\\CanResetPassword $user, string $token)\n * @method static \\Illuminate\\Auth\\Passwords\\TokenRepositoryInterface getRepository()\n * @method static \\Illuminate\\Support\\Timebox getTimebox()\n * @see \\Illuminate\\Auth\\Passwords\\PasswordBrokerManager\n * @see \\Illuminate\\Auth\\Passwords\\PasswordBroker\n */\n class Password {\n /**\n * Attempt to get the broker from the local cache.\n *\n * @param string|null $name\n * @return \\Illuminate\\Contracts\\Auth\\PasswordBroker\n * @static\n */\n public static function broker($name = null)\n {\n /** @var \\Illuminate\\Auth\\Passwords\\PasswordBrokerManager $instance */\n return $instance->broker($name);\n }\n\n /**\n * Get the default password broker name.\n *\n * @return string\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Auth\\Passwords\\PasswordBrokerManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Set the default password broker name.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultDriver($name)\n {\n /** @var \\Illuminate\\Auth\\Passwords\\PasswordBrokerManager $instance */\n $instance->setDefaultDriver($name);\n }\n\n }\n /**\n * @method static \\Illuminate\\Process\\PendingProcess command(array|string $command)\n * @method static \\Illuminate\\Process\\PendingProcess path(string $path)\n * @method static \\Illuminate\\Process\\PendingProcess timeout(int $timeout)\n * @method static \\Illuminate\\Process\\PendingProcess idleTimeout(int $timeout)\n * @method static \\Illuminate\\Process\\PendingProcess forever()\n * @method static \\Illuminate\\Process\\PendingProcess env(array $environment)\n * @method static \\Illuminate\\Process\\PendingProcess input(\\Traversable|resource|string|int|float|bool|null $input)\n * @method static \\Illuminate\\Process\\PendingProcess quietly()\n * @method static \\Illuminate\\Process\\PendingProcess tty(bool $tty = true)\n * @method static \\Illuminate\\Process\\PendingProcess options(array $options)\n * @method static \\Illuminate\\Contracts\\Process\\ProcessResult run(array|string|null $command = null, callable|null $output = null)\n * @method static \\Illuminate\\Process\\InvokedProcess start(array|string|null $command = null, callable|null $output = null)\n * @method static bool supportsTty()\n * @method static \\Illuminate\\Process\\PendingProcess withFakeHandlers(array $fakeHandlers)\n * @method static \\Illuminate\\Process\\PendingProcess|mixed when(\\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null)\n * @method static \\Illuminate\\Process\\PendingProcess|mixed unless(\\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null)\n * @see \\Illuminate\\Process\\PendingProcess\n * @see \\Illuminate\\Process\\Factory\n */\n class Process {\n /**\n * Create a new fake process response for testing purposes.\n *\n * @param array|string $output\n * @param array|string $errorOutput\n * @param int $exitCode\n * @return \\Illuminate\\Process\\FakeProcessResult\n * @static\n */\n public static function result($output = '', $errorOutput = '', $exitCode = 0)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->result($output, $errorOutput, $exitCode);\n }\n\n /**\n * Begin describing a fake process lifecycle.\n *\n * @return \\Illuminate\\Process\\FakeProcessDescription\n * @static\n */\n public static function describe()\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->describe();\n }\n\n /**\n * Begin describing a fake process sequence.\n *\n * @param array $processes\n * @return \\Illuminate\\Process\\FakeProcessSequence\n * @static\n */\n public static function sequence($processes = [])\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->sequence($processes);\n }\n\n /**\n * Indicate that the process factory should fake processes.\n *\n * @param \\Closure|array|null $callback\n * @return \\Illuminate\\Process\\Factory\n * @static\n */\n public static function fake($callback = null)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->fake($callback);\n }\n\n /**\n * Determine if the process factory has fake process handlers and is recording processes.\n *\n * @return bool\n * @static\n */\n public static function isRecording()\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->isRecording();\n }\n\n /**\n * Record the given process if processes should be recorded.\n *\n * @param \\Illuminate\\Process\\PendingProcess $process\n * @param \\Illuminate\\Contracts\\Process\\ProcessResult $result\n * @return \\Illuminate\\Process\\Factory\n * @static\n */\n public static function recordIfRecording($process, $result)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->recordIfRecording($process, $result);\n }\n\n /**\n * Record the given process.\n *\n * @param \\Illuminate\\Process\\PendingProcess $process\n * @param \\Illuminate\\Contracts\\Process\\ProcessResult $result\n * @return \\Illuminate\\Process\\Factory\n * @static\n */\n public static function record($process, $result)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->record($process, $result);\n }\n\n /**\n * Indicate that an exception should be thrown if any process is not faked.\n *\n * @param bool $prevent\n * @return \\Illuminate\\Process\\Factory\n * @static\n */\n public static function preventStrayProcesses($prevent = true)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->preventStrayProcesses($prevent);\n }\n\n /**\n * Determine if stray processes are being prevented.\n *\n * @return bool\n * @static\n */\n public static function preventingStrayProcesses()\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->preventingStrayProcesses();\n }\n\n /**\n * Assert that a process was recorded matching a given truth test.\n *\n * @param \\Closure|string $callback\n * @return \\Illuminate\\Process\\Factory\n * @static\n */\n public static function assertRan($callback)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->assertRan($callback);\n }\n\n /**\n * Assert that a process was recorded a given number of times matching a given truth test.\n *\n * @param \\Closure|string $callback\n * @param int $times\n * @return \\Illuminate\\Process\\Factory\n * @static\n */\n public static function assertRanTimes($callback, $times = 1)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->assertRanTimes($callback, $times);\n }\n\n /**\n * Assert that a process was not recorded matching a given truth test.\n *\n * @param \\Closure|string $callback\n * @return \\Illuminate\\Process\\Factory\n * @static\n */\n public static function assertNotRan($callback)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->assertNotRan($callback);\n }\n\n /**\n * Assert that a process was not recorded matching a given truth test.\n *\n * @param \\Closure|string $callback\n * @return \\Illuminate\\Process\\Factory\n * @static\n */\n public static function assertDidntRun($callback)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->assertDidntRun($callback);\n }\n\n /**\n * Assert that no processes were recorded.\n *\n * @return \\Illuminate\\Process\\Factory\n * @static\n */\n public static function assertNothingRan()\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->assertNothingRan();\n }\n\n /**\n * Start defining a pool of processes.\n *\n * @param callable $callback\n * @return \\Illuminate\\Process\\Pool\n * @static\n */\n public static function pool($callback)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->pool($callback);\n }\n\n /**\n * Start defining a series of piped processes.\n *\n * @param callable|array $callback\n * @return \\Illuminate\\Contracts\\Process\\ProcessResult\n * @static\n */\n public static function pipe($callback, $output = null)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->pipe($callback, $output);\n }\n\n /**\n * Run a pool of processes and wait for them to finish executing.\n *\n * @param callable $callback\n * @param callable|null $output\n * @return \\Illuminate\\Process\\ProcessPoolResults\n * @static\n */\n public static function concurrently($callback, $output = null)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->concurrently($callback, $output);\n }\n\n /**\n * Create a new pending process associated with this factory.\n *\n * @return \\Illuminate\\Process\\PendingProcess\n * @static\n */\n public static function newPendingProcess()\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->newPendingProcess();\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Process\\Factory::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Process\\Factory::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Process\\Factory::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Process\\Factory::flushMacros();\n }\n\n /**\n * Dynamically handle calls to the class.\n *\n * @param string $method\n * @param array $parameters\n * @return mixed\n * @throws \\BadMethodCallException\n * @static\n */\n public static function macroCall($method, $parameters)\n {\n /** @var \\Illuminate\\Process\\Factory $instance */\n return $instance->macroCall($method, $parameters);\n }\n\n }\n /**\n * @see \\Illuminate\\Queue\\QueueManager\n * @see \\Illuminate\\Queue\\Queue\n * @see \\Illuminate\\Support\\Testing\\Fakes\\QueueFake\n */\n class Queue {\n /**\n * Register an event listener for the before job event.\n *\n * @param mixed $callback\n * @return void\n * @static\n */\n public static function before($callback)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n $instance->before($callback);\n }\n\n /**\n * Register an event listener for the after job event.\n *\n * @param mixed $callback\n * @return void\n * @static\n */\n public static function after($callback)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n $instance->after($callback);\n }\n\n /**\n * Register an event listener for the exception occurred job event.\n *\n * @param mixed $callback\n * @return void\n * @static\n */\n public static function exceptionOccurred($callback)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n $instance->exceptionOccurred($callback);\n }\n\n /**\n * Register an event listener for the daemon queue loop.\n *\n * @param mixed $callback\n * @return void\n * @static\n */\n public static function looping($callback)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n $instance->looping($callback);\n }\n\n /**\n * Register an event listener for the failed job event.\n *\n * @param mixed $callback\n * @return void\n * @static\n */\n public static function failing($callback)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n $instance->failing($callback);\n }\n\n /**\n * Register an event listener for the daemon queue starting.\n *\n * @param mixed $callback\n * @return void\n * @static\n */\n public static function starting($callback)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n $instance->starting($callback);\n }\n\n /**\n * Register an event listener for the daemon queue stopping.\n *\n * @param mixed $callback\n * @return void\n * @static\n */\n public static function stopping($callback)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n $instance->stopping($callback);\n }\n\n /**\n * Determine if the driver is connected.\n *\n * @param string|null $name\n * @return bool\n * @static\n */\n public static function connected($name = null)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n return $instance->connected($name);\n }\n\n /**\n * Resolve a queue connection instance.\n *\n * @param string|null $name\n * @return \\Illuminate\\Contracts\\Queue\\Queue\n * @static\n */\n public static function connection($name = null)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n return $instance->connection($name);\n }\n\n /**\n * Add a queue connection resolver.\n *\n * @param string $driver\n * @param \\Closure $resolver\n * @return void\n * @static\n */\n public static function extend($driver, $resolver)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n $instance->extend($driver, $resolver);\n }\n\n /**\n * Add a queue connection resolver.\n *\n * @param string $driver\n * @param \\Closure $resolver\n * @return void\n * @static\n */\n public static function addConnector($driver, $resolver)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n $instance->addConnector($driver, $resolver);\n }\n\n /**\n * Get the name of the default queue connection.\n *\n * @return string\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Set the name of the default queue connection.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultDriver($name)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n $instance->setDefaultDriver($name);\n }\n\n /**\n * Get the full name for the given connection.\n *\n * @param string|null $connection\n * @return string\n * @static\n */\n public static function getName($connection = null)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n return $instance->getName($connection);\n }\n\n /**\n * Get the application instance used by the manager.\n *\n * @return \\Illuminate\\Contracts\\Foundation\\Application\n * @static\n */\n public static function getApplication()\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n return $instance->getApplication();\n }\n\n /**\n * Set the application instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Foundation\\Application $app\n * @return \\Illuminate\\Queue\\QueueManager\n * @static\n */\n public static function setApplication($app)\n {\n /** @var \\Illuminate\\Queue\\QueueManager $instance */\n return $instance->setApplication($app);\n }\n\n /**\n * Specify the jobs that should be queued instead of faked.\n *\n * @param array|string $jobsToBeQueued\n * @return \\Illuminate\\Support\\Testing\\Fakes\\QueueFake\n * @static\n */\n public static function except($jobsToBeQueued)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->except($jobsToBeQueued);\n }\n\n /**\n * Assert if a job was pushed based on a truth-test callback.\n *\n * @param string|\\Closure $job\n * @param callable|int|null $callback\n * @return void\n * @static\n */\n public static function assertPushed($job, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n $instance->assertPushed($job, $callback);\n }\n\n /**\n * Assert if a job was pushed based on a truth-test callback.\n *\n * @param string $queue\n * @param string|\\Closure $job\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertPushedOn($queue, $job, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n $instance->assertPushedOn($queue, $job, $callback);\n }\n\n /**\n * Assert if a job was pushed with chained jobs based on a truth-test callback.\n *\n * @param string $job\n * @param array $expectedChain\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertPushedWithChain($job, $expectedChain = [], $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n $instance->assertPushedWithChain($job, $expectedChain, $callback);\n }\n\n /**\n * Assert if a job was pushed with an empty chain based on a truth-test callback.\n *\n * @param string $job\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertPushedWithoutChain($job, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n $instance->assertPushedWithoutChain($job, $callback);\n }\n\n /**\n * Assert if a closure was pushed based on a truth-test callback.\n *\n * @param callable|int|null $callback\n * @return void\n * @static\n */\n public static function assertClosurePushed($callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n $instance->assertClosurePushed($callback);\n }\n\n /**\n * Assert that a closure was not pushed based on a truth-test callback.\n *\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertClosureNotPushed($callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n $instance->assertClosureNotPushed($callback);\n }\n\n /**\n * Determine if a job was pushed based on a truth-test callback.\n *\n * @param string|\\Closure $job\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function assertNotPushed($job, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n $instance->assertNotPushed($job, $callback);\n }\n\n /**\n * Assert the total count of jobs that were pushed.\n *\n * @param int $expectedCount\n * @return void\n * @static\n */\n public static function assertCount($expectedCount)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n $instance->assertCount($expectedCount);\n }\n\n /**\n * Assert that no jobs were pushed.\n *\n * @return void\n * @static\n */\n public static function assertNothingPushed()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n $instance->assertNothingPushed();\n }\n\n /**\n * Get all of the jobs matching a truth-test callback.\n *\n * @param string $job\n * @param callable|null $callback\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function pushed($job, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->pushed($job, $callback);\n }\n\n /**\n * Get all of the raw pushes matching a truth-test callback.\n *\n * @param null|\\Closure(string, ?string, array): bool $callback\n * @return \\Illuminate\\Support\\Collection<int, RawPushType>\n * @static\n */\n public static function pushedRaw($callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->pushedRaw($callback);\n }\n\n /**\n * Get all of the jobs by listener class, passing an optional truth-test callback.\n *\n * @param class-string $listenerClass\n * @param (\\Closure(mixed, \\Illuminate\\Events\\CallQueuedListener, string|null, mixed): bool)|null $callback\n * @return \\Illuminate\\Support\\Collection<int, \\Illuminate\\Events\\CallQueuedListener>\n * @static\n */\n public static function listenersPushed($listenerClass, $callback = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->listenersPushed($listenerClass, $callback);\n }\n\n /**\n * Determine if there are any stored jobs for a given class.\n *\n * @param string $job\n * @return bool\n * @static\n */\n public static function hasPushed($job)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->hasPushed($job);\n }\n\n /**\n * Get the size of the queue.\n *\n * @param string|null $queue\n * @return int\n * @static\n */\n public static function size($queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->size($queue);\n }\n\n /**\n * Get the number of pending jobs.\n *\n * @param string|null $queue\n * @return int\n * @static\n */\n public static function pendingSize($queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->pendingSize($queue);\n }\n\n /**\n * Get the number of delayed jobs.\n *\n * @param string|null $queue\n * @return int\n * @static\n */\n public static function delayedSize($queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->delayedSize($queue);\n }\n\n /**\n * Get the number of reserved jobs.\n *\n * @param string|null $queue\n * @return int\n * @static\n */\n public static function reservedSize($queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->reservedSize($queue);\n }\n\n /**\n * Get the creation timestamp of the oldest pending job, excluding delayed jobs.\n *\n * @param string|null $queue\n * @return int|null\n * @static\n */\n public static function creationTimeOfOldestPendingJob($queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->creationTimeOfOldestPendingJob($queue);\n }\n\n /**\n * Push a new job onto the queue.\n *\n * @param string|object $job\n * @param mixed $data\n * @param string|null $queue\n * @return mixed\n * @static\n */\n public static function push($job, $data = '', $queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->push($job, $data, $queue);\n }\n\n /**\n * Determine if a job should be faked or actually dispatched.\n *\n * @param object $job\n * @return bool\n * @static\n */\n public static function shouldFakeJob($job)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->shouldFakeJob($job);\n }\n\n /**\n * Push a raw payload onto the queue.\n *\n * @param string $payload\n * @param string|null $queue\n * @param array $options\n * @return mixed\n * @static\n */\n public static function pushRaw($payload, $queue = null, $options = [])\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->pushRaw($payload, $queue, $options);\n }\n\n /**\n * Push a new job onto the queue after (n) seconds.\n *\n * @param \\DateTimeInterface|\\DateInterval|int $delay\n * @param string|object $job\n * @param mixed $data\n * @param string|null $queue\n * @return mixed\n * @static\n */\n public static function later($delay, $job, $data = '', $queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->later($delay, $job, $data, $queue);\n }\n\n /**\n * Push a new job onto the queue.\n *\n * @param string $queue\n * @param string|object $job\n * @param mixed $data\n * @return mixed\n * @static\n */\n public static function pushOn($queue, $job, $data = '')\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->pushOn($queue, $job, $data);\n }\n\n /**\n * Push a new job onto a specific queue after (n) seconds.\n *\n * @param string $queue\n * @param \\DateTimeInterface|\\DateInterval|int $delay\n * @param string|object $job\n * @param mixed $data\n * @return mixed\n * @static\n */\n public static function laterOn($queue, $delay, $job, $data = '')\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->laterOn($queue, $delay, $job, $data);\n }\n\n /**\n * Pop the next job off of the queue.\n *\n * @param string|null $queue\n * @return \\Illuminate\\Contracts\\Queue\\Job|null\n * @static\n */\n public static function pop($queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->pop($queue);\n }\n\n /**\n * Push an array of jobs onto the queue.\n *\n * @param array $jobs\n * @param mixed $data\n * @param string|null $queue\n * @return mixed\n * @static\n */\n public static function bulk($jobs, $data = '', $queue = null)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->bulk($jobs, $data, $queue);\n }\n\n /**\n * Get the jobs that have been pushed.\n *\n * @return array\n * @static\n */\n public static function pushedJobs()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->pushedJobs();\n }\n\n /**\n * Get the payloads that were pushed raw.\n *\n * @return list<RawPushType>\n * @static\n */\n public static function rawPushes()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->rawPushes();\n }\n\n /**\n * Specify if jobs should be serialized and restored when being \"pushed\" to the queue.\n *\n * @param bool $serializeAndRestore\n * @return \\Illuminate\\Support\\Testing\\Fakes\\QueueFake\n * @static\n */\n public static function serializeAndRestore($serializeAndRestore = true)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->serializeAndRestore($serializeAndRestore);\n }\n\n /**\n * Get the connection name for the queue.\n *\n * @return string\n * @static\n */\n public static function getConnectionName()\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->getConnectionName();\n }\n\n /**\n * Set the connection name for the queue.\n *\n * @param string $name\n * @return \\Illuminate\\Support\\Testing\\Fakes\\QueueFake\n * @static\n */\n public static function setConnectionName($name)\n {\n /** @var \\Illuminate\\Support\\Testing\\Fakes\\QueueFake $instance */\n return $instance->setConnectionName($name);\n }\n\n /**\n * Migrate the delayed jobs that are ready to the regular queue.\n *\n * @param string $from\n * @param string $to\n * @return array\n * @static\n */\n public static function migrateExpiredJobs($from, $to)\n {\n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n return $instance->migrateExpiredJobs($from, $to);\n }\n\n /**\n * Delete a reserved job from the queue.\n *\n * @param string $queue\n * @param \\Illuminate\\Queue\\Jobs\\RedisJob $job\n * @return void\n * @static\n */\n public static function deleteReserved($queue, $job)\n {\n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n $instance->deleteReserved($queue, $job);\n }\n\n /**\n * Delete a reserved job from the reserved queue and release it.\n *\n * @param string $queue\n * @param \\Illuminate\\Queue\\Jobs\\RedisJob $job\n * @param int $delay\n * @return void\n * @static\n */\n public static function deleteAndRelease($queue, $job, $delay)\n {\n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n $instance->deleteAndRelease($queue, $job, $delay);\n }\n\n /**\n * Delete all of the jobs from the queue.\n *\n * @param string $queue\n * @return int\n * @static\n */\n public static function clear($queue)\n {\n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n return $instance->clear($queue);\n }\n\n /**\n * Get the queue or return the default.\n *\n * @param string|null $queue\n * @return string\n * @static\n */\n public static function getQueue($queue)\n {\n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n return $instance->getQueue($queue);\n }\n\n /**\n * Get the connection for the queue.\n *\n * @return \\Illuminate\\Redis\\Connections\\Connection\n * @static\n */\n public static function getConnection()\n {\n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n return $instance->getConnection();\n }\n\n /**\n * Get the underlying Redis instance.\n *\n * @return \\Illuminate\\Contracts\\Redis\\Factory\n * @static\n */\n public static function getRedis()\n {\n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n return $instance->getRedis();\n }\n\n /**\n * Get the maximum number of attempts for an object-based queue handler.\n *\n * @param mixed $job\n * @return mixed\n * @static\n */\n public static function getJobTries($job)\n {\n //Method inherited from \\Illuminate\\Queue\\Queue \n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n return $instance->getJobTries($job);\n }\n\n /**\n * Get the backoff for an object-based queue handler.\n *\n * @param mixed $job\n * @return mixed\n * @static\n */\n public static function getJobBackoff($job)\n {\n //Method inherited from \\Illuminate\\Queue\\Queue \n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n return $instance->getJobBackoff($job);\n }\n\n /**\n * Get the expiration timestamp for an object-based queue handler.\n *\n * @param mixed $job\n * @return mixed\n * @static\n */\n public static function getJobExpiration($job)\n {\n //Method inherited from \\Illuminate\\Queue\\Queue \n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n return $instance->getJobExpiration($job);\n }\n\n /**\n * Register a callback to be executed when creating job payloads.\n *\n * @param callable|null $callback\n * @return void\n * @static\n */\n public static function createPayloadUsing($callback)\n {\n //Method inherited from \\Illuminate\\Queue\\Queue \n \\Illuminate\\Queue\\RedisQueue::createPayloadUsing($callback);\n }\n\n /**\n * Get the container instance being used by the connection.\n *\n * @return \\Illuminate\\Container\\Container\n * @static\n */\n public static function getContainer()\n {\n //Method inherited from \\Illuminate\\Queue\\Queue \n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n return $instance->getContainer();\n }\n\n /**\n * Set the IoC container instance.\n *\n * @param \\Illuminate\\Container\\Container $container\n * @return void\n * @static\n */\n public static function setContainer($container)\n {\n //Method inherited from \\Illuminate\\Queue\\Queue \n /** @var \\Illuminate\\Queue\\RedisQueue $instance */\n $instance->setContainer($container);\n }\n\n }\n /**\n * @see \\Illuminate\\Cache\\RateLimiter\n */\n class RateLimiter {\n /**\n * Register a named limiter configuration.\n *\n * @param \\BackedEnum|\\UnitEnum|string $name\n * @param \\Closure $callback\n * @return \\Illuminate\\Cache\\RateLimiter\n * @static\n */\n public static function for($name, $callback)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->for($name, $callback);\n }\n\n /**\n * Get the given named rate limiter.\n *\n * @param \\BackedEnum|\\UnitEnum|string $name\n * @return \\Closure|null\n * @static\n */\n public static function limiter($name)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->limiter($name);\n }\n\n /**\n * Attempts to execute a callback if it's not limited.\n *\n * @param string $key\n * @param int $maxAttempts\n * @param \\Closure $callback\n * @param \\DateTimeInterface|\\DateInterval|int $decaySeconds\n * @return mixed\n * @static\n */\n public static function attempt($key, $maxAttempts, $callback, $decaySeconds = 60)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->attempt($key, $maxAttempts, $callback, $decaySeconds);\n }\n\n /**\n * Determine if the given key has been \"accessed\" too many times.\n *\n * @param string $key\n * @param int $maxAttempts\n * @return bool\n * @static\n */\n public static function tooManyAttempts($key, $maxAttempts)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->tooManyAttempts($key, $maxAttempts);\n }\n\n /**\n * Increment (by 1) the counter for a given key for a given decay time.\n *\n * @param string $key\n * @param \\DateTimeInterface|\\DateInterval|int $decaySeconds\n * @return int\n * @static\n */\n public static function hit($key, $decaySeconds = 60)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->hit($key, $decaySeconds);\n }\n\n /**\n * Increment the counter for a given key for a given decay time by a given amount.\n *\n * @param string $key\n * @param \\DateTimeInterface|\\DateInterval|int $decaySeconds\n * @param int $amount\n * @return int\n * @static\n */\n public static function increment($key, $decaySeconds = 60, $amount = 1)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->increment($key, $decaySeconds, $amount);\n }\n\n /**\n * Decrement the counter for a given key for a given decay time by a given amount.\n *\n * @param string $key\n * @param \\DateTimeInterface|\\DateInterval|int $decaySeconds\n * @param int $amount\n * @return int\n * @static\n */\n public static function decrement($key, $decaySeconds = 60, $amount = 1)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->decrement($key, $decaySeconds, $amount);\n }\n\n /**\n * Get the number of attempts for the given key.\n *\n * @param string $key\n * @return mixed\n * @static\n */\n public static function attempts($key)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->attempts($key);\n }\n\n /**\n * Reset the number of attempts for the given key.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function resetAttempts($key)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->resetAttempts($key);\n }\n\n /**\n * Get the number of retries left for the given key.\n *\n * @param string $key\n * @param int $maxAttempts\n * @return int\n * @static\n */\n public static function remaining($key, $maxAttempts)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->remaining($key, $maxAttempts);\n }\n\n /**\n * Get the number of retries left for the given key.\n *\n * @param string $key\n * @param int $maxAttempts\n * @return int\n * @static\n */\n public static function retriesLeft($key, $maxAttempts)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->retriesLeft($key, $maxAttempts);\n }\n\n /**\n * Clear the hits and lockout timer for the given key.\n *\n * @param string $key\n * @return void\n * @static\n */\n public static function clear($key)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n $instance->clear($key);\n }\n\n /**\n * Get the number of seconds until the \"key\" is accessible again.\n *\n * @param string $key\n * @return int\n * @static\n */\n public static function availableIn($key)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->availableIn($key);\n }\n\n /**\n * Clean the rate limiter key from unicode characters.\n *\n * @param string $key\n * @return string\n * @static\n */\n public static function cleanRateLimiterKey($key)\n {\n /** @var \\Illuminate\\Cache\\RateLimiter $instance */\n return $instance->cleanRateLimiterKey($key);\n }\n\n }\n /**\n * @see \\Illuminate\\Routing\\Redirector\n */\n class Redirect {\n /**\n * Create a new redirect response to the previous location.\n *\n * @param int $status\n * @param array $headers\n * @param mixed $fallback\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function back($status = 302, $headers = [], $fallback = false)\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->back($status, $headers, $fallback);\n }\n\n /**\n * Create a new redirect response to the current URI.\n *\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function refresh($status = 302, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->refresh($status, $headers);\n }\n\n /**\n * Create a new redirect response, while putting the current URL in the session.\n *\n * @param string $path\n * @param int $status\n * @param array $headers\n * @param bool|null $secure\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function guest($path, $status = 302, $headers = [], $secure = null)\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->guest($path, $status, $headers, $secure);\n }\n\n /**\n * Create a new redirect response to the previously intended location.\n *\n * @param mixed $default\n * @param int $status\n * @param array $headers\n * @param bool|null $secure\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function intended($default = '/', $status = 302, $headers = [], $secure = null)\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->intended($default, $status, $headers, $secure);\n }\n\n /**\n * Create a new redirect response to the given path.\n *\n * @param string $path\n * @param int $status\n * @param array $headers\n * @param bool|null $secure\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function to($path, $status = 302, $headers = [], $secure = null)\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->to($path, $status, $headers, $secure);\n }\n\n /**\n * Create a new redirect response to an external URL (no validation).\n *\n * @param string $path\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function away($path, $status = 302, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->away($path, $status, $headers);\n }\n\n /**\n * Create a new redirect response to the given HTTPS path.\n *\n * @param string $path\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function secure($path, $status = 302, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->secure($path, $status, $headers);\n }\n\n /**\n * Create a new redirect response to a named route.\n *\n * @param \\BackedEnum|string $route\n * @param mixed $parameters\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function route($route, $parameters = [], $status = 302, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->route($route, $parameters, $status, $headers);\n }\n\n /**\n * Create a new redirect response to a signed named route.\n *\n * @param \\BackedEnum|string $route\n * @param mixed $parameters\n * @param \\DateTimeInterface|\\DateInterval|int|null $expiration\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function signedRoute($route, $parameters = [], $expiration = null, $status = 302, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->signedRoute($route, $parameters, $expiration, $status, $headers);\n }\n\n /**\n * Create a new redirect response to a signed named route.\n *\n * @param \\BackedEnum|string $route\n * @param \\DateTimeInterface|\\DateInterval|int|null $expiration\n * @param mixed $parameters\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function temporarySignedRoute($route, $expiration, $parameters = [], $status = 302, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->temporarySignedRoute($route, $expiration, $parameters, $status, $headers);\n }\n\n /**\n * Create a new redirect response to a controller action.\n *\n * @param string|array $action\n * @param mixed $parameters\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function action($action, $parameters = [], $status = 302, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->action($action, $parameters, $status, $headers);\n }\n\n /**\n * Get the URL generator instance.\n *\n * @return \\Illuminate\\Routing\\UrlGenerator\n * @static\n */\n public static function getUrlGenerator()\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->getUrlGenerator();\n }\n\n /**\n * Set the active session store.\n *\n * @param \\Illuminate\\Session\\Store $session\n * @return void\n * @static\n */\n public static function setSession($session)\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n $instance->setSession($session);\n }\n\n /**\n * Get the \"intended\" URL from the session.\n *\n * @return string|null\n * @static\n */\n public static function getIntendedUrl()\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->getIntendedUrl();\n }\n\n /**\n * Set the \"intended\" URL in the session.\n *\n * @param string $url\n * @return \\Illuminate\\Routing\\Redirector\n * @static\n */\n public static function setIntendedUrl($url)\n {\n /** @var \\Illuminate\\Routing\\Redirector $instance */\n return $instance->setIntendedUrl($url);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Routing\\Redirector::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Routing\\Redirector::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Routing\\Redirector::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Routing\\Redirector::flushMacros();\n }\n\n }\n /**\n * @see \\Illuminate\\Http\\Request\n */\n class Request {\n /**\n * Create a new Illuminate HTTP request from server variables.\n *\n * @return static\n * @static\n */\n public static function capture()\n {\n return \\Illuminate\\Http\\Request::capture();\n }\n\n /**\n * Return the Request instance.\n *\n * @return \\Illuminate\\Http\\Request\n * @static\n */\n public static function instance()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->instance();\n }\n\n /**\n * Get the request method.\n *\n * @return string\n * @static\n */\n public static function method()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->method();\n }\n\n /**\n * Get a URI instance for the request.\n *\n * @return \\Illuminate\\Support\\Uri\n * @static\n */\n public static function uri()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->uri();\n }\n\n /**\n * Get the root URL for the application.\n *\n * @return string\n * @static\n */\n public static function root()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->root();\n }\n\n /**\n * Get the URL (no query string) for the request.\n *\n * @return string\n * @static\n */\n public static function url()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->url();\n }\n\n /**\n * Get the full URL for the request.\n *\n * @return string\n * @static\n */\n public static function fullUrl()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->fullUrl();\n }\n\n /**\n * Get the full URL for the request with the added query string parameters.\n *\n * @param array $query\n * @return string\n * @static\n */\n public static function fullUrlWithQuery($query)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->fullUrlWithQuery($query);\n }\n\n /**\n * Get the full URL for the request without the given query string parameters.\n *\n * @param array|string $keys\n * @return string\n * @static\n */\n public static function fullUrlWithoutQuery($keys)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->fullUrlWithoutQuery($keys);\n }\n\n /**\n * Get the current path info for the request.\n *\n * @return string\n * @static\n */\n public static function path()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->path();\n }\n\n /**\n * Get the current decoded path info for the request.\n *\n * @return string\n * @static\n */\n public static function decodedPath()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->decodedPath();\n }\n\n /**\n * Get a segment from the URI (1 based index).\n *\n * @param int $index\n * @param string|null $default\n * @return string|null\n * @static\n */\n public static function segment($index, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->segment($index, $default);\n }\n\n /**\n * Get all of the segments for the request path.\n *\n * @return array\n * @static\n */\n public static function segments()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->segments();\n }\n\n /**\n * Determine if the current request URI matches a pattern.\n *\n * @param mixed $patterns\n * @return bool\n * @static\n */\n public static function is(...$patterns)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->is(...$patterns);\n }\n\n /**\n * Determine if the route name matches a given pattern.\n *\n * @param mixed $patterns\n * @return bool\n * @static\n */\n public static function routeIs(...$patterns)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->routeIs(...$patterns);\n }\n\n /**\n * Determine if the current request URL and query string match a pattern.\n *\n * @param mixed $patterns\n * @return bool\n * @static\n */\n public static function fullUrlIs(...$patterns)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->fullUrlIs(...$patterns);\n }\n\n /**\n * Get the host name.\n *\n * @return string\n * @static\n */\n public static function host()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->host();\n }\n\n /**\n * Get the HTTP host being requested.\n *\n * @return string\n * @static\n */\n public static function httpHost()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->httpHost();\n }\n\n /**\n * Get the scheme and HTTP host.\n *\n * @return string\n * @static\n */\n public static function schemeAndHttpHost()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->schemeAndHttpHost();\n }\n\n /**\n * Determine if the request is the result of an AJAX call.\n *\n * @return bool\n * @static\n */\n public static function ajax()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->ajax();\n }\n\n /**\n * Determine if the request is the result of a PJAX call.\n *\n * @return bool\n * @static\n */\n public static function pjax()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->pjax();\n }\n\n /**\n * Determine if the request is the result of a prefetch call.\n *\n * @return bool\n * @static\n */\n public static function prefetch()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->prefetch();\n }\n\n /**\n * Determine if the request is over HTTPS.\n *\n * @return bool\n * @static\n */\n public static function secure()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->secure();\n }\n\n /**\n * Get the client IP address.\n *\n * @return string|null\n * @static\n */\n public static function ip()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->ip();\n }\n\n /**\n * Get the client IP addresses.\n *\n * @return array\n * @static\n */\n public static function ips()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->ips();\n }\n\n /**\n * Get the client user agent.\n *\n * @return string|null\n * @static\n */\n public static function userAgent()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->userAgent();\n }\n\n /**\n * Merge new input into the current request's input array.\n *\n * @param array $input\n * @return \\Illuminate\\Http\\Request\n * @static\n */\n public static function merge($input)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->merge($input);\n }\n\n /**\n * Merge new input into the request's input, but only when that key is missing from the request.\n *\n * @param array $input\n * @return \\Illuminate\\Http\\Request\n * @static\n */\n public static function mergeIfMissing($input)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->mergeIfMissing($input);\n }\n\n /**\n * Replace the input values for the current request.\n *\n * @param array $input\n * @return \\Illuminate\\Http\\Request\n * @static\n */\n public static function replace($input)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->replace($input);\n }\n\n /**\n * This method belongs to Symfony HttpFoundation and is not usually needed when using Laravel.\n * \n * Instead, you may use the \"input\" method.\n *\n * @param string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function get($key, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->get($key, $default);\n }\n\n /**\n * Get the JSON payload for the request.\n *\n * @param string|null $key\n * @param mixed $default\n * @return ($key is null ? \\Symfony\\Component\\HttpFoundation\\InputBag : mixed)\n * @static\n */\n public static function json($key = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->json($key, $default);\n }\n\n /**\n * Create a new request instance from the given Laravel request.\n *\n * @param \\Illuminate\\Http\\Request $from\n * @param \\Illuminate\\Http\\Request|null $to\n * @return static\n * @static\n */\n public static function createFrom($from, $to = null)\n {\n return \\Illuminate\\Http\\Request::createFrom($from, $to);\n }\n\n /**\n * Create an Illuminate request from a Symfony instance.\n *\n * @param \\Symfony\\Component\\HttpFoundation\\Request $request\n * @return static\n * @static\n */\n public static function createFromBase($request)\n {\n return \\Illuminate\\Http\\Request::createFromBase($request);\n }\n\n /**\n * Clones a request and overrides some of its parameters.\n *\n * @return static\n * @param array|null $query The GET parameters\n * @param array|null $request The POST parameters\n * @param array|null $attributes The request attributes (parameters parsed from the PATH_INFO, ...)\n * @param array|null $cookies The COOKIE parameters\n * @param array|null $files The FILES parameters\n * @param array|null $server The SERVER parameters\n * @static\n */\n public static function duplicate($query = null, $request = null, $attributes = null, $cookies = null, $files = null, $server = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->duplicate($query, $request, $attributes, $cookies, $files, $server);\n }\n\n /**\n * Whether the request contains a Session object.\n * \n * This method does not give any information about the state of the session object,\n * like whether the session is started or not. It is just a way to check if this Request\n * is associated with a Session instance.\n *\n * @param bool $skipIfUninitialized When true, ignores factories injected by `setSessionFactory`\n * @static\n */\n public static function hasSession($skipIfUninitialized = false)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->hasSession($skipIfUninitialized);\n }\n\n /**\n * Gets the Session.\n *\n * @throws SessionNotFoundException When session is not set properly\n * @static\n */\n public static function getSession()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getSession();\n }\n\n /**\n * Get the session associated with the request.\n *\n * @return \\Illuminate\\Contracts\\Session\\Session\n * @throws \\RuntimeException\n * @static\n */\n public static function session()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->session();\n }\n\n /**\n * Set the session instance on the request.\n *\n * @param \\Illuminate\\Contracts\\Session\\Session $session\n * @return void\n * @static\n */\n public static function setLaravelSession($session)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n $instance->setLaravelSession($session);\n }\n\n /**\n * Set the locale for the request instance.\n *\n * @param string $locale\n * @return void\n * @static\n */\n public static function setRequestLocale($locale)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n $instance->setRequestLocale($locale);\n }\n\n /**\n * Set the default locale for the request instance.\n *\n * @param string $locale\n * @return void\n * @static\n */\n public static function setDefaultRequestLocale($locale)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n $instance->setDefaultRequestLocale($locale);\n }\n\n /**\n * Get the user making the request.\n *\n * @param string|null $guard\n * @return mixed\n * @static\n */\n public static function user($guard = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->user($guard);\n }\n\n /**\n * Get the route handling the request.\n *\n * @param string|null $param\n * @param mixed $default\n * @return ($param is null ? \\Illuminate\\Routing\\Route : object|string|null)\n * @static\n */\n public static function route($param = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->route($param, $default);\n }\n\n /**\n * Get a unique fingerprint for the request / route / IP address.\n *\n * @return string\n * @throws \\RuntimeException\n * @static\n */\n public static function fingerprint()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->fingerprint();\n }\n\n /**\n * Set the JSON payload for the request.\n *\n * @param \\Symfony\\Component\\HttpFoundation\\InputBag $json\n * @return \\Illuminate\\Http\\Request\n * @static\n */\n public static function setJson($json)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->setJson($json);\n }\n\n /**\n * Get the user resolver callback.\n *\n * @return \\Closure\n * @static\n */\n public static function getUserResolver()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getUserResolver();\n }\n\n /**\n * Set the user resolver callback.\n *\n * @param \\Closure $callback\n * @return \\Illuminate\\Http\\Request\n * @static\n */\n public static function setUserResolver($callback)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->setUserResolver($callback);\n }\n\n /**\n * Get the route resolver callback.\n *\n * @return \\Closure\n * @static\n */\n public static function getRouteResolver()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getRouteResolver();\n }\n\n /**\n * Set the route resolver callback.\n *\n * @param \\Closure $callback\n * @return \\Illuminate\\Http\\Request\n * @static\n */\n public static function setRouteResolver($callback)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->setRouteResolver($callback);\n }\n\n /**\n * Get all of the input and files for the request.\n *\n * @return array\n * @static\n */\n public static function toArray()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->toArray();\n }\n\n /**\n * Determine if the given offset exists.\n *\n * @param string $offset\n * @return bool\n * @static\n */\n public static function offsetExists($offset)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->offsetExists($offset);\n }\n\n /**\n * Get the value at the given offset.\n *\n * @param string $offset\n * @return mixed\n * @static\n */\n public static function offsetGet($offset)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->offsetGet($offset);\n }\n\n /**\n * Set the value at the given offset.\n *\n * @param string $offset\n * @param mixed $value\n * @return void\n * @static\n */\n public static function offsetSet($offset, $value)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n $instance->offsetSet($offset, $value);\n }\n\n /**\n * Remove the value at the given offset.\n *\n * @param string $offset\n * @return void\n * @static\n */\n public static function offsetUnset($offset)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n $instance->offsetUnset($offset);\n }\n\n /**\n * Sets the parameters for this request.\n * \n * This method also re-initializes all properties.\n *\n * @param array $query The GET parameters\n * @param array $request The POST parameters\n * @param array $attributes The request attributes (parameters parsed from the PATH_INFO, ...)\n * @param array $cookies The COOKIE parameters\n * @param array $files The FILES parameters\n * @param array $server The SERVER parameters\n * @param string|resource|null $content The raw body data\n * @static\n */\n public static function initialize($query = [], $request = [], $attributes = [], $cookies = [], $files = [], $server = [], $content = null)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->initialize($query, $request, $attributes, $cookies, $files, $server, $content);\n }\n\n /**\n * Creates a new request with values from PHP's super globals.\n *\n * @static\n */\n public static function createFromGlobals()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::createFromGlobals();\n }\n\n /**\n * Creates a Request based on a given URI and configuration.\n * \n * The information contained in the URI always take precedence\n * over the other information (server and parameters).\n *\n * @param string $uri The URI\n * @param string $method The HTTP method\n * @param array $parameters The query (GET) or request (POST) parameters\n * @param array $cookies The request cookies ($_COOKIE)\n * @param array $files The request files ($_FILES)\n * @param array $server The server parameters ($_SERVER)\n * @param string|resource|null $content The raw body data\n * @throws BadRequestException When the URI is invalid\n * @static\n */\n public static function create($uri, $method = 'GET', $parameters = [], $cookies = [], $files = [], $server = [], $content = null)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::create($uri, $method, $parameters, $cookies, $files, $server, $content);\n }\n\n /**\n * Sets a callable able to create a Request instance.\n * \n * This is mainly useful when you need to override the Request class\n * to keep BC with an existing system. It should not be used for any\n * other purpose.\n *\n * @static\n */\n public static function setFactory($callable)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::setFactory($callable);\n }\n\n /**\n * Overrides the PHP global variables according to this request instance.\n * \n * It overrides $_GET, $_POST, $_REQUEST, $_SERVER, $_COOKIE.\n * $_FILES is never overridden, see rfc1867\n *\n * @static\n */\n public static function overrideGlobals()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->overrideGlobals();\n }\n\n /**\n * Sets a list of trusted proxies.\n * \n * You should only list the reverse proxies that you manage directly.\n *\n * @param array $proxies A list of trusted proxies, the string 'REMOTE_ADDR' will be replaced with $_SERVER['REMOTE_ADDR'] and 'PRIVATE_SUBNETS' by IpUtils::PRIVATE_SUBNETS\n * @param int-mask-of<Request::HEADER_*> $trustedHeaderSet A bit field to set which headers to trust from your proxies\n * @static\n */\n public static function setTrustedProxies($proxies, $trustedHeaderSet)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::setTrustedProxies($proxies, $trustedHeaderSet);\n }\n\n /**\n * Gets the list of trusted proxies.\n *\n * @return string[]\n * @static\n */\n public static function getTrustedProxies()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::getTrustedProxies();\n }\n\n /**\n * Gets the set of trusted headers from trusted proxies.\n *\n * @return int A bit field of Request::HEADER_* that defines which headers are trusted from your proxies\n * @static\n */\n public static function getTrustedHeaderSet()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::getTrustedHeaderSet();\n }\n\n /**\n * Sets a list of trusted host patterns.\n * \n * You should only list the hosts you manage using regexs.\n *\n * @param array $hostPatterns A list of trusted host patterns\n * @static\n */\n public static function setTrustedHosts($hostPatterns)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::setTrustedHosts($hostPatterns);\n }\n\n /**\n * Gets the list of trusted host patterns.\n *\n * @return string[]\n * @static\n */\n public static function getTrustedHosts()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::getTrustedHosts();\n }\n\n /**\n * Normalizes a query string.\n * \n * It builds a normalized query string, where keys/value pairs are alphabetized,\n * have consistent escaping and unneeded delimiters are removed.\n *\n * @static\n */\n public static function normalizeQueryString($qs)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::normalizeQueryString($qs);\n }\n\n /**\n * Enables support for the _method request parameter to determine the intended HTTP method.\n * \n * Be warned that enabling this feature might lead to CSRF issues in your code.\n * Check that you are using CSRF tokens when required.\n * If the HTTP method parameter override is enabled, an html-form with method \"POST\" can be altered\n * and used to send a \"PUT\" or \"DELETE\" request via the _method request parameter.\n * If these methods are not protected against CSRF, this presents a possible vulnerability.\n * \n * The HTTP method can only be overridden when the real HTTP method is POST.\n *\n * @static\n */\n public static function enableHttpMethodParameterOverride()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::enableHttpMethodParameterOverride();\n }\n\n /**\n * Checks whether support for the _method request parameter is enabled.\n *\n * @static\n */\n public static function getHttpMethodParameterOverride()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::getHttpMethodParameterOverride();\n }\n\n /**\n * Sets the list of HTTP methods that can be overridden.\n * \n * Set to null to allow all methods to be overridden (default). Set to an\n * empty array to disallow overrides entirely. Otherwise, provide the list\n * of uppercased method names that are allowed.\n *\n * @param \\Symfony\\Component\\HttpFoundation\\uppercase-string[]|null $methods\n * @static\n */\n public static function setAllowedHttpMethodOverride($methods)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::setAllowedHttpMethodOverride($methods);\n }\n\n /**\n * Gets the list of HTTP methods that can be overridden.\n *\n * @return \\Symfony\\Component\\HttpFoundation\\uppercase-string[]|null\n * @static\n */\n public static function getAllowedHttpMethodOverride()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::getAllowedHttpMethodOverride();\n }\n\n /**\n * Whether the request contains a Session which was started in one of the\n * previous requests.\n *\n * @static\n */\n public static function hasPreviousSession()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->hasPreviousSession();\n }\n\n /**\n * @static\n */\n public static function setSession($session)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->setSession($session);\n }\n\n /**\n * @internal\n * @param callable(): SessionInterface $factory\n * @static\n */\n public static function setSessionFactory($factory)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->setSessionFactory($factory);\n }\n\n /**\n * Returns the client IP addresses.\n * \n * In the returned array the most trusted IP address is first, and the\n * least trusted one last. The \"real\" client IP address is the last one,\n * but this is also the least trusted one. Trusted proxies are stripped.\n * \n * Use this method carefully; you should use getClientIp() instead.\n *\n * @see getClientIp()\n * @static\n */\n public static function getClientIps()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getClientIps();\n }\n\n /**\n * Returns the client IP address.\n * \n * This method can read the client IP address from the \"X-Forwarded-For\" header\n * when trusted proxies were set via \"setTrustedProxies()\". The \"X-Forwarded-For\"\n * header value is a comma+space separated list of IP addresses, the left-most\n * being the original client, and each successive proxy that passed the request\n * adding the IP address where it received the request from.\n * \n * If your reverse proxy uses a different header name than \"X-Forwarded-For\",\n * (\"Client-Ip\" for instance), configure it via the $trustedHeaderSet\n * argument of the Request::setTrustedProxies() method instead.\n *\n * @see getClientIps()\n * @see https://wikipedia.org/wiki/X-Forwarded-For\n * @static\n */\n public static function getClientIp()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getClientIp();\n }\n\n /**\n * Returns current script name.\n *\n * @static\n */\n public static function getScriptName()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getScriptName();\n }\n\n /**\n * Returns the path being requested relative to the executed script.\n * \n * The path info always starts with a /.\n * \n * Suppose this request is instantiated from /mysite on localhost:\n * \n * * http://localhost/mysite returns an empty string\n * * http://localhost/mysite/about returns '/about'\n * * http://localhost/mysite/enco%20ded returns '/enco%20ded'\n * * http://localhost/mysite/about?var=1 returns '/about'\n *\n * @return string The raw path (i.e. not urldecoded)\n * @static\n */\n public static function getPathInfo()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getPathInfo();\n }\n\n /**\n * Returns the root path from which this request is executed.\n * \n * Suppose that an index.php file instantiates this request object:\n * \n * * http://localhost/index.php returns an empty string\n * * http://localhost/index.php/page returns an empty string\n * * http://localhost/web/index.php returns '/web'\n * * http://localhost/we%20b/index.php returns '/we%20b'\n *\n * @return string The raw path (i.e. not urldecoded)\n * @static\n */\n public static function getBasePath()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getBasePath();\n }\n\n /**\n * Returns the root URL from which this request is executed.\n * \n * The base URL never ends with a /.\n * \n * This is similar to getBasePath(), except that it also includes the\n * script filename (e.g. index.php) if one exists.\n *\n * @return string The raw URL (i.e. not urldecoded)\n * @static\n */\n public static function getBaseUrl()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getBaseUrl();\n }\n\n /**\n * Gets the request's scheme.\n *\n * @static\n */\n public static function getScheme()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getScheme();\n }\n\n /**\n * Returns the port on which the request is made.\n * \n * This method can read the client port from the \"X-Forwarded-Port\" header\n * when trusted proxies were set via \"setTrustedProxies()\".\n * \n * The \"X-Forwarded-Port\" header must contain the client port.\n *\n * @return int|string|null Can be a string if fetched from the server bag\n * @static\n */\n public static function getPort()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getPort();\n }\n\n /**\n * Returns the user.\n *\n * @static\n */\n public static function getUser()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getUser();\n }\n\n /**\n * Returns the password.\n *\n * @static\n */\n public static function getPassword()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getPassword();\n }\n\n /**\n * Gets the user info.\n *\n * @return string|null A user name if any and, optionally, scheme-specific information about how to gain authorization to access the server\n * @static\n */\n public static function getUserInfo()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getUserInfo();\n }\n\n /**\n * Returns the HTTP host being requested.\n * \n * The port name will be appended to the host if it's non-standard.\n *\n * @static\n */\n public static function getHttpHost()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getHttpHost();\n }\n\n /**\n * Returns the requested URI (path and query string).\n *\n * @return string The raw URI (i.e. not URI decoded)\n * @static\n */\n public static function getRequestUri()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getRequestUri();\n }\n\n /**\n * Gets the scheme and HTTP host.\n * \n * If the URL was called with basic authentication, the user\n * and the password are not added to the generated string.\n *\n * @static\n */\n public static function getSchemeAndHttpHost()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getSchemeAndHttpHost();\n }\n\n /**\n * Generates a normalized URI (URL) for the Request.\n *\n * @see getQueryString()\n * @static\n */\n public static function getUri()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getUri();\n }\n\n /**\n * Generates a normalized URI for the given path.\n *\n * @param string $path A path to use instead of the current one\n * @static\n */\n public static function getUriForPath($path)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getUriForPath($path);\n }\n\n /**\n * Returns the path as relative reference from the current Request path.\n * \n * Only the URIs path component (no schema, host etc.) is relevant and must be given.\n * Both paths must be absolute and not contain relative parts.\n * Relative URLs from one resource to another are useful when generating self-contained downloadable document archives.\n * Furthermore, they can be used to reduce the link size in documents.\n * \n * Example target paths, given a base path of \"/a/b/c/d\":\n * - \"/a/b/c/d\" -> \"\"\n * - \"/a/b/c/\" -> \"./\"\n * - \"/a/b/\" -> \"../\"\n * - \"/a/b/c/other\" -> \"other\"\n * - \"/a/x/y\" -> \"../../x/y\"\n *\n * @static\n */\n public static function getRelativeUriForPath($path)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getRelativeUriForPath($path);\n }\n\n /**\n * Generates the normalized query string for the Request.\n * \n * It builds a normalized query string, where keys/value pairs are alphabetized\n * and have consistent escaping.\n *\n * @static\n */\n public static function getQueryString()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getQueryString();\n }\n\n /**\n * Checks whether the request is secure or not.\n * \n * This method can read the client protocol from the \"X-Forwarded-Proto\" header\n * when trusted proxies were set via \"setTrustedProxies()\".\n * \n * The \"X-Forwarded-Proto\" header must contain the protocol: \"https\" or \"http\".\n *\n * @static\n */\n public static function isSecure()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isSecure();\n }\n\n /**\n * Returns the host name.\n * \n * This method can read the client host name from the \"X-Forwarded-Host\" header\n * when trusted proxies were set via \"setTrustedProxies()\".\n * \n * The \"X-Forwarded-Host\" header must contain the client host name.\n *\n * @throws SuspiciousOperationException when the host name is invalid or not trusted\n * @static\n */\n public static function getHost()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getHost();\n }\n\n /**\n * Sets the request method.\n *\n * @static\n */\n public static function setMethod($method)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->setMethod($method);\n }\n\n /**\n * Gets the request \"intended\" method.\n * \n * If the X-HTTP-Method-Override header is set, and if the method is a POST,\n * then it is used to determine the \"real\" intended HTTP method.\n * \n * The _method request parameter can also be used to determine the HTTP method,\n * but only if enableHttpMethodParameterOverride() has been called.\n * \n * The method is always an uppercased string.\n *\n * @see getRealMethod()\n * @static\n */\n public static function getMethod()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getMethod();\n }\n\n /**\n * Gets the \"real\" request method.\n *\n * @see getMethod()\n * @static\n */\n public static function getRealMethod()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getRealMethod();\n }\n\n /**\n * Gets the mime type associated with the format.\n *\n * @static\n */\n public static function getMimeType($format)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getMimeType($format);\n }\n\n /**\n * Gets the mime types associated with the format.\n *\n * @return string[]\n * @static\n */\n public static function getMimeTypes($format)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n return \\Illuminate\\Http\\Request::getMimeTypes($format);\n }\n\n /**\n * Gets the format associated with the mime type.\n * \n * Resolution order:\n * 1) Exact match on the full MIME type (e.g. \"application/json\").\n * 2) Match on the canonical MIME type (i.e. before the first \";\" parameter).\n * 3) If the type is \"application/*+suffix\", use the structured syntax suffix\n * mapping (e.g. \"application/foo+json\" → \"json\"), when available.\n * 4) If $subtypeFallback is true and no match was found:\n * - return the MIME subtype (without \"x-\" prefix), provided it does not\n * contain a \"+\" (e.g. \"application/x-yaml\" → \"yaml\", \"text/csv\" → \"csv\").\n *\n * @param string|null $mimeType The mime type to check\n * @param bool $subtypeFallback Whether to fall back to the subtype if no exact match is found\n * @static\n */\n public static function getFormat($mimeType)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getFormat($mimeType);\n }\n\n /**\n * Associates a format with mime types.\n *\n * @param string $format The format to set\n * @param string|string[] $mimeTypes The associated mime types (the preferred one must be the first as it will be used as the content type)\n * @static\n */\n public static function setFormat($format, $mimeTypes)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->setFormat($format, $mimeTypes);\n }\n\n /**\n * Gets the request format.\n * \n * Here is the process to determine the format:\n * \n * * format defined by the user (with setRequestFormat())\n * * _format request attribute\n * * $default\n *\n * @see getPreferredFormat\n * @static\n */\n public static function getRequestFormat($default = 'html')\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getRequestFormat($default);\n }\n\n /**\n * Sets the request format.\n *\n * @static\n */\n public static function setRequestFormat($format)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->setRequestFormat($format);\n }\n\n /**\n * Gets the usual name of the format associated with the request's media type (provided in the Content-Type header).\n *\n * @see Request::$formats\n * @static\n */\n public static function getContentTypeFormat()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getContentTypeFormat();\n }\n\n /**\n * Sets the default locale.\n *\n * @static\n */\n public static function setDefaultLocale($locale)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->setDefaultLocale($locale);\n }\n\n /**\n * Get the default locale.\n *\n * @static\n */\n public static function getDefaultLocale()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getDefaultLocale();\n }\n\n /**\n * Sets the locale.\n *\n * @static\n */\n public static function setLocale($locale)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->setLocale($locale);\n }\n\n /**\n * Get the locale.\n *\n * @static\n */\n public static function getLocale()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getLocale();\n }\n\n /**\n * Checks if the request method is of specified type.\n *\n * @param string $method Uppercase request method (GET, POST etc)\n * @static\n */\n public static function isMethod($method)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isMethod($method);\n }\n\n /**\n * Checks whether or not the method is safe.\n *\n * @see https://tools.ietf.org/html/rfc7231#section-4.2.1\n * @static\n */\n public static function isMethodSafe()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isMethodSafe();\n }\n\n /**\n * Checks whether or not the method is idempotent.\n *\n * @static\n */\n public static function isMethodIdempotent()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isMethodIdempotent();\n }\n\n /**\n * Checks whether the method is cacheable or not.\n *\n * @see https://tools.ietf.org/html/rfc7231#section-4.2.3\n * @static\n */\n public static function isMethodCacheable()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isMethodCacheable();\n }\n\n /**\n * Returns the protocol version.\n * \n * If the application is behind a proxy, the protocol version used in the\n * requests between the client and the proxy and between the proxy and the\n * server might be different. This returns the former (from the \"Via\" header)\n * if the proxy is trusted (see \"setTrustedProxies()\"), otherwise it returns\n * the latter (from the \"SERVER_PROTOCOL\" server parameter).\n *\n * @static\n */\n public static function getProtocolVersion()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getProtocolVersion();\n }\n\n /**\n * Returns the request body content.\n *\n * @param bool $asResource If true, a resource will be returned\n * @return string|resource\n * @psalm-return ($asResource is true ? resource : string)\n * @static\n */\n public static function getContent($asResource = false)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getContent($asResource);\n }\n\n /**\n * Gets the decoded form or json request body.\n *\n * @throws JsonException When the body cannot be decoded to an array\n * @static\n */\n public static function getPayload()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getPayload();\n }\n\n /**\n * Gets the Etags.\n *\n * @static\n */\n public static function getETags()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getETags();\n }\n\n /**\n * @static\n */\n public static function isNoCache()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isNoCache();\n }\n\n /**\n * Gets the preferred format for the response by inspecting, in the following order:\n * * the request format set using setRequestFormat;\n * * the values of the Accept HTTP header.\n * \n * Note that if you use this method, you should send the \"Vary: Accept\" header\n * in the response to prevent any issues with intermediary HTTP caches.\n *\n * @static\n */\n public static function getPreferredFormat($default = 'html')\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getPreferredFormat($default);\n }\n\n /**\n * Returns the preferred language.\n *\n * @param string[] $locales An array of ordered available locales\n * @static\n */\n public static function getPreferredLanguage($locales = null)\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getPreferredLanguage($locales);\n }\n\n /**\n * Gets a list of languages acceptable by the client browser ordered in the user browser preferences.\n *\n * @return string[]\n * @static\n */\n public static function getLanguages()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getLanguages();\n }\n\n /**\n * Gets a list of charsets acceptable by the client browser in preferable order.\n *\n * @return string[]\n * @static\n */\n public static function getCharsets()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getCharsets();\n }\n\n /**\n * Gets a list of encodings acceptable by the client browser in preferable order.\n *\n * @return string[]\n * @static\n */\n public static function getEncodings()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getEncodings();\n }\n\n /**\n * Gets a list of content types acceptable by the client browser in preferable order.\n *\n * @return string[]\n * @static\n */\n public static function getAcceptableContentTypes()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->getAcceptableContentTypes();\n }\n\n /**\n * Returns true if the request is an XMLHttpRequest.\n * \n * It works if your JavaScript library sets an X-Requested-With HTTP header.\n * It is known to work with common JavaScript frameworks:\n *\n * @see https://wikipedia.org/wiki/List_of_Ajax_frameworks#JavaScript\n * @static\n */\n public static function isXmlHttpRequest()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isXmlHttpRequest();\n }\n\n /**\n * Checks whether the client browser prefers safe content or not according to RFC8674.\n *\n * @see https://tools.ietf.org/html/rfc8674\n * @static\n */\n public static function preferSafeContent()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->preferSafeContent();\n }\n\n /**\n * Indicates whether this request originated from a trusted proxy.\n * \n * This can be useful to determine whether or not to trust the\n * contents of a proxy-specific header.\n *\n * @static\n */\n public static function isFromTrustedProxy()\n {\n //Method inherited from \\Symfony\\Component\\HttpFoundation\\Request \n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isFromTrustedProxy();\n }\n\n /**\n * Filter the given array of rules into an array of rules that are included in precognitive headers.\n *\n * @param array $rules\n * @return array\n * @static\n */\n public static function filterPrecognitiveRules($rules)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->filterPrecognitiveRules($rules);\n }\n\n /**\n * Determine if the request is attempting to be precognitive.\n *\n * @return bool\n * @static\n */\n public static function isAttemptingPrecognition()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isAttemptingPrecognition();\n }\n\n /**\n * Determine if the request is precognitive.\n *\n * @return bool\n * @static\n */\n public static function isPrecognitive()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isPrecognitive();\n }\n\n /**\n * Determine if the request is sending JSON.\n *\n * @return bool\n * @static\n */\n public static function isJson()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isJson();\n }\n\n /**\n * Determine if the current request probably expects a JSON response.\n *\n * @return bool\n * @static\n */\n public static function expectsJson()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->expectsJson();\n }\n\n /**\n * Determine if the current request is asking for JSON.\n *\n * @return bool\n * @static\n */\n public static function wantsJson()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->wantsJson();\n }\n\n /**\n * Determines whether the current requests accepts a given content type.\n *\n * @param string|array $contentTypes\n * @return bool\n * @static\n */\n public static function accepts($contentTypes)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->accepts($contentTypes);\n }\n\n /**\n * Return the most suitable content type from the given array based on content negotiation.\n *\n * @param string|array $contentTypes\n * @return string|null\n * @static\n */\n public static function prefers($contentTypes)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->prefers($contentTypes);\n }\n\n /**\n * Determine if the current request accepts any content type.\n *\n * @return bool\n * @static\n */\n public static function acceptsAnyContentType()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->acceptsAnyContentType();\n }\n\n /**\n * Determines whether a request accepts JSON.\n *\n * @return bool\n * @static\n */\n public static function acceptsJson()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->acceptsJson();\n }\n\n /**\n * Determines whether a request accepts HTML.\n *\n * @return bool\n * @static\n */\n public static function acceptsHtml()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->acceptsHtml();\n }\n\n /**\n * Determine if the given content types match.\n *\n * @param string $actual\n * @param string $type\n * @return bool\n * @static\n */\n public static function matchesType($actual, $type)\n {\n return \\Illuminate\\Http\\Request::matchesType($actual, $type);\n }\n\n /**\n * Get the data format expected in the response.\n *\n * @param string $default\n * @return string\n * @static\n */\n public static function format($default = 'html')\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->format($default);\n }\n\n /**\n * Retrieve an old input item.\n *\n * @param string|null $key\n * @param \\Illuminate\\Database\\Eloquent\\Model|string|array|null $default\n * @return string|array|null\n * @static\n */\n public static function old($key = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->old($key, $default);\n }\n\n /**\n * Flash the input for the current request to the session.\n *\n * @return void\n * @static\n */\n public static function flash()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n $instance->flash();\n }\n\n /**\n * Flash only some of the input to the session.\n *\n * @param mixed $keys\n * @return void\n * @static\n */\n public static function flashOnly($keys)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n $instance->flashOnly($keys);\n }\n\n /**\n * Flash only some of the input to the session.\n *\n * @param mixed $keys\n * @return void\n * @static\n */\n public static function flashExcept($keys)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n $instance->flashExcept($keys);\n }\n\n /**\n * Flush all of the old input from the session.\n *\n * @return void\n * @static\n */\n public static function flush()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n $instance->flush();\n }\n\n /**\n * Retrieve a server variable from the request.\n *\n * @param string|null $key\n * @param string|array|null $default\n * @return string|array|null\n * @static\n */\n public static function server($key = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->server($key, $default);\n }\n\n /**\n * Determine if a header is set on the request.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function hasHeader($key)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->hasHeader($key);\n }\n\n /**\n * Retrieve a header from the request.\n *\n * @param string|null $key\n * @param string|array|null $default\n * @return string|array|null\n * @static\n */\n public static function header($key = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->header($key, $default);\n }\n\n /**\n * Get the bearer token from the request headers.\n *\n * @return string|null\n * @static\n */\n public static function bearerToken()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->bearerToken();\n }\n\n /**\n * Get the keys for all of the input and files.\n *\n * @return array\n * @static\n */\n public static function keys()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->keys();\n }\n\n /**\n * Get all of the input and files for the request.\n *\n * @param mixed $keys\n * @return array\n * @static\n */\n public static function all($keys = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->all($keys);\n }\n\n /**\n * Retrieve an input item from the request.\n *\n * @param string|null $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function input($key = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->input($key, $default);\n }\n\n /**\n * Retrieve input from the request as a Fluent object instance.\n *\n * @param array|string|null $key\n * @return \\Illuminate\\Support\\Fluent\n * @static\n */\n public static function fluent($key = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->fluent($key);\n }\n\n /**\n * Retrieve a query string item from the request.\n *\n * @param string|null $key\n * @param string|array|null $default\n * @return string|array|null\n * @static\n */\n public static function query($key = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->query($key, $default);\n }\n\n /**\n * Retrieve a request payload item from the request.\n *\n * @param string|null $key\n * @param string|array|null $default\n * @return string|array|null\n * @static\n */\n public static function post($key = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->post($key, $default);\n }\n\n /**\n * Determine if a cookie is set on the request.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function hasCookie($key)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->hasCookie($key);\n }\n\n /**\n * Retrieve a cookie from the request.\n *\n * @param string|null $key\n * @param string|array|null $default\n * @return string|array|null\n * @static\n */\n public static function cookie($key = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->cookie($key, $default);\n }\n\n /**\n * Get an array of all of the files on the request.\n *\n * @return array<string, \\Illuminate\\Http\\UploadedFile|\\Illuminate\\Http\\UploadedFile[]>\n * @static\n */\n public static function allFiles()\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->allFiles();\n }\n\n /**\n * Determine if the uploaded data contains a file.\n *\n * @param string $key\n * @return bool\n * @static\n */\n public static function hasFile($key)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->hasFile($key);\n }\n\n /**\n * Retrieve a file from the request.\n *\n * @param string|null $key\n * @param mixed $default\n * @return ($key is null ? array<string, \\Illuminate\\Http\\UploadedFile|\\Illuminate\\Http\\UploadedFile[]> : \\Illuminate\\Http\\UploadedFile|\\Illuminate\\Http\\UploadedFile[]|null)\n * @static\n */\n public static function file($key = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->file($key, $default);\n }\n\n /**\n * Dump the items.\n *\n * @param mixed $keys\n * @return \\Illuminate\\Http\\Request\n * @static\n */\n public static function dump($keys = [])\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->dump($keys);\n }\n\n /**\n * Dump the given arguments and terminate execution.\n *\n * @param mixed $args\n * @return never\n * @static\n */\n public static function dd(...$args)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->dd(...$args);\n }\n\n /**\n * Determine if the data contains a given key.\n *\n * @param string|array $key\n * @return bool\n * @static\n */\n public static function exists($key)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->exists($key);\n }\n\n /**\n * Determine if the data contains a given key.\n *\n * @param string|array $key\n * @return bool\n * @static\n */\n public static function has($key)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->has($key);\n }\n\n /**\n * Determine if the instance contains any of the given keys.\n *\n * @param string|array $keys\n * @return bool\n * @static\n */\n public static function hasAny($keys)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->hasAny($keys);\n }\n\n /**\n * Apply the callback if the instance contains the given key.\n *\n * @param string $key\n * @param callable $callback\n * @param callable|null $default\n * @return $this|mixed\n * @static\n */\n public static function whenHas($key, $callback, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->whenHas($key, $callback, $default);\n }\n\n /**\n * Determine if the instance contains a non-empty value for the given key.\n *\n * @param string|array $key\n * @return bool\n * @static\n */\n public static function filled($key)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->filled($key);\n }\n\n /**\n * Determine if the instance contains an empty value for the given key.\n *\n * @param string|array $key\n * @return bool\n * @static\n */\n public static function isNotFilled($key)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->isNotFilled($key);\n }\n\n /**\n * Determine if the instance contains a non-empty value for any of the given keys.\n *\n * @param string|array $keys\n * @return bool\n * @static\n */\n public static function anyFilled($keys)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->anyFilled($keys);\n }\n\n /**\n * Apply the callback if the instance contains a non-empty value for the given key.\n *\n * @param string $key\n * @param callable $callback\n * @param callable|null $default\n * @return $this|mixed\n * @static\n */\n public static function whenFilled($key, $callback, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->whenFilled($key, $callback, $default);\n }\n\n /**\n * Determine if the instance is missing a given key.\n *\n * @param string|array $key\n * @return bool\n * @static\n */\n public static function missing($key)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->missing($key);\n }\n\n /**\n * Apply the callback if the instance is missing the given key.\n *\n * @param string $key\n * @param callable $callback\n * @param callable|null $default\n * @return $this|mixed\n * @static\n */\n public static function whenMissing($key, $callback, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->whenMissing($key, $callback, $default);\n }\n\n /**\n * Retrieve data from the instance as a Stringable instance.\n *\n * @param string $key\n * @param mixed $default\n * @return \\Illuminate\\Support\\Stringable\n * @static\n */\n public static function str($key, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->str($key, $default);\n }\n\n /**\n * Retrieve data from the instance as a Stringable instance.\n *\n * @param string $key\n * @param mixed $default\n * @return \\Illuminate\\Support\\Stringable\n * @static\n */\n public static function string($key, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->string($key, $default);\n }\n\n /**\n * Retrieve data as a boolean value.\n * \n * Returns true when value is \"1\", \"true\", \"on\", and \"yes\". Otherwise, returns false.\n *\n * @param string|null $key\n * @param bool $default\n * @return bool\n * @static\n */\n public static function boolean($key = null, $default = false)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->boolean($key, $default);\n }\n\n /**\n * Retrieve data as an integer value.\n *\n * @param string $key\n * @param int $default\n * @return int\n * @static\n */\n public static function integer($key, $default = 0)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->integer($key, $default);\n }\n\n /**\n * Retrieve data as a float value.\n *\n * @param string $key\n * @param float $default\n * @return float\n * @static\n */\n public static function float($key, $default = 0.0)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->float($key, $default);\n }\n\n /**\n * Retrieve data from the instance as a Carbon instance.\n *\n * @param string $key\n * @param string|null $format\n * @param \\UnitEnum|string|null $tz\n * @return \\Illuminate\\Support\\Carbon|null\n * @throws \\Carbon\\Exceptions\\InvalidFormatException\n * @static\n */\n public static function date($key, $format = null, $tz = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->date($key, $format, $tz);\n }\n\n /**\n * Retrieve data from the instance as an enum.\n *\n * @template TEnum of \\BackedEnum\n * @param string $key\n * @param class-string<TEnum> $enumClass\n * @param TEnum|null $default\n * @return TEnum|null\n * @static\n */\n public static function enum($key, $enumClass, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->enum($key, $enumClass, $default);\n }\n\n /**\n * Retrieve data from the instance as an array of enums.\n *\n * @template TEnum of \\BackedEnum\n * @param string $key\n * @param class-string<TEnum> $enumClass\n * @return TEnum[]\n * @static\n */\n public static function enums($key, $enumClass)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->enums($key, $enumClass);\n }\n\n /**\n * Retrieve data from the instance as an array.\n *\n * @param array|string|null $key\n * @return array\n * @static\n */\n public static function array($key = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->array($key);\n }\n\n /**\n * Retrieve data from the instance as a collection.\n *\n * @param array|string|null $key\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function collect($key = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->collect($key);\n }\n\n /**\n * Get a subset containing the provided keys with values from the instance data.\n *\n * @param mixed $keys\n * @return array\n * @static\n */\n public static function only($keys)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->only($keys);\n }\n\n /**\n * Get all of the data except for a specified array of items.\n *\n * @param mixed $keys\n * @return array\n * @static\n */\n public static function except($keys)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->except($keys);\n }\n\n /**\n * Apply the callback if the given \"value\" is (or resolves to) truthy.\n *\n * @template TWhenParameter\n * @template TWhenReturnType\n * @param (\\Closure($this): TWhenParameter)|TWhenParameter|null $value\n * @param (callable($this, TWhenParameter): TWhenReturnType)|null $callback\n * @param (callable($this, TWhenParameter): TWhenReturnType)|null $default\n * @return $this|TWhenReturnType\n * @static\n */\n public static function when($value = null, $callback = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->when($value, $callback, $default);\n }\n\n /**\n * Apply the callback if the given \"value\" is (or resolves to) falsy.\n *\n * @template TUnlessParameter\n * @template TUnlessReturnType\n * @param (\\Closure($this): TUnlessParameter)|TUnlessParameter|null $value\n * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $callback\n * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $default\n * @return $this|TUnlessReturnType\n * @static\n */\n public static function unless($value = null, $callback = null, $default = null)\n {\n /** @var \\Illuminate\\Http\\Request $instance */\n return $instance->unless($value, $callback, $default);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Http\\Request::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Http\\Request::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Http\\Request::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Http\\Request::flushMacros();\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestValidation()\n * @param array $rules\n * @param mixed $params\n * @static\n */\n public static function validate($rules, ...$params)\n {\n return \\Illuminate\\Http\\Request::validate($rules, ...$params);\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestValidation()\n * @param string $errorBag\n * @param array $rules\n * @param mixed $params\n * @static\n */\n public static function validateWithBag($errorBag, $rules, ...$params)\n {\n return \\Illuminate\\Http\\Request::validateWithBag($errorBag, $rules, ...$params);\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestSignatureValidation()\n * @param mixed $absolute\n * @static\n */\n public static function hasValidSignature($absolute = true)\n {\n return \\Illuminate\\Http\\Request::hasValidSignature($absolute);\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestSignatureValidation()\n * @static\n */\n public static function hasValidRelativeSignature()\n {\n return \\Illuminate\\Http\\Request::hasValidRelativeSignature();\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestSignatureValidation()\n * @param mixed $ignoreQuery\n * @param mixed $absolute\n * @static\n */\n public static function hasValidSignatureWhileIgnoring($ignoreQuery = [], $absolute = true)\n {\n return \\Illuminate\\Http\\Request::hasValidSignatureWhileIgnoring($ignoreQuery, $absolute);\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestSignatureValidation()\n * @param mixed $ignoreQuery\n * @static\n */\n public static function hasValidRelativeSignatureWhileIgnoring($ignoreQuery = [])\n {\n return \\Illuminate\\Http\\Request::hasValidRelativeSignatureWhileIgnoring($ignoreQuery);\n }\n\n }\n /**\n * @see \\Illuminate\\Routing\\ResponseFactory\n */\n class Response {\n /**\n * Create a new response instance.\n *\n * @param mixed $content\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\Response\n * @static\n */\n public static function make($content = '', $status = 200, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->make($content, $status, $headers);\n }\n\n /**\n * Create a new \"no content\" response.\n *\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\Response\n * @static\n */\n public static function noContent($status = 204, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->noContent($status, $headers);\n }\n\n /**\n * Create a new response for a given view.\n *\n * @param string|array $view\n * @param array $data\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\Response\n * @static\n */\n public static function view($view, $data = [], $status = 200, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->view($view, $data, $status, $headers);\n }\n\n /**\n * Create a new JSON response instance.\n *\n * @param mixed $data\n * @param int $status\n * @param array $headers\n * @param int $options\n * @return \\Illuminate\\Http\\JsonResponse\n * @static\n */\n public static function json($data = [], $status = 200, $headers = [], $options = 0)\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->json($data, $status, $headers, $options);\n }\n\n /**\n * Create a new JSONP response instance.\n *\n * @param string $callback\n * @param mixed $data\n * @param int $status\n * @param array $headers\n * @param int $options\n * @return \\Illuminate\\Http\\JsonResponse\n * @static\n */\n public static function jsonp($callback, $data = [], $status = 200, $headers = [], $options = 0)\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->jsonp($callback, $data, $status, $headers, $options);\n }\n\n /**\n * Create a new event stream response.\n *\n * @param \\Closure $callback\n * @param array $headers\n * @param \\Illuminate\\Http\\StreamedEvent|string|null $endStreamWith\n * @return \\Symfony\\Component\\HttpFoundation\\StreamedResponse\n * @static\n */\n public static function eventStream($callback, $headers = [], $endStreamWith = '</stream>')\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->eventStream($callback, $headers, $endStreamWith);\n }\n\n /**\n * Create a new streamed response instance.\n *\n * @param callable|null $callback\n * @param int $status\n * @param array $headers\n * @return \\Symfony\\Component\\HttpFoundation\\StreamedResponse\n * @static\n */\n public static function stream($callback, $status = 200, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->stream($callback, $status, $headers);\n }\n\n /**\n * Create a new streamed JSON response instance.\n *\n * @param array $data\n * @param int $status\n * @param array $headers\n * @param int $encodingOptions\n * @return \\Symfony\\Component\\HttpFoundation\\StreamedJsonResponse\n * @static\n */\n public static function streamJson($data, $status = 200, $headers = [], $encodingOptions = 15)\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->streamJson($data, $status, $headers, $encodingOptions);\n }\n\n /**\n * Create a new streamed response instance as a file download.\n *\n * @param callable $callback\n * @param string|null $name\n * @param array $headers\n * @param string|null $disposition\n * @return \\Symfony\\Component\\HttpFoundation\\StreamedResponse\n * @throws \\Illuminate\\Routing\\Exceptions\\StreamedResponseException\n * @static\n */\n public static function streamDownload($callback, $name = null, $headers = [], $disposition = 'attachment')\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->streamDownload($callback, $name, $headers, $disposition);\n }\n\n /**\n * Create a new file download response.\n *\n * @param \\SplFileInfo|string $file\n * @param string|null $name\n * @param array $headers\n * @param string|null $disposition\n * @return \\Symfony\\Component\\HttpFoundation\\BinaryFileResponse\n * @static\n */\n public static function download($file, $name = null, $headers = [], $disposition = 'attachment')\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->download($file, $name, $headers, $disposition);\n }\n\n /**\n * Return the raw contents of a binary file.\n *\n * @param \\SplFileInfo|string $file\n * @param array $headers\n * @return \\Symfony\\Component\\HttpFoundation\\BinaryFileResponse\n * @static\n */\n public static function file($file, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->file($file, $headers);\n }\n\n /**\n * Create a new redirect response to the given path.\n *\n * @param string $path\n * @param int $status\n * @param array $headers\n * @param bool|null $secure\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function redirectTo($path, $status = 302, $headers = [], $secure = null)\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->redirectTo($path, $status, $headers, $secure);\n }\n\n /**\n * Create a new redirect response to a named route.\n *\n * @param \\BackedEnum|string $route\n * @param mixed $parameters\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function redirectToRoute($route, $parameters = [], $status = 302, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->redirectToRoute($route, $parameters, $status, $headers);\n }\n\n /**\n * Create a new redirect response to a controller action.\n *\n * @param array|string $action\n * @param mixed $parameters\n * @param int $status\n * @param array $headers\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function redirectToAction($action, $parameters = [], $status = 302, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->redirectToAction($action, $parameters, $status, $headers);\n }\n\n /**\n * Create a new redirect response, while putting the current URL in the session.\n *\n * @param string $path\n * @param int $status\n * @param array $headers\n * @param bool|null $secure\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function redirectGuest($path, $status = 302, $headers = [], $secure = null)\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->redirectGuest($path, $status, $headers, $secure);\n }\n\n /**\n * Create a new redirect response to the previously intended location.\n *\n * @param string $default\n * @param int $status\n * @param array $headers\n * @param bool|null $secure\n * @return \\Illuminate\\Http\\RedirectResponse\n * @static\n */\n public static function redirectToIntended($default = '/', $status = 302, $headers = [], $secure = null)\n {\n /** @var \\Illuminate\\Routing\\ResponseFactory $instance */\n return $instance->redirectToIntended($default, $status, $headers, $secure);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Routing\\ResponseFactory::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Routing\\ResponseFactory::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Routing\\ResponseFactory::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Routing\\ResponseFactory::flushMacros();\n }\n\n /**\n * @see \\Jiminny\\Providers\\ResponseMacroServiceProvider::boot()\n * @param mixed $data\n * @param mixed $status\n * @param array $headers\n * @param mixed $options\n * @static\n */\n public static function twiml($data = null, $status = 200, $headers = [], $options = 0)\n {\n return \\Illuminate\\Routing\\ResponseFactory::twiml($data, $status, $headers, $options);\n }\n\n }\n /**\n * @method static \\Illuminate\\Routing\\RouteRegistrar attribute(string $key, mixed $value)\n * @method static \\Illuminate\\Routing\\RouteRegistrar whereAlpha(array|string $parameters)\n * @method static \\Illuminate\\Routing\\RouteRegistrar whereAlphaNumeric(array|string $parameters)\n * @method static \\Illuminate\\Routing\\RouteRegistrar whereNumber(array|string $parameters)\n * @method static \\Illuminate\\Routing\\RouteRegistrar whereUlid(array|string $parameters)\n * @method static \\Illuminate\\Routing\\RouteRegistrar whereUuid(array|string $parameters)\n * @method static \\Illuminate\\Routing\\RouteRegistrar whereIn(array|string $parameters, array $values)\n * @method static \\Illuminate\\Routing\\RouteRegistrar as(string $value)\n * @method static \\Illuminate\\Routing\\RouteRegistrar can(\\UnitEnum|string $ability, array|string $models = [])\n * @method static \\Illuminate\\Routing\\RouteRegistrar controller(string $controller)\n * @method static \\Illuminate\\Routing\\RouteRegistrar domain(\\BackedEnum|string $value)\n * @method static \\Illuminate\\Routing\\RouteRegistrar middleware(array|string|null $middleware)\n * @method static \\Illuminate\\Routing\\RouteRegistrar missing(\\Closure $missing)\n * @method static \\Illuminate\\Routing\\RouteRegistrar name(\\BackedEnum|string $value)\n * @method static \\Illuminate\\Routing\\RouteRegistrar namespace(string|null $value)\n * @method static \\Illuminate\\Routing\\RouteRegistrar prefix(string $prefix)\n * @method static \\Illuminate\\Routing\\RouteRegistrar scopeBindings()\n * @method static \\Illuminate\\Routing\\RouteRegistrar where(array $where)\n * @method static \\Illuminate\\Routing\\RouteRegistrar withoutMiddleware(array|string $middleware)\n * @method static \\Illuminate\\Routing\\RouteRegistrar withoutScopedBindings()\n * @see \\Illuminate\\Routing\\Router\n */\n class Route {\n /**\n * Register a new GET route with the router.\n *\n * @param string $uri\n * @param array|string|callable|null $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function get($uri, $action = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->get($uri, $action);\n }\n\n /**\n * Register a new POST route with the router.\n *\n * @param string $uri\n * @param array|string|callable|null $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function post($uri, $action = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->post($uri, $action);\n }\n\n /**\n * Register a new PUT route with the router.\n *\n * @param string $uri\n * @param array|string|callable|null $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function put($uri, $action = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->put($uri, $action);\n }\n\n /**\n * Register a new PATCH route with the router.\n *\n * @param string $uri\n * @param array|string|callable|null $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function patch($uri, $action = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->patch($uri, $action);\n }\n\n /**\n * Register a new DELETE route with the router.\n *\n * @param string $uri\n * @param array|string|callable|null $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function delete($uri, $action = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->delete($uri, $action);\n }\n\n /**\n * Register a new OPTIONS route with the router.\n *\n * @param string $uri\n * @param array|string|callable|null $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function options($uri, $action = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->options($uri, $action);\n }\n\n /**\n * Register a new route responding to all verbs.\n *\n * @param string $uri\n * @param array|string|callable|null $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function any($uri, $action = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->any($uri, $action);\n }\n\n /**\n * Register a new fallback route with the router.\n *\n * @param array|string|callable|null $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function fallback($action)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->fallback($action);\n }\n\n /**\n * Create a redirect from one URI to another.\n *\n * @param string $uri\n * @param string $destination\n * @param int $status\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function redirect($uri, $destination, $status = 302)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->redirect($uri, $destination, $status);\n }\n\n /**\n * Create a permanent redirect from one URI to another.\n *\n * @param string $uri\n * @param string $destination\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function permanentRedirect($uri, $destination)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->permanentRedirect($uri, $destination);\n }\n\n /**\n * Register a new route that returns a view.\n *\n * @param string $uri\n * @param string $view\n * @param array $data\n * @param int|array $status\n * @param array $headers\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function view($uri, $view, $data = [], $status = 200, $headers = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->view($uri, $view, $data, $status, $headers);\n }\n\n /**\n * Register a new route with the given verbs.\n *\n * @param array|string $methods\n * @param string $uri\n * @param array|string|callable|null $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function match($methods, $uri, $action = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->match($methods, $uri, $action);\n }\n\n /**\n * Register an array of resource controllers.\n *\n * @param array $resources\n * @param array $options\n * @return void\n * @static\n */\n public static function resources($resources, $options = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->resources($resources, $options);\n }\n\n /**\n * Register an array of resource controllers that can be soft deleted.\n *\n * @param array $resources\n * @param array $options\n * @return void\n * @static\n */\n public static function softDeletableResources($resources, $options = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->softDeletableResources($resources, $options);\n }\n\n /**\n * Route a resource to a controller.\n *\n * @param string $name\n * @param string $controller\n * @param array $options\n * @return \\Illuminate\\Routing\\PendingResourceRegistration\n * @static\n */\n public static function resource($name, $controller, $options = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->resource($name, $controller, $options);\n }\n\n /**\n * Register an array of API resource controllers.\n *\n * @param array $resources\n * @param array $options\n * @return void\n * @static\n */\n public static function apiResources($resources, $options = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->apiResources($resources, $options);\n }\n\n /**\n * Route an API resource to a controller.\n *\n * @param string $name\n * @param string $controller\n * @param array $options\n * @return \\Illuminate\\Routing\\PendingResourceRegistration\n * @static\n */\n public static function apiResource($name, $controller, $options = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->apiResource($name, $controller, $options);\n }\n\n /**\n * Register an array of singleton resource controllers.\n *\n * @param array $singletons\n * @param array $options\n * @return void\n * @static\n */\n public static function singletons($singletons, $options = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->singletons($singletons, $options);\n }\n\n /**\n * Route a singleton resource to a controller.\n *\n * @param string $name\n * @param string $controller\n * @param array $options\n * @return \\Illuminate\\Routing\\PendingSingletonResourceRegistration\n * @static\n */\n public static function singleton($name, $controller, $options = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->singleton($name, $controller, $options);\n }\n\n /**\n * Register an array of API singleton resource controllers.\n *\n * @param array $singletons\n * @param array $options\n * @return void\n * @static\n */\n public static function apiSingletons($singletons, $options = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->apiSingletons($singletons, $options);\n }\n\n /**\n * Route an API singleton resource to a controller.\n *\n * @param string $name\n * @param string $controller\n * @param array $options\n * @return \\Illuminate\\Routing\\PendingSingletonResourceRegistration\n * @static\n */\n public static function apiSingleton($name, $controller, $options = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->apiSingleton($name, $controller, $options);\n }\n\n /**\n * Create a route group with shared attributes.\n *\n * @param array $attributes\n * @param \\Closure|array|string $routes\n * @return \\Illuminate\\Routing\\Router\n * @static\n */\n public static function group($attributes, $routes)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->group($attributes, $routes);\n }\n\n /**\n * Merge the given array with the last group stack.\n *\n * @param array $new\n * @param bool $prependExistingPrefix\n * @return array\n * @static\n */\n public static function mergeWithLastGroup($new, $prependExistingPrefix = true)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->mergeWithLastGroup($new, $prependExistingPrefix);\n }\n\n /**\n * Get the prefix from the last group on the stack.\n *\n * @return string\n * @static\n */\n public static function getLastGroupPrefix()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->getLastGroupPrefix();\n }\n\n /**\n * Add a route to the underlying route collection.\n *\n * @param array|string $methods\n * @param string $uri\n * @param array|string|callable|null $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function addRoute($methods, $uri, $action)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->addRoute($methods, $uri, $action);\n }\n\n /**\n * Create a new Route object.\n *\n * @param array|string $methods\n * @param string $uri\n * @param mixed $action\n * @return \\Illuminate\\Routing\\Route\n * @static\n */\n public static function newRoute($methods, $uri, $action)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->newRoute($methods, $uri, $action);\n }\n\n /**\n * Return the response returned by the given route.\n *\n * @param string $name\n * @return \\Symfony\\Component\\HttpFoundation\\Response\n * @static\n */\n public static function respondWithRoute($name)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->respondWithRoute($name);\n }\n\n /**\n * Dispatch the request to the application.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @return \\Symfony\\Component\\HttpFoundation\\Response\n * @static\n */\n public static function dispatch($request)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->dispatch($request);\n }\n\n /**\n * Dispatch the request to a route and return the response.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @return \\Symfony\\Component\\HttpFoundation\\Response\n * @static\n */\n public static function dispatchToRoute($request)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->dispatchToRoute($request);\n }\n\n /**\n * Gather the middleware for the given route with resolved class names.\n *\n * @param \\Illuminate\\Routing\\Route $route\n * @return array\n * @static\n */\n public static function gatherRouteMiddleware($route)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->gatherRouteMiddleware($route);\n }\n\n /**\n * Resolve a flat array of middleware classes from the provided array.\n *\n * @param array $middleware\n * @param array $excluded\n * @return array\n * @static\n */\n public static function resolveMiddleware($middleware, $excluded = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->resolveMiddleware($middleware, $excluded);\n }\n\n /**\n * Create a response instance from the given value.\n *\n * @param \\Symfony\\Component\\HttpFoundation\\Request $request\n * @param mixed $response\n * @return \\Symfony\\Component\\HttpFoundation\\Response\n * @static\n */\n public static function prepareResponse($request, $response)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->prepareResponse($request, $response);\n }\n\n /**\n * Static version of prepareResponse.\n *\n * @param \\Symfony\\Component\\HttpFoundation\\Request $request\n * @param mixed $response\n * @return \\Symfony\\Component\\HttpFoundation\\Response\n * @static\n */\n public static function toResponse($request, $response)\n {\n return \\Illuminate\\Routing\\Router::toResponse($request, $response);\n }\n\n /**\n * Substitute the route bindings onto the route.\n *\n * @param \\Illuminate\\Routing\\Route $route\n * @return \\Illuminate\\Routing\\Route\n * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException<\\Illuminate\\Database\\Eloquent\\Model>\n * @throws \\Illuminate\\Routing\\Exceptions\\BackedEnumCaseNotFoundException\n * @static\n */\n public static function substituteBindings($route)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->substituteBindings($route);\n }\n\n /**\n * Substitute the implicit route bindings for the given route.\n *\n * @param \\Illuminate\\Routing\\Route $route\n * @return void\n * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException<\\Illuminate\\Database\\Eloquent\\Model>\n * @throws \\Illuminate\\Routing\\Exceptions\\BackedEnumCaseNotFoundException\n * @static\n */\n public static function substituteImplicitBindings($route)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->substituteImplicitBindings($route);\n }\n\n /**\n * Register a callback to run after implicit bindings are substituted.\n *\n * @param callable $callback\n * @return \\Illuminate\\Routing\\Router\n * @static\n */\n public static function substituteImplicitBindingsUsing($callback)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->substituteImplicitBindingsUsing($callback);\n }\n\n /**\n * Register a route matched event listener.\n *\n * @param string|callable $callback\n * @return void\n * @static\n */\n public static function matched($callback)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->matched($callback);\n }\n\n /**\n * Get all of the defined middleware short-hand names.\n *\n * @return array\n * @static\n */\n public static function getMiddleware()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->getMiddleware();\n }\n\n /**\n * Register a short-hand name for a middleware.\n *\n * @param string $name\n * @param string $class\n * @return \\Illuminate\\Routing\\Router\n * @static\n */\n public static function aliasMiddleware($name, $class)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->aliasMiddleware($name, $class);\n }\n\n /**\n * Check if a middlewareGroup with the given name exists.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMiddlewareGroup($name)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->hasMiddlewareGroup($name);\n }\n\n /**\n * Get all of the defined middleware groups.\n *\n * @return array\n * @static\n */\n public static function getMiddlewareGroups()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->getMiddlewareGroups();\n }\n\n /**\n * Register a group of middleware.\n *\n * @param string $name\n * @param array $middleware\n * @return \\Illuminate\\Routing\\Router\n * @static\n */\n public static function middlewareGroup($name, $middleware)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->middlewareGroup($name, $middleware);\n }\n\n /**\n * Add a middleware to the beginning of a middleware group.\n * \n * If the middleware is already in the group, it will not be added again.\n *\n * @param string $group\n * @param string $middleware\n * @return \\Illuminate\\Routing\\Router\n * @static\n */\n public static function prependMiddlewareToGroup($group, $middleware)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->prependMiddlewareToGroup($group, $middleware);\n }\n\n /**\n * Add a middleware to the end of a middleware group.\n * \n * If the middleware is already in the group, it will not be added again.\n *\n * @param string $group\n * @param string $middleware\n * @return \\Illuminate\\Routing\\Router\n * @static\n */\n public static function pushMiddlewareToGroup($group, $middleware)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->pushMiddlewareToGroup($group, $middleware);\n }\n\n /**\n * Remove the given middleware from the specified group.\n *\n * @param string $group\n * @param string $middleware\n * @return \\Illuminate\\Routing\\Router\n * @static\n */\n public static function removeMiddlewareFromGroup($group, $middleware)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->removeMiddlewareFromGroup($group, $middleware);\n }\n\n /**\n * Flush the router's middleware groups.\n *\n * @return \\Illuminate\\Routing\\Router\n * @static\n */\n public static function flushMiddlewareGroups()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->flushMiddlewareGroups();\n }\n\n /**\n * Add a new route parameter binder.\n *\n * @param string $key\n * @param string|callable $binder\n * @return void\n * @static\n */\n public static function bind($key, $binder)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->bind($key, $binder);\n }\n\n /**\n * Register a model binder for a wildcard.\n *\n * @param string $key\n * @param string $class\n * @param \\Closure|null $callback\n * @return void\n * @static\n */\n public static function model($key, $class, $callback = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->model($key, $class, $callback);\n }\n\n /**\n * Get the binding callback for a given binding.\n *\n * @param string $key\n * @return \\Closure|null\n * @static\n */\n public static function getBindingCallback($key)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->getBindingCallback($key);\n }\n\n /**\n * Get the global \"where\" patterns.\n *\n * @return array\n * @static\n */\n public static function getPatterns()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->getPatterns();\n }\n\n /**\n * Set a global where pattern on all routes.\n *\n * @param string $key\n * @param string $pattern\n * @return void\n * @static\n */\n public static function pattern($key, $pattern)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->pattern($key, $pattern);\n }\n\n /**\n * Set a group of global where patterns on all routes.\n *\n * @param array $patterns\n * @return void\n * @static\n */\n public static function patterns($patterns)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->patterns($patterns);\n }\n\n /**\n * Determine if the router currently has a group stack.\n *\n * @return bool\n * @static\n */\n public static function hasGroupStack()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->hasGroupStack();\n }\n\n /**\n * Get the current group stack for the router.\n *\n * @return array\n * @static\n */\n public static function getGroupStack()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->getGroupStack();\n }\n\n /**\n * Get a route parameter for the current route.\n *\n * @param string $key\n * @param string|null $default\n * @return mixed\n * @static\n */\n public static function input($key, $default = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->input($key, $default);\n }\n\n /**\n * Get the request currently being dispatched.\n *\n * @return \\Illuminate\\Http\\Request\n * @static\n */\n public static function getCurrentRequest()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->getCurrentRequest();\n }\n\n /**\n * Get the currently dispatched route instance.\n *\n * @return \\Illuminate\\Routing\\Route|null\n * @static\n */\n public static function getCurrentRoute()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->getCurrentRoute();\n }\n\n /**\n * Get the currently dispatched route instance.\n *\n * @return \\Illuminate\\Routing\\Route|null\n * @static\n */\n public static function current()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->current();\n }\n\n /**\n * Check if a route with the given name exists.\n *\n * @param string|array $name\n * @return bool\n * @static\n */\n public static function has($name)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->has($name);\n }\n\n /**\n * Get the current route name.\n *\n * @return string|null\n * @static\n */\n public static function currentRouteName()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->currentRouteName();\n }\n\n /**\n * Alias for the \"currentRouteNamed\" method.\n *\n * @param mixed $patterns\n * @return bool\n * @static\n */\n public static function is(...$patterns)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->is(...$patterns);\n }\n\n /**\n * Determine if the current route matches a pattern.\n *\n * @param mixed $patterns\n * @return bool\n * @static\n */\n public static function currentRouteNamed(...$patterns)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->currentRouteNamed(...$patterns);\n }\n\n /**\n * Get the current route action.\n *\n * @return string|null\n * @static\n */\n public static function currentRouteAction()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->currentRouteAction();\n }\n\n /**\n * Alias for the \"currentRouteUses\" method.\n *\n * @param array|string $patterns\n * @return bool\n * @static\n */\n public static function uses(...$patterns)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->uses(...$patterns);\n }\n\n /**\n * Determine if the current route action matches a given action.\n *\n * @param string $action\n * @return bool\n * @static\n */\n public static function currentRouteUses($action)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->currentRouteUses($action);\n }\n\n /**\n * Set the unmapped global resource parameters to singular.\n *\n * @param bool $singular\n * @return void\n * @static\n */\n public static function singularResourceParameters($singular = true)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->singularResourceParameters($singular);\n }\n\n /**\n * Set the global resource parameter mapping.\n *\n * @param array $parameters\n * @return void\n * @static\n */\n public static function resourceParameters($parameters = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->resourceParameters($parameters);\n }\n\n /**\n * Get or set the verbs used in the resource URIs.\n *\n * @param array $verbs\n * @return array|null\n * @static\n */\n public static function resourceVerbs($verbs = [])\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->resourceVerbs($verbs);\n }\n\n /**\n * Get the underlying route collection.\n *\n * @return \\Illuminate\\Routing\\RouteCollectionInterface\n * @static\n */\n public static function getRoutes()\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->getRoutes();\n }\n\n /**\n * Set the route collection instance.\n *\n * @param \\Illuminate\\Routing\\RouteCollection $routes\n * @return void\n * @static\n */\n public static function setRoutes($routes)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->setRoutes($routes);\n }\n\n /**\n * Set the compiled route collection instance.\n *\n * @param array $routes\n * @return void\n * @static\n */\n public static function setCompiledRoutes($routes)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n $instance->setCompiledRoutes($routes);\n }\n\n /**\n * Remove any duplicate middleware from the given array.\n *\n * @param array $middleware\n * @return array\n * @static\n */\n public static function uniqueMiddleware($middleware)\n {\n return \\Illuminate\\Routing\\Router::uniqueMiddleware($middleware);\n }\n\n /**\n * Set the container instance used by the router.\n *\n * @param \\Illuminate\\Container\\Container $container\n * @return \\Illuminate\\Routing\\Router\n * @static\n */\n public static function setContainer($container)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->setContainer($container);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Routing\\Router::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Routing\\Router::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Routing\\Router::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Routing\\Router::flushMacros();\n }\n\n /**\n * Dynamically handle calls to the class.\n *\n * @param string $method\n * @param array $parameters\n * @return mixed\n * @throws \\BadMethodCallException\n * @static\n */\n public static function macroCall($method, $parameters)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->macroCall($method, $parameters);\n }\n\n /**\n * Call the given Closure with this instance then return the instance.\n *\n * @param (callable($this): mixed)|null $callback\n * @return ($callback is null ? \\Illuminate\\Support\\HigherOrderTapProxy : $this)\n * @static\n */\n public static function tap($callback = null)\n {\n /** @var \\Illuminate\\Routing\\Router $instance */\n return $instance->tap($callback);\n }\n\n /**\n * @see \\Laravel\\Ui\\AuthRouteMethods::auth()\n * @param mixed $options\n * @static\n */\n public static function auth($options = [])\n {\n return \\Illuminate\\Routing\\Router::auth($options);\n }\n\n /**\n * @see \\Laravel\\Ui\\AuthRouteMethods::resetPassword()\n * @static\n */\n public static function resetPassword()\n {\n return \\Illuminate\\Routing\\Router::resetPassword();\n }\n\n /**\n * @see \\Laravel\\Ui\\AuthRouteMethods::confirmPassword()\n * @static\n */\n public static function confirmPassword()\n {\n return \\Illuminate\\Routing\\Router::confirmPassword();\n }\n\n /**\n * @see \\Laravel\\Ui\\AuthRouteMethods::emailVerification()\n * @static\n */\n public static function emailVerification()\n {\n return \\Illuminate\\Routing\\Router::emailVerification();\n }\n\n }\n /**\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes withoutOverlapping(int $expiresAt = 1440)\n * @method static void mergeAttributes(\\Illuminate\\Console\\Scheduling\\Event $event)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes user(string $user)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes environments(mixed $environments)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes evenInMaintenanceMode()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes onOneServer()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes runInBackground()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes when(\\Closure|bool $callback)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes skip(\\Closure|bool $callback)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes name(string $description)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes description(string $description)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes cron(string $expression)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes between(string $startTime, string $endTime)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes unlessBetween(string $startTime, string $endTime)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everySecond()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyTwoSeconds()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyFiveSeconds()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyTenSeconds()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyFifteenSeconds()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyTwentySeconds()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyThirtySeconds()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyMinute()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyTwoMinutes()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyThreeMinutes()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyFourMinutes()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyFiveMinutes()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyTenMinutes()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyFifteenMinutes()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyThirtyMinutes()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes hourly()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes hourlyAt(array|string|int|int[] $offset)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyOddHour(array|string|int $offset = 0)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyTwoHours(array|string|int $offset = 0)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyThreeHours(array|string|int $offset = 0)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everyFourHours(array|string|int $offset = 0)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes everySixHours(array|string|int $offset = 0)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes daily()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes at(string $time)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes dailyAt(string $time)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes twiceDaily(int $first = 1, int $second = 13)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes twiceDailyAt(int $first = 1, int $second = 13, int $offset = 0)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes weekdays()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes weekends()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes mondays()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes tuesdays()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes wednesdays()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes thursdays()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes fridays()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes saturdays()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes sundays()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes weekly()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes weeklyOn(mixed $dayOfWeek, string $time = '0:0')\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes monthly()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes monthlyOn(int $dayOfMonth = 1, string $time = '0:0')\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes twiceMonthly(int $first = 1, int $second = 16, string $time = '0:0')\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes lastDayOfMonth(string $time = '0:0')\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes quarterly()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes quarterlyOn(int $dayOfQuarter = 1, string $time = '0:0')\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes yearly()\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes yearlyOn(int $month = 1, int|string $dayOfMonth = 1, string $time = '0:0')\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes days(mixed $days)\n * @method static \\Illuminate\\Console\\Scheduling\\PendingEventAttributes timezone(\\UnitEnum|\\DateTimeZone|string $timezone)\n * @see \\Illuminate\\Console\\Scheduling\\Schedule\n */\n class Schedule {\n /**\n * Add a new callback event to the schedule.\n *\n * @param string|callable $callback\n * @param array $parameters\n * @return \\Illuminate\\Console\\Scheduling\\CallbackEvent\n * @static\n */\n public static function call($callback, $parameters = [])\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n return $instance->call($callback, $parameters);\n }\n\n /**\n * Add a new Artisan command event to the schedule.\n *\n * @param \\Symfony\\Component\\Console\\Command\\Command|string $command\n * @param array $parameters\n * @return \\Illuminate\\Console\\Scheduling\\Event\n * @static\n */\n public static function command($command, $parameters = [])\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n return $instance->command($command, $parameters);\n }\n\n /**\n * Add a new job callback event to the schedule.\n *\n * @param object|string $job\n * @param \\UnitEnum|string|null $queue\n * @param \\UnitEnum|string|null $connection\n * @return \\Illuminate\\Console\\Scheduling\\CallbackEvent\n * @static\n */\n public static function job($job, $queue = null, $connection = null)\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n return $instance->job($job, $queue, $connection);\n }\n\n /**\n * Add a new command event to the schedule.\n *\n * @param string $command\n * @param array $parameters\n * @return \\Illuminate\\Console\\Scheduling\\Event\n * @static\n */\n public static function exec($command, $parameters = [])\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n return $instance->exec($command, $parameters);\n }\n\n /**\n * Create new schedule group.\n *\n * @param \\Illuminate\\Console\\Scheduling\\Event $event\n * @return void\n * @throws \\RuntimeException\n * @static\n */\n public static function group($events)\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n $instance->group($events);\n }\n\n /**\n * Compile array input for a command.\n *\n * @param string|int $key\n * @param array $value\n * @return string\n * @static\n */\n public static function compileArrayInput($key, $value)\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n return $instance->compileArrayInput($key, $value);\n }\n\n /**\n * Determine if the server is allowed to run this event.\n *\n * @param \\Illuminate\\Console\\Scheduling\\Event $event\n * @param \\DateTimeInterface $time\n * @return bool\n * @static\n */\n public static function serverShouldRun($event, $time)\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n return $instance->serverShouldRun($event, $time);\n }\n\n /**\n * Get all of the events on the schedule that are due.\n *\n * @param \\Illuminate\\Contracts\\Foundation\\Application $app\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function dueEvents($app)\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n return $instance->dueEvents($app);\n }\n\n /**\n * Get all of the events on the schedule.\n *\n * @return \\Illuminate\\Console\\Scheduling\\Event[]\n * @static\n */\n public static function events()\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n return $instance->events();\n }\n\n /**\n * Specify the cache store that should be used to store mutexes.\n *\n * @param string $store\n * @return \\Illuminate\\Console\\Scheduling\\Schedule\n * @static\n */\n public static function useCache($store)\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n return $instance->useCache($store);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Console\\Scheduling\\Schedule::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Console\\Scheduling\\Schedule::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Console\\Scheduling\\Schedule::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Console\\Scheduling\\Schedule::flushMacros();\n }\n\n /**\n * Dynamically handle calls to the class.\n *\n * @param string $method\n * @param array $parameters\n * @return mixed\n * @throws \\BadMethodCallException\n * @static\n */\n public static function macroCall($method, $parameters)\n {\n /** @var \\Illuminate\\Console\\Scheduling\\Schedule $instance */\n return $instance->macroCall($method, $parameters);\n }\n\n }\n /**\n * @see \\Illuminate\\Database\\Schema\\Builder\n */\n class Schema {\n /**\n * Drop all tables from the database.\n *\n * @return void\n * @static\n */\n public static function dropAllTables()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\MySqlBuilder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->dropAllTables();\n }\n\n /**\n * Drop all views from the database.\n *\n * @return void\n * @static\n */\n public static function dropAllViews()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\MySqlBuilder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->dropAllViews();\n }\n\n /**\n * Get the names of current schemas for the connection.\n *\n * @return string[]|null\n * @static\n */\n public static function getCurrentSchemaListing()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\MySqlBuilder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getCurrentSchemaListing();\n }\n\n /**\n * Set the default string length for migrations.\n *\n * @param int $length\n * @return void\n * @static\n */\n public static function defaultStringLength($length)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n \\Illuminate\\Database\\Schema\\MariaDbBuilder::defaultStringLength($length);\n }\n\n /**\n * Set the default time precision for migrations.\n *\n * @static\n */\n public static function defaultTimePrecision($precision)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n return \\Illuminate\\Database\\Schema\\MariaDbBuilder::defaultTimePrecision($precision);\n }\n\n /**\n * Set the default morph key type for migrations.\n *\n * @param string $type\n * @return void\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function defaultMorphKeyType($type)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n \\Illuminate\\Database\\Schema\\MariaDbBuilder::defaultMorphKeyType($type);\n }\n\n /**\n * Set the default morph key type for migrations to UUIDs.\n *\n * @return void\n * @static\n */\n public static function morphUsingUuids()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n \\Illuminate\\Database\\Schema\\MariaDbBuilder::morphUsingUuids();\n }\n\n /**\n * Set the default morph key type for migrations to ULIDs.\n *\n * @return void\n * @static\n */\n public static function morphUsingUlids()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n \\Illuminate\\Database\\Schema\\MariaDbBuilder::morphUsingUlids();\n }\n\n /**\n * Create a database in the schema.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function createDatabase($name)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->createDatabase($name);\n }\n\n /**\n * Drop a database from the schema if the database exists.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function dropDatabaseIfExists($name)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->dropDatabaseIfExists($name);\n }\n\n /**\n * Get the schemas that belong to the connection.\n *\n * @return \\Illuminate\\Database\\Schema\\list<array{name: string, path: string|null, default: bool}>\n * @static\n */\n public static function getSchemas()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getSchemas();\n }\n\n /**\n * Determine if the given table exists.\n *\n * @param string $table\n * @return bool\n * @static\n */\n public static function hasTable($table)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->hasTable($table);\n }\n\n /**\n * Determine if the given view exists.\n *\n * @param string $view\n * @return bool\n * @static\n */\n public static function hasView($view)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->hasView($view);\n }\n\n /**\n * Get the tables that belong to the connection.\n *\n * @param string|string[]|null $schema\n * @return \\Illuminate\\Database\\Schema\\list<array{name: string, schema: string|null, schema_qualified_name: string, size: int|null, comment: string|null, collation: string|null, engine: string|null}>\n * @static\n */\n public static function getTables($schema = null)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getTables($schema);\n }\n\n /**\n * Get the names of the tables that belong to the connection.\n *\n * @param string|string[]|null $schema\n * @param bool $schemaQualified\n * @return list<string>\n * @static\n */\n public static function getTableListing($schema = null, $schemaQualified = true)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getTableListing($schema, $schemaQualified);\n }\n\n /**\n * Get the views that belong to the connection.\n *\n * @param string|string[]|null $schema\n * @return \\Illuminate\\Database\\Schema\\list<array{name: string, schema: string|null, schema_qualified_name: string, definition: string}>\n * @static\n */\n public static function getViews($schema = null)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getViews($schema);\n }\n\n /**\n * Get the user-defined types that belong to the connection.\n *\n * @param string|string[]|null $schema\n * @return \\Illuminate\\Database\\Schema\\list<array{name: string, schema: string, type: string, type: string, category: string, implicit: bool}>\n * @static\n */\n public static function getTypes($schema = null)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getTypes($schema);\n }\n\n /**\n * Determine if the given table has a given column.\n *\n * @param string $table\n * @param string $column\n * @return bool\n * @static\n */\n public static function hasColumn($table, $column)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->hasColumn($table, $column);\n }\n\n /**\n * Determine if the given table has given columns.\n *\n * @param string $table\n * @param array<string> $columns\n * @return bool\n * @static\n */\n public static function hasColumns($table, $columns)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->hasColumns($table, $columns);\n }\n\n /**\n * Execute a table builder callback if the given table has a given column.\n *\n * @param string $table\n * @param string $column\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function whenTableHasColumn($table, $column, $callback)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->whenTableHasColumn($table, $column, $callback);\n }\n\n /**\n * Execute a table builder callback if the given table doesn't have a given column.\n *\n * @param string $table\n * @param string $column\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function whenTableDoesntHaveColumn($table, $column, $callback)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->whenTableDoesntHaveColumn($table, $column, $callback);\n }\n\n /**\n * Get the data type for the given column name.\n *\n * @param string $table\n * @param string $column\n * @param bool $fullDefinition\n * @return string\n * @static\n */\n public static function getColumnType($table, $column, $fullDefinition = false)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getColumnType($table, $column, $fullDefinition);\n }\n\n /**\n * Get the column listing for a given table.\n *\n * @param string $table\n * @return list<string>\n * @static\n */\n public static function getColumnListing($table)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getColumnListing($table);\n }\n\n /**\n * Get the columns for a given table.\n *\n * @param string $table\n * @return \\Illuminate\\Database\\Schema\\list<array{name: string, type: string, type_name: string, nullable: bool, default: mixed, auto_increment: bool, comment: string|null, generation: array{type: string, expression: string|null}|null}>\n * @static\n */\n public static function getColumns($table)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getColumns($table);\n }\n\n /**\n * Get the indexes for a given table.\n *\n * @param string $table\n * @return \\Illuminate\\Database\\Schema\\list<array{name: string, columns: list<string>, type: string, unique: bool, primary: bool}>\n * @static\n */\n public static function getIndexes($table)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getIndexes($table);\n }\n\n /**\n * Get the names of the indexes for a given table.\n *\n * @param string $table\n * @return list<string>\n * @static\n */\n public static function getIndexListing($table)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getIndexListing($table);\n }\n\n /**\n * Determine if the given table has a given index.\n *\n * @param string $table\n * @param string|array $index\n * @param string|null $type\n * @return bool\n * @static\n */\n public static function hasIndex($table, $index, $type = null)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->hasIndex($table, $index, $type);\n }\n\n /**\n * Get the foreign keys for a given table.\n *\n * @param string $table\n * @return array\n * @static\n */\n public static function getForeignKeys($table)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getForeignKeys($table);\n }\n\n /**\n * Modify a table on the schema.\n *\n * @param string $table\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function table($table, $callback)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->table($table, $callback);\n }\n\n /**\n * Create a new table on the schema.\n *\n * @param string $table\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function create($table, $callback)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->create($table, $callback);\n }\n\n /**\n * Drop a table from the schema.\n *\n * @param string $table\n * @return void\n * @static\n */\n public static function drop($table)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->drop($table);\n }\n\n /**\n * Drop a table from the schema if it exists.\n *\n * @param string $table\n * @return void\n * @static\n */\n public static function dropIfExists($table)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->dropIfExists($table);\n }\n\n /**\n * Drop columns from a table schema.\n *\n * @param string $table\n * @param string|array<string> $columns\n * @return void\n * @static\n */\n public static function dropColumns($table, $columns)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->dropColumns($table, $columns);\n }\n\n /**\n * Drop all types from the database.\n *\n * @return void\n * @throws \\LogicException\n * @static\n */\n public static function dropAllTypes()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->dropAllTypes();\n }\n\n /**\n * Rename a table on the schema.\n *\n * @param string $from\n * @param string $to\n * @return void\n * @static\n */\n public static function rename($from, $to)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->rename($from, $to);\n }\n\n /**\n * Enable foreign key constraints.\n *\n * @return bool\n * @static\n */\n public static function enableForeignKeyConstraints()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->enableForeignKeyConstraints();\n }\n\n /**\n * Disable foreign key constraints.\n *\n * @return bool\n * @static\n */\n public static function disableForeignKeyConstraints()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->disableForeignKeyConstraints();\n }\n\n /**\n * Disable foreign key constraints during the execution of a callback.\n *\n * @param \\Closure $callback\n * @return mixed\n * @static\n */\n public static function withoutForeignKeyConstraints($callback)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->withoutForeignKeyConstraints($callback);\n }\n\n /**\n * Get the default schema name for the connection.\n *\n * @return string|null\n * @static\n */\n public static function getCurrentSchemaName()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getCurrentSchemaName();\n }\n\n /**\n * Parse the given database object reference and extract the schema and table.\n *\n * @param string $reference\n * @param string|bool|null $withDefaultSchema\n * @return array\n * @static\n */\n public static function parseSchemaAndTable($reference, $withDefaultSchema = null)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->parseSchemaAndTable($reference, $withDefaultSchema);\n }\n\n /**\n * Get the database connection instance.\n *\n * @return \\Illuminate\\Database\\Connection\n * @static\n */\n public static function getConnection()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n return $instance->getConnection();\n }\n\n /**\n * Set the Schema Blueprint resolver callback.\n *\n * @param \\Closure(\\Illuminate\\Database\\Connection, string, \\Closure|null): \\Illuminate\\Database\\Schema\\Blueprint $resolver\n * @return void\n * @static\n */\n public static function blueprintResolver($resolver)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n /** @var \\Illuminate\\Database\\Schema\\MariaDbBuilder $instance */\n $instance->blueprintResolver($resolver);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n \\Illuminate\\Database\\Schema\\MariaDbBuilder::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n \\Illuminate\\Database\\Schema\\MariaDbBuilder::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n return \\Illuminate\\Database\\Schema\\MariaDbBuilder::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n //Method inherited from \\Illuminate\\Database\\Schema\\Builder \n \\Illuminate\\Database\\Schema\\MariaDbBuilder::flushMacros();\n }\n\n }\n /**\n * @see \\Illuminate\\Session\\SessionManager\n */\n class Session {\n /**\n * Determine if requests for the same session should wait for each to finish before executing.\n *\n * @return bool\n * @static\n */\n public static function shouldBlock()\n {\n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->shouldBlock();\n }\n\n /**\n * Get the name of the cache store / driver that should be used to acquire session locks.\n *\n * @return string|null\n * @static\n */\n public static function blockDriver()\n {\n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->blockDriver();\n }\n\n /**\n * Get the maximum number of seconds the session lock should be held for.\n *\n * @return int\n * @static\n */\n public static function defaultRouteBlockLockSeconds()\n {\n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->defaultRouteBlockLockSeconds();\n }\n\n /**\n * Get the maximum number of seconds to wait while attempting to acquire a route block session lock.\n *\n * @return int\n * @static\n */\n public static function defaultRouteBlockWaitSeconds()\n {\n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->defaultRouteBlockWaitSeconds();\n }\n\n /**\n * Get the session configuration.\n *\n * @return array\n * @static\n */\n public static function getSessionConfig()\n {\n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->getSessionConfig();\n }\n\n /**\n * Get the default session driver name.\n *\n * @return string|null\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Set the default session driver name.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultDriver($name)\n {\n /** @var \\Illuminate\\Session\\SessionManager $instance */\n $instance->setDefaultDriver($name);\n }\n\n /**\n * Get a driver instance.\n *\n * @param string|null $driver\n * @return mixed\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function driver($driver = null)\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->driver($driver);\n }\n\n /**\n * Register a custom driver creator Closure.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @return \\Illuminate\\Session\\SessionManager\n * @static\n */\n public static function extend($driver, $callback)\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->extend($driver, $callback);\n }\n\n /**\n * Get all of the created \"drivers\".\n *\n * @return array\n * @static\n */\n public static function getDrivers()\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->getDrivers();\n }\n\n /**\n * Get the container instance used by the manager.\n *\n * @return \\Illuminate\\Contracts\\Container\\Container\n * @static\n */\n public static function getContainer()\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->getContainer();\n }\n\n /**\n * Set the container instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Container\\Container $container\n * @return \\Illuminate\\Session\\SessionManager\n * @static\n */\n public static function setContainer($container)\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->setContainer($container);\n }\n\n /**\n * Forget all of the resolved driver instances.\n *\n * @return \\Illuminate\\Session\\SessionManager\n * @static\n */\n public static function forgetDrivers()\n {\n //Method inherited from \\Illuminate\\Support\\Manager \n /** @var \\Illuminate\\Session\\SessionManager $instance */\n return $instance->forgetDrivers();\n }\n\n /**\n * Start the session, reading the data from a handler.\n *\n * @return bool\n * @static\n */\n public static function start()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->start();\n }\n\n /**\n * Save the session data to storage.\n *\n * @return void\n * @static\n */\n public static function save()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->save();\n }\n\n /**\n * Age the flash data for the session.\n *\n * @return void\n * @static\n */\n public static function ageFlashData()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->ageFlashData();\n }\n\n /**\n * Get all of the session data.\n *\n * @return array\n * @static\n */\n public static function all()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->all();\n }\n\n /**\n * Get a subset of the session data.\n *\n * @param array $keys\n * @return array\n * @static\n */\n public static function only($keys)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->only($keys);\n }\n\n /**\n * Get all the session data except for a specified array of items.\n *\n * @param array $keys\n * @return array\n * @static\n */\n public static function except($keys)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->except($keys);\n }\n\n /**\n * Checks if a key exists.\n *\n * @param string|array $key\n * @return bool\n * @static\n */\n public static function exists($key)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->exists($key);\n }\n\n /**\n * Determine if the given key is missing from the session data.\n *\n * @param string|array $key\n * @return bool\n * @static\n */\n public static function missing($key)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->missing($key);\n }\n\n /**\n * Determine if a key is present and not null.\n *\n * @param string|array $key\n * @return bool\n * @static\n */\n public static function has($key)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->has($key);\n }\n\n /**\n * Determine if any of the given keys are present and not null.\n *\n * @param string|array $key\n * @return bool\n * @static\n */\n public static function hasAny($key)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->hasAny($key);\n }\n\n /**\n * Get an item from the session.\n *\n * @param string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function get($key, $default = null)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->get($key, $default);\n }\n\n /**\n * Get the value of a given key and then forget it.\n *\n * @param string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function pull($key, $default = null)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->pull($key, $default);\n }\n\n /**\n * Determine if the session contains old input.\n *\n * @param string|null $key\n * @return bool\n * @static\n */\n public static function hasOldInput($key = null)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->hasOldInput($key);\n }\n\n /**\n * Get the requested item from the flashed input array.\n *\n * @param string|null $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function getOldInput($key = null, $default = null)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->getOldInput($key, $default);\n }\n\n /**\n * Replace the given session attributes entirely.\n *\n * @param array $attributes\n * @return void\n * @static\n */\n public static function replace($attributes)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->replace($attributes);\n }\n\n /**\n * Put a key / value pair or array of key / value pairs in the session.\n *\n * @param string|array $key\n * @param mixed $value\n * @return void\n * @static\n */\n public static function put($key, $value = null)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->put($key, $value);\n }\n\n /**\n * Get an item from the session, or store the default value.\n *\n * @param string $key\n * @param \\Closure $callback\n * @return mixed\n * @static\n */\n public static function remember($key, $callback)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->remember($key, $callback);\n }\n\n /**\n * Push a value onto a session array.\n *\n * @param string $key\n * @param mixed $value\n * @return void\n * @static\n */\n public static function push($key, $value)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->push($key, $value);\n }\n\n /**\n * Increment the value of an item in the session.\n *\n * @param string $key\n * @param int $amount\n * @return mixed\n * @static\n */\n public static function increment($key, $amount = 1)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->increment($key, $amount);\n }\n\n /**\n * Decrement the value of an item in the session.\n *\n * @param string $key\n * @param int $amount\n * @return int\n * @static\n */\n public static function decrement($key, $amount = 1)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->decrement($key, $amount);\n }\n\n /**\n * Flash a key / value pair to the session.\n *\n * @param string $key\n * @param mixed $value\n * @return void\n * @static\n */\n public static function flash($key, $value = true)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->flash($key, $value);\n }\n\n /**\n * Flash a key / value pair to the session for immediate use.\n *\n * @param string $key\n * @param mixed $value\n * @return void\n * @static\n */\n public static function now($key, $value)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->now($key, $value);\n }\n\n /**\n * Reflash all of the session flash data.\n *\n * @return void\n * @static\n */\n public static function reflash()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->reflash();\n }\n\n /**\n * Reflash a subset of the current flash data.\n *\n * @param mixed $keys\n * @return void\n * @static\n */\n public static function keep($keys = null)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->keep($keys);\n }\n\n /**\n * Flash an input array to the session.\n *\n * @param array $value\n * @return void\n * @static\n */\n public static function flashInput($value)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->flashInput($value);\n }\n\n /**\n * Get the session cache instance.\n *\n * @return \\Illuminate\\Contracts\\Cache\\Repository\n * @static\n */\n public static function cache()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->cache();\n }\n\n /**\n * Remove an item from the session, returning its value.\n *\n * @param string $key\n * @return mixed\n * @static\n */\n public static function remove($key)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->remove($key);\n }\n\n /**\n * Remove one or many items from the session.\n *\n * @param string|array $keys\n * @return void\n * @static\n */\n public static function forget($keys)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->forget($keys);\n }\n\n /**\n * Remove all of the items from the session.\n *\n * @return void\n * @static\n */\n public static function flush()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->flush();\n }\n\n /**\n * Flush the session data and regenerate the ID.\n *\n * @return bool\n * @static\n */\n public static function invalidate()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->invalidate();\n }\n\n /**\n * Generate a new session identifier.\n *\n * @param bool $destroy\n * @return bool\n * @static\n */\n public static function regenerate($destroy = false)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->regenerate($destroy);\n }\n\n /**\n * Generate a new session ID for the session.\n *\n * @param bool $destroy\n * @return bool\n * @static\n */\n public static function migrate($destroy = false)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->migrate($destroy);\n }\n\n /**\n * Determine if the session has been started.\n *\n * @return bool\n * @static\n */\n public static function isStarted()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->isStarted();\n }\n\n /**\n * Get the name of the session.\n *\n * @return string\n * @static\n */\n public static function getName()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->getName();\n }\n\n /**\n * Set the name of the session.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setName($name)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->setName($name);\n }\n\n /**\n * Get the current session ID.\n *\n * @return string\n * @static\n */\n public static function id()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->id();\n }\n\n /**\n * Get the current session ID.\n *\n * @return string\n * @static\n */\n public static function getId()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->getId();\n }\n\n /**\n * Set the session ID.\n *\n * @param string|null $id\n * @return void\n * @static\n */\n public static function setId($id)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->setId($id);\n }\n\n /**\n * Determine if this is a valid session ID.\n *\n * @param string|null $id\n * @return bool\n * @static\n */\n public static function isValidId($id)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->isValidId($id);\n }\n\n /**\n * Set the existence of the session on the handler if applicable.\n *\n * @param bool $value\n * @return void\n * @static\n */\n public static function setExists($value)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->setExists($value);\n }\n\n /**\n * Get the CSRF token value.\n *\n * @return string\n * @static\n */\n public static function token()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->token();\n }\n\n /**\n * Regenerate the CSRF token value.\n *\n * @return void\n * @static\n */\n public static function regenerateToken()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->regenerateToken();\n }\n\n /**\n * Determine if the previous URI is available.\n *\n * @return bool\n * @static\n */\n public static function hasPreviousUri()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->hasPreviousUri();\n }\n\n /**\n * Get the previous URL from the session as a URI instance.\n *\n * @return \\Illuminate\\Support\\Uri\n * @throws \\RuntimeException\n * @static\n */\n public static function previousUri()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->previousUri();\n }\n\n /**\n * Get the previous URL from the session.\n *\n * @return string|null\n * @static\n */\n public static function previousUrl()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->previousUrl();\n }\n\n /**\n * Set the \"previous\" URL in the session.\n *\n * @param string $url\n * @return void\n * @static\n */\n public static function setPreviousUrl($url)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->setPreviousUrl($url);\n }\n\n /**\n * Specify that the user has confirmed their password.\n *\n * @return void\n * @static\n */\n public static function passwordConfirmed()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->passwordConfirmed();\n }\n\n /**\n * Get the underlying session handler implementation.\n *\n * @return \\SessionHandlerInterface\n * @static\n */\n public static function getHandler()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->getHandler();\n }\n\n /**\n * Set the underlying session handler implementation.\n *\n * @param \\SessionHandlerInterface $handler\n * @return \\SessionHandlerInterface\n * @static\n */\n public static function setHandler($handler)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->setHandler($handler);\n }\n\n /**\n * Determine if the session handler needs a request.\n *\n * @return bool\n * @static\n */\n public static function handlerNeedsRequest()\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n return $instance->handlerNeedsRequest();\n }\n\n /**\n * Set the request on the handler instance.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @return void\n * @static\n */\n public static function setRequestOnHandler($request)\n {\n /** @var \\Illuminate\\Session\\Store $instance */\n $instance->setRequestOnHandler($request);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Session\\Store::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Session\\Store::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Session\\Store::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Session\\Store::flushMacros();\n }\n\n }\n /**\n * @method static bool has(string $location)\n * @method static string read(string $location)\n * @method static \\League\\Flysystem\\DirectoryListing listContents(string $location, bool $deep = false)\n * @method static int fileSize(string $path)\n * @method static string visibility(string $path)\n * @method static void write(string $location, string $contents, array $config = [])\n * @method static void createDirectory(string $location, array $config = [])\n * @see \\Illuminate\\Filesystem\\FilesystemManager\n */\n class Storage {\n /**\n * Get a filesystem instance.\n *\n * @param string|null $name\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function drive($name = null)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->drive($name);\n }\n\n /**\n * Get a filesystem instance.\n *\n * @param \\UnitEnum|string|null $name\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function disk($name = null)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->disk($name);\n }\n\n /**\n * Get a default cloud filesystem instance.\n *\n * @return \\Illuminate\\Contracts\\Filesystem\\Cloud\n * @static\n */\n public static function cloud()\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->cloud();\n }\n\n /**\n * Build an on-demand disk.\n *\n * @param string|array $config\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function build($config)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->build($config);\n }\n\n /**\n * Create an instance of the local driver.\n *\n * @param array $config\n * @param string $name\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function createLocalDriver($config, $name = 'local')\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->createLocalDriver($config, $name);\n }\n\n /**\n * Create an instance of the ftp driver.\n *\n * @param array $config\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function createFtpDriver($config)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->createFtpDriver($config);\n }\n\n /**\n * Create an instance of the sftp driver.\n *\n * @param array $config\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function createSftpDriver($config)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->createSftpDriver($config);\n }\n\n /**\n * Create an instance of the Amazon S3 driver.\n *\n * @param array $config\n * @return \\Illuminate\\Contracts\\Filesystem\\Cloud\n * @static\n */\n public static function createS3Driver($config)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->createS3Driver($config);\n }\n\n /**\n * Create a scoped driver.\n *\n * @param array $config\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function createScopedDriver($config)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->createScopedDriver($config);\n }\n\n /**\n * Set the given disk instance.\n *\n * @param string $name\n * @param mixed $disk\n * @return \\Illuminate\\Filesystem\\FilesystemManager\n * @static\n */\n public static function set($name, $disk)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->set($name, $disk);\n }\n\n /**\n * Get the default driver name.\n *\n * @return string\n * @static\n */\n public static function getDefaultDriver()\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->getDefaultDriver();\n }\n\n /**\n * Get the default cloud driver name.\n *\n * @return string\n * @static\n */\n public static function getDefaultCloudDriver()\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->getDefaultCloudDriver();\n }\n\n /**\n * Unset the given disk instances.\n *\n * @param array|string $disk\n * @return \\Illuminate\\Filesystem\\FilesystemManager\n * @static\n */\n public static function forgetDisk($disk)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->forgetDisk($disk);\n }\n\n /**\n * Disconnect the given disk and remove from local cache.\n *\n * @param string|null $name\n * @return void\n * @static\n */\n public static function purge($name = null)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n $instance->purge($name);\n }\n\n /**\n * Register a custom driver creator Closure.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @return \\Illuminate\\Filesystem\\FilesystemManager\n * @static\n */\n public static function extend($driver, $callback)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->extend($driver, $callback);\n }\n\n /**\n * Set the application instance used by the manager.\n *\n * @param \\Illuminate\\Contracts\\Foundation\\Application $app\n * @return \\Illuminate\\Filesystem\\FilesystemManager\n * @static\n */\n public static function setApplication($app)\n {\n /** @var \\Illuminate\\Filesystem\\FilesystemManager $instance */\n return $instance->setApplication($app);\n }\n\n /**\n * Determine if temporary URLs can be generated.\n *\n * @return bool\n * @static\n */\n public static function providesTemporaryUrls()\n {\n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->providesTemporaryUrls();\n }\n\n /**\n * Get a temporary URL for the file at the given path.\n *\n * @param string $path\n * @param \\DateTimeInterface $expiration\n * @param array $options\n * @return string\n * @static\n */\n public static function temporaryUrl($path, $expiration, $options = [])\n {\n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->temporaryUrl($path, $expiration, $options);\n }\n\n /**\n * Specify the name of the disk the adapter is managing.\n *\n * @param string $disk\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function diskName($disk)\n {\n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->diskName($disk);\n }\n\n /**\n * Indicate that signed URLs should serve the corresponding files.\n *\n * @param bool $serve\n * @param \\Closure|null $urlGeneratorResolver\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function shouldServeSignedUrls($serve = true, $urlGeneratorResolver = null)\n {\n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->shouldServeSignedUrls($serve, $urlGeneratorResolver);\n }\n\n /**\n * Assert that the given file or directory exists.\n *\n * @param string|array $path\n * @param string|null $content\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function assertExists($path, $content = null)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->assertExists($path, $content);\n }\n\n /**\n * Assert that the number of files in path equals the expected count.\n *\n * @param string $path\n * @param int $count\n * @param bool $recursive\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function assertCount($path, $count, $recursive = false)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->assertCount($path, $count, $recursive);\n }\n\n /**\n * Assert that the given file or directory does not exist.\n *\n * @param string|array $path\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function assertMissing($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->assertMissing($path);\n }\n\n /**\n * Assert that the given directory is empty.\n *\n * @param string $path\n * @return \\Illuminate\\Filesystem\\LocalFilesystemAdapter\n * @static\n */\n public static function assertDirectoryEmpty($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->assertDirectoryEmpty($path);\n }\n\n /**\n * Determine if a file or directory exists.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function exists($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->exists($path);\n }\n\n /**\n * Determine if a file or directory is missing.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function missing($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->missing($path);\n }\n\n /**\n * Determine if a file exists.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function fileExists($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->fileExists($path);\n }\n\n /**\n * Determine if a file is missing.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function fileMissing($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->fileMissing($path);\n }\n\n /**\n * Determine if a directory exists.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function directoryExists($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->directoryExists($path);\n }\n\n /**\n * Determine if a directory is missing.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function directoryMissing($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->directoryMissing($path);\n }\n\n /**\n * Get the full path to the file that exists at the given relative path.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function path($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->path($path);\n }\n\n /**\n * Get the contents of a file.\n *\n * @param string $path\n * @return string|null\n * @static\n */\n public static function get($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->get($path);\n }\n\n /**\n * Get the contents of a file as decoded JSON.\n *\n * @param string $path\n * @param int $flags\n * @return array|null\n * @static\n */\n public static function json($path, $flags = 0)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->json($path, $flags);\n }\n\n /**\n * Create a streamed response for a given file.\n *\n * @param string $path\n * @param string|null $name\n * @param array $headers\n * @param string|null $disposition\n * @return \\Symfony\\Component\\HttpFoundation\\StreamedResponse\n * @static\n */\n public static function response($path, $name = null, $headers = [], $disposition = 'inline')\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->response($path, $name, $headers, $disposition);\n }\n\n /**\n * Create a streamed download response for a given file.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @param string $path\n * @param string|null $name\n * @param array $headers\n * @return \\Symfony\\Component\\HttpFoundation\\StreamedResponse\n * @static\n */\n public static function serve($request, $path, $name = null, $headers = [])\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->serve($request, $path, $name, $headers);\n }\n\n /**\n * Create a streamed download response for a given file.\n *\n * @param string $path\n * @param string|null $name\n * @param array $headers\n * @return \\Symfony\\Component\\HttpFoundation\\StreamedResponse\n * @static\n */\n public static function download($path, $name = null, $headers = [])\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->download($path, $name, $headers);\n }\n\n /**\n * Write the contents of a file.\n *\n * @param string $path\n * @param \\Psr\\Http\\Message\\StreamInterface|\\Illuminate\\Http\\File|\\Illuminate\\Http\\UploadedFile|string|resource $contents\n * @param mixed $options\n * @return string|bool\n * @static\n */\n public static function put($path, $contents, $options = [])\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->put($path, $contents, $options);\n }\n\n /**\n * Store the uploaded file on the disk.\n *\n * @param \\Illuminate\\Http\\File|\\Illuminate\\Http\\UploadedFile|string $path\n * @param \\Illuminate\\Http\\File|\\Illuminate\\Http\\UploadedFile|string|array|null $file\n * @param mixed $options\n * @return string|false\n * @static\n */\n public static function putFile($path, $file = null, $options = [])\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->putFile($path, $file, $options);\n }\n\n /**\n * Store the uploaded file on the disk with a given name.\n *\n * @param \\Illuminate\\Http\\File|\\Illuminate\\Http\\UploadedFile|string $path\n * @param \\Illuminate\\Http\\File|\\Illuminate\\Http\\UploadedFile|string|array|null $file\n * @param string|array|null $name\n * @param mixed $options\n * @return string|false\n * @static\n */\n public static function putFileAs($path, $file, $name = null, $options = [])\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->putFileAs($path, $file, $name, $options);\n }\n\n /**\n * Get the visibility for the given path.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function getVisibility($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->getVisibility($path);\n }\n\n /**\n * Set the visibility for the given path.\n *\n * @param string $path\n * @param string $visibility\n * @return bool\n * @static\n */\n public static function setVisibility($path, $visibility)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->setVisibility($path, $visibility);\n }\n\n /**\n * Prepend to a file.\n *\n * @param string $path\n * @param string $data\n * @param string $separator\n * @return bool\n * @static\n */\n public static function prepend($path, $data, $separator = '\n')\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->prepend($path, $data, $separator);\n }\n\n /**\n * Append to a file.\n *\n * @param string $path\n * @param string $data\n * @param string $separator\n * @return bool\n * @static\n */\n public static function append($path, $data, $separator = '\n')\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->append($path, $data, $separator);\n }\n\n /**\n * Delete the file at a given path.\n *\n * @param string|array $paths\n * @return bool\n * @static\n */\n public static function delete($paths)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->delete($paths);\n }\n\n /**\n * Copy a file to a new location.\n *\n * @param string $from\n * @param string $to\n * @return bool\n * @static\n */\n public static function copy($from, $to)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->copy($from, $to);\n }\n\n /**\n * Move a file to a new location.\n *\n * @param string $from\n * @param string $to\n * @return bool\n * @static\n */\n public static function move($from, $to)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->move($from, $to);\n }\n\n /**\n * Get the file size of a given file.\n *\n * @param string $path\n * @return int\n * @static\n */\n public static function size($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->size($path);\n }\n\n /**\n * Get the checksum for a file.\n *\n * @return string|false\n * @throws UnableToProvideChecksum\n * @static\n */\n public static function checksum($path, $options = [])\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->checksum($path, $options);\n }\n\n /**\n * Get the mime-type of a given file.\n *\n * @param string $path\n * @return string|false\n * @static\n */\n public static function mimeType($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->mimeType($path);\n }\n\n /**\n * Get the file's last modification time.\n *\n * @param string $path\n * @return int\n * @static\n */\n public static function lastModified($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->lastModified($path);\n }\n\n /**\n * Get a resource to read the file.\n *\n * @param string $path\n * @return resource|null The path resource or null on failure.\n * @static\n */\n public static function readStream($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->readStream($path);\n }\n\n /**\n * Write a new file using a stream.\n *\n * @param string $path\n * @param resource $resource\n * @param array $options\n * @return bool\n * @static\n */\n public static function writeStream($path, $resource, $options = [])\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->writeStream($path, $resource, $options);\n }\n\n /**\n * Get the URL for the file at the given path.\n *\n * @param string $path\n * @return string\n * @throws \\RuntimeException\n * @static\n */\n public static function url($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->url($path);\n }\n\n /**\n * Get a temporary upload URL for the file at the given path.\n *\n * @param string $path\n * @param \\DateTimeInterface $expiration\n * @param array $options\n * @return array\n * @throws \\RuntimeException\n * @static\n */\n public static function temporaryUploadUrl($path, $expiration, $options = [])\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->temporaryUploadUrl($path, $expiration, $options);\n }\n\n /**\n * Get an array of all files in a directory.\n *\n * @param string|null $directory\n * @param bool $recursive\n * @return array\n * @static\n */\n public static function files($directory = null, $recursive = false)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->files($directory, $recursive);\n }\n\n /**\n * Get all of the files from the given directory (recursive).\n *\n * @param string|null $directory\n * @return array\n * @static\n */\n public static function allFiles($directory = null)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->allFiles($directory);\n }\n\n /**\n * Get all of the directories within a given directory.\n *\n * @param string|null $directory\n * @param bool $recursive\n * @return array\n * @static\n */\n public static function directories($directory = null, $recursive = false)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->directories($directory, $recursive);\n }\n\n /**\n * Get all the directories within a given directory (recursive).\n *\n * @param string|null $directory\n * @return array\n * @static\n */\n public static function allDirectories($directory = null)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->allDirectories($directory);\n }\n\n /**\n * Create a directory.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function makeDirectory($path)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->makeDirectory($path);\n }\n\n /**\n * Recursively delete a directory.\n *\n * @param string $directory\n * @return bool\n * @static\n */\n public static function deleteDirectory($directory)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->deleteDirectory($directory);\n }\n\n /**\n * Get the Flysystem driver.\n *\n * @return \\League\\Flysystem\\FilesystemOperator\n * @static\n */\n public static function getDriver()\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->getDriver();\n }\n\n /**\n * Get the Flysystem adapter.\n *\n * @return \\League\\Flysystem\\FilesystemAdapter\n * @static\n */\n public static function getAdapter()\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->getAdapter();\n }\n\n /**\n * Get the configuration values.\n *\n * @return array\n * @static\n */\n public static function getConfig()\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->getConfig();\n }\n\n /**\n * Define a custom callback that generates file download responses.\n *\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function serveUsing($callback)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n $instance->serveUsing($callback);\n }\n\n /**\n * Define a custom temporary URL builder callback.\n *\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function buildTemporaryUrlsUsing($callback)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n $instance->buildTemporaryUrlsUsing($callback);\n }\n\n /**\n * Apply the callback if the given \"value\" is (or resolves to) truthy.\n *\n * @template TWhenParameter\n * @template TWhenReturnType\n * @param (\\Closure($this): TWhenParameter)|TWhenParameter|null $value\n * @param (callable($this, TWhenParameter): TWhenReturnType)|null $callback\n * @param (callable($this, TWhenParameter): TWhenReturnType)|null $default\n * @return $this|TWhenReturnType\n * @static\n */\n public static function when($value = null, $callback = null, $default = null)\n {\n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->when($value, $callback, $default);\n }\n\n /**\n * Apply the callback if the given \"value\" is (or resolves to) falsy.\n *\n * @template TUnlessParameter\n * @template TUnlessReturnType\n * @param (\\Closure($this): TUnlessParameter)|TUnlessParameter|null $value\n * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $callback\n * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $default\n * @return $this|TUnlessReturnType\n * @static\n */\n public static function unless($value = null, $callback = null, $default = null)\n {\n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->unless($value, $callback, $default);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n \\Illuminate\\Filesystem\\LocalFilesystemAdapter::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n \\Illuminate\\Filesystem\\LocalFilesystemAdapter::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n return \\Illuminate\\Filesystem\\LocalFilesystemAdapter::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n \\Illuminate\\Filesystem\\LocalFilesystemAdapter::flushMacros();\n }\n\n /**\n * Dynamically handle calls to the class.\n *\n * @param string $method\n * @param array $parameters\n * @return mixed\n * @throws \\BadMethodCallException\n * @static\n */\n public static function macroCall($method, $parameters)\n {\n //Method inherited from \\Illuminate\\Filesystem\\FilesystemAdapter \n /** @var \\Illuminate\\Filesystem\\LocalFilesystemAdapter $instance */\n return $instance->macroCall($method, $parameters);\n }\n\n }\n /**\n * @see \\Illuminate\\Routing\\UrlGenerator\n */\n class URL {\n /**\n * Get the full URL for the current request.\n *\n * @return string\n * @static\n */\n public static function full()\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->full();\n }\n\n /**\n * Get the current URL for the request.\n *\n * @return string\n * @static\n */\n public static function current()\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->current();\n }\n\n /**\n * Get the URL for the previous request.\n *\n * @param mixed $fallback\n * @return string\n * @static\n */\n public static function previous($fallback = false)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->previous($fallback);\n }\n\n /**\n * Get the previous path info for the request.\n *\n * @param mixed $fallback\n * @return string\n * @static\n */\n public static function previousPath($fallback = false)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->previousPath($fallback);\n }\n\n /**\n * Generate an absolute URL to the given path.\n *\n * @param string $path\n * @param mixed $extra\n * @param bool|null $secure\n * @return string\n * @static\n */\n public static function to($path, $extra = [], $secure = null)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->to($path, $extra, $secure);\n }\n\n /**\n * Generate an absolute URL with the given query parameters.\n *\n * @param string $path\n * @param array $query\n * @param mixed $extra\n * @param bool|null $secure\n * @return string\n * @static\n */\n public static function query($path, $query = [], $extra = [], $secure = null)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->query($path, $query, $extra, $secure);\n }\n\n /**\n * Generate a secure, absolute URL to the given path.\n *\n * @param string $path\n * @param array $parameters\n * @return string\n * @static\n */\n public static function secure($path, $parameters = [])\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->secure($path, $parameters);\n }\n\n /**\n * Generate the URL to an application asset.\n *\n * @param string $path\n * @param bool|null $secure\n * @return string\n * @static\n */\n public static function asset($path, $secure = null)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->asset($path, $secure);\n }\n\n /**\n * Generate the URL to a secure asset.\n *\n * @param string $path\n * @return string\n * @static\n */\n public static function secureAsset($path)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->secureAsset($path);\n }\n\n /**\n * Generate the URL to an asset from a custom root domain such as CDN, etc.\n *\n * @param string $root\n * @param string $path\n * @param bool|null $secure\n * @return string\n * @static\n */\n public static function assetFrom($root, $path, $secure = null)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->assetFrom($root, $path, $secure);\n }\n\n /**\n * Get the default scheme for a raw URL.\n *\n * @param bool|null $secure\n * @return string\n * @static\n */\n public static function formatScheme($secure = null)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->formatScheme($secure);\n }\n\n /**\n * Create a signed route URL for a named route.\n *\n * @param \\BackedEnum|string $name\n * @param mixed $parameters\n * @param \\DateTimeInterface|\\DateInterval|int|null $expiration\n * @param bool $absolute\n * @return string\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function signedRoute($name, $parameters = [], $expiration = null, $absolute = true)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->signedRoute($name, $parameters, $expiration, $absolute);\n }\n\n /**\n * Create a temporary signed route URL for a named route.\n *\n * @param \\BackedEnum|string $name\n * @param \\DateTimeInterface|\\DateInterval|int $expiration\n * @param array $parameters\n * @param bool $absolute\n * @return string\n * @static\n */\n public static function temporarySignedRoute($name, $expiration, $parameters = [], $absolute = true)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->temporarySignedRoute($name, $expiration, $parameters, $absolute);\n }\n\n /**\n * Determine if the given request has a valid signature.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @param bool $absolute\n * @param \\Closure|array $ignoreQuery\n * @return bool\n * @static\n */\n public static function hasValidSignature($request, $absolute = true, $ignoreQuery = [])\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->hasValidSignature($request, $absolute, $ignoreQuery);\n }\n\n /**\n * Determine if the given request has a valid signature for a relative URL.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @param \\Closure|array $ignoreQuery\n * @return bool\n * @static\n */\n public static function hasValidRelativeSignature($request, $ignoreQuery = [])\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->hasValidRelativeSignature($request, $ignoreQuery);\n }\n\n /**\n * Determine if the signature from the given request matches the URL.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @param bool $absolute\n * @param \\Closure|array $ignoreQuery\n * @return bool\n * @static\n */\n public static function hasCorrectSignature($request, $absolute = true, $ignoreQuery = [])\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->hasCorrectSignature($request, $absolute, $ignoreQuery);\n }\n\n /**\n * Determine if the expires timestamp from the given request is not from the past.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @return bool\n * @static\n */\n public static function signatureHasNotExpired($request)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->signatureHasNotExpired($request);\n }\n\n /**\n * Get the URL to a named route.\n *\n * @param \\BackedEnum|string $name\n * @param mixed $parameters\n * @param bool $absolute\n * @return string\n * @throws \\Symfony\\Component\\Routing\\Exception\\RouteNotFoundException|\\InvalidArgumentException\n * @static\n */\n public static function route($name, $parameters = [], $absolute = true)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->route($name, $parameters, $absolute);\n }\n\n /**\n * Get the URL for a given route instance.\n *\n * @param \\Illuminate\\Routing\\Route $route\n * @param mixed $parameters\n * @param bool $absolute\n * @return string\n * @throws \\Illuminate\\Routing\\Exceptions\\UrlGenerationException\n * @static\n */\n public static function toRoute($route, $parameters, $absolute)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->toRoute($route, $parameters, $absolute);\n }\n\n /**\n * Get the URL to a controller action.\n *\n * @param string|array $action\n * @param mixed $parameters\n * @param bool $absolute\n * @return string\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function action($action, $parameters = [], $absolute = true)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->action($action, $parameters, $absolute);\n }\n\n /**\n * Format the array of URL parameters.\n *\n * @param mixed $parameters\n * @return array\n * @static\n */\n public static function formatParameters($parameters)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->formatParameters($parameters);\n }\n\n /**\n * Get the base URL for the request.\n *\n * @param string $scheme\n * @param string|null $root\n * @return string\n * @static\n */\n public static function formatRoot($scheme, $root = null)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->formatRoot($scheme, $root);\n }\n\n /**\n * Format the given URL segments into a single URL.\n *\n * @param string $root\n * @param string $path\n * @param \\Illuminate\\Routing\\Route|null $route\n * @return string\n * @static\n */\n public static function format($root, $path, $route = null)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->format($root, $path, $route);\n }\n\n /**\n * Determine if the given path is a valid URL.\n *\n * @param string $path\n * @return bool\n * @static\n */\n public static function isValidUrl($path)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->isValidUrl($path);\n }\n\n /**\n * Set the default named parameters used by the URL generator.\n *\n * @param array $defaults\n * @return void\n * @static\n */\n public static function defaults($defaults)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n $instance->defaults($defaults);\n }\n\n /**\n * Get the default named parameters used by the URL generator.\n *\n * @return array\n * @static\n */\n public static function getDefaultParameters()\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->getDefaultParameters();\n }\n\n /**\n * Force the scheme for URLs.\n *\n * @param string|null $scheme\n * @return void\n * @static\n */\n public static function forceScheme($scheme)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n $instance->forceScheme($scheme);\n }\n\n /**\n * Force the use of the HTTPS scheme for all generated URLs.\n *\n * @param bool $force\n * @return void\n * @static\n */\n public static function forceHttps($force = true)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n $instance->forceHttps($force);\n }\n\n /**\n * Set the URL origin for all generated URLs.\n *\n * @param string|null $root\n * @return void\n * @static\n */\n public static function useOrigin($root)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n $instance->useOrigin($root);\n }\n\n /**\n * Set the forced root URL.\n *\n * @param string|null $root\n * @return void\n * @deprecated Use useOrigin\n * @static\n */\n public static function forceRootUrl($root)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n $instance->forceRootUrl($root);\n }\n\n /**\n * Set the URL origin for all generated asset URLs.\n *\n * @param string|null $root\n * @return void\n * @static\n */\n public static function useAssetOrigin($root)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n $instance->useAssetOrigin($root);\n }\n\n /**\n * Set a callback to be used to format the host of generated URLs.\n *\n * @param \\Closure $callback\n * @return \\Illuminate\\Routing\\UrlGenerator\n * @static\n */\n public static function formatHostUsing($callback)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->formatHostUsing($callback);\n }\n\n /**\n * Set a callback to be used to format the path of generated URLs.\n *\n * @param \\Closure $callback\n * @return \\Illuminate\\Routing\\UrlGenerator\n * @static\n */\n public static function formatPathUsing($callback)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->formatPathUsing($callback);\n }\n\n /**\n * Get the path formatter being used by the URL generator.\n *\n * @return \\Closure\n * @static\n */\n public static function pathFormatter()\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->pathFormatter();\n }\n\n /**\n * Get the request instance.\n *\n * @return \\Illuminate\\Http\\Request\n * @static\n */\n public static function getRequest()\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->getRequest();\n }\n\n /**\n * Set the current request instance.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @return void\n * @static\n */\n public static function setRequest($request)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n $instance->setRequest($request);\n }\n\n /**\n * Set the route collection.\n *\n * @param \\Illuminate\\Routing\\RouteCollectionInterface $routes\n * @return \\Illuminate\\Routing\\UrlGenerator\n * @static\n */\n public static function setRoutes($routes)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->setRoutes($routes);\n }\n\n /**\n * Set the session resolver for the generator.\n *\n * @param callable $sessionResolver\n * @return \\Illuminate\\Routing\\UrlGenerator\n * @static\n */\n public static function setSessionResolver($sessionResolver)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->setSessionResolver($sessionResolver);\n }\n\n /**\n * Set the encryption key resolver.\n *\n * @param callable $keyResolver\n * @return \\Illuminate\\Routing\\UrlGenerator\n * @static\n */\n public static function setKeyResolver($keyResolver)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->setKeyResolver($keyResolver);\n }\n\n /**\n * Clone a new instance of the URL generator with a different encryption key resolver.\n *\n * @param callable $keyResolver\n * @return \\Illuminate\\Routing\\UrlGenerator\n * @static\n */\n public static function withKeyResolver($keyResolver)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->withKeyResolver($keyResolver);\n }\n\n /**\n * Set the callback that should be used to attempt to resolve missing named routes.\n *\n * @param callable $missingNamedRouteResolver\n * @return \\Illuminate\\Routing\\UrlGenerator\n * @static\n */\n public static function resolveMissingNamedRoutesUsing($missingNamedRouteResolver)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->resolveMissingNamedRoutesUsing($missingNamedRouteResolver);\n }\n\n /**\n * Get the root controller namespace.\n *\n * @return string\n * @static\n */\n public static function getRootControllerNamespace()\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->getRootControllerNamespace();\n }\n\n /**\n * Set the root controller namespace.\n *\n * @param string $rootNamespace\n * @return \\Illuminate\\Routing\\UrlGenerator\n * @static\n */\n public static function setRootControllerNamespace($rootNamespace)\n {\n /** @var \\Illuminate\\Routing\\UrlGenerator $instance */\n return $instance->setRootControllerNamespace($rootNamespace);\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Routing\\UrlGenerator::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Routing\\UrlGenerator::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Routing\\UrlGenerator::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Routing\\UrlGenerator::flushMacros();\n }\n\n }\n /**\n * @see \\Illuminate\\Validation\\Factory\n */\n class Validator {\n /**\n * Create a new Validator instance.\n *\n * @param array $data\n * @param array $rules\n * @param array $messages\n * @param array $attributes\n * @return \\Illuminate\\Validation\\Validator\n * @static\n */\n public static function make($data, $rules, $messages = [], $attributes = [])\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n return $instance->make($data, $rules, $messages, $attributes);\n }\n\n /**\n * Validate the given data against the provided rules.\n *\n * @param array $data\n * @param array $rules\n * @param array $messages\n * @param array $attributes\n * @return array\n * @throws \\Illuminate\\Validation\\ValidationException\n * @static\n */\n public static function validate($data, $rules, $messages = [], $attributes = [])\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n return $instance->validate($data, $rules, $messages, $attributes);\n }\n\n /**\n * Register a custom validator extension.\n *\n * @param string $rule\n * @param \\Closure|string $extension\n * @param string|null $message\n * @return void\n * @static\n */\n public static function extend($rule, $extension, $message = null)\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n $instance->extend($rule, $extension, $message);\n }\n\n /**\n * Register a custom implicit validator extension.\n *\n * @param string $rule\n * @param \\Closure|string $extension\n * @param string|null $message\n * @return void\n * @static\n */\n public static function extendImplicit($rule, $extension, $message = null)\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n $instance->extendImplicit($rule, $extension, $message);\n }\n\n /**\n * Register a custom dependent validator extension.\n *\n * @param string $rule\n * @param \\Closure|string $extension\n * @param string|null $message\n * @return void\n * @static\n */\n public static function extendDependent($rule, $extension, $message = null)\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n $instance->extendDependent($rule, $extension, $message);\n }\n\n /**\n * Register a custom validator message replacer.\n *\n * @param string $rule\n * @param \\Closure|string $replacer\n * @return void\n * @static\n */\n public static function replacer($rule, $replacer)\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n $instance->replacer($rule, $replacer);\n }\n\n /**\n * Indicate that unvalidated array keys should be included in validated data when the parent array is validated.\n *\n * @return void\n * @static\n */\n public static function includeUnvalidatedArrayKeys()\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n $instance->includeUnvalidatedArrayKeys();\n }\n\n /**\n * Indicate that unvalidated array keys should be excluded from the validated data, even if the parent array was validated.\n *\n * @return void\n * @static\n */\n public static function excludeUnvalidatedArrayKeys()\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n $instance->excludeUnvalidatedArrayKeys();\n }\n\n /**\n * Set the Validator instance resolver.\n *\n * @param \\Closure $resolver\n * @return void\n * @static\n */\n public static function resolver($resolver)\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n $instance->resolver($resolver);\n }\n\n /**\n * Get the Translator implementation.\n *\n * @return \\Illuminate\\Contracts\\Translation\\Translator\n * @static\n */\n public static function getTranslator()\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n return $instance->getTranslator();\n }\n\n /**\n * Get the Presence Verifier implementation.\n *\n * @return \\Illuminate\\Validation\\PresenceVerifierInterface\n * @static\n */\n public static function getPresenceVerifier()\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n return $instance->getPresenceVerifier();\n }\n\n /**\n * Set the Presence Verifier implementation.\n *\n * @param \\Illuminate\\Validation\\PresenceVerifierInterface $presenceVerifier\n * @return void\n * @static\n */\n public static function setPresenceVerifier($presenceVerifier)\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n $instance->setPresenceVerifier($presenceVerifier);\n }\n\n /**\n * Get the container instance used by the validation factory.\n *\n * @return \\Illuminate\\Contracts\\Container\\Container|null\n * @static\n */\n public static function getContainer()\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n return $instance->getContainer();\n }\n\n /**\n * Set the container instance used by the validation factory.\n *\n * @param \\Illuminate\\Contracts\\Container\\Container $container\n * @return \\Illuminate\\Validation\\Factory\n * @static\n */\n public static function setContainer($container)\n {\n /** @var \\Illuminate\\Validation\\Factory $instance */\n return $instance->setContainer($container);\n }\n\n }\n /**\n * @see \\Illuminate\\View\\Factory\n */\n class View {\n /**\n * Get the evaluated view contents for the given view.\n *\n * @param string $path\n * @param \\Illuminate\\Contracts\\Support\\Arrayable|array $data\n * @param array $mergeData\n * @return \\Illuminate\\Contracts\\View\\View\n * @static\n */\n public static function file($path, $data = [], $mergeData = [])\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->file($path, $data, $mergeData);\n }\n\n /**\n * Get the evaluated view contents for the given view.\n *\n * @param string $view\n * @param \\Illuminate\\Contracts\\Support\\Arrayable|array $data\n * @param array $mergeData\n * @return \\Illuminate\\Contracts\\View\\View\n * @static\n */\n public static function make($view, $data = [], $mergeData = [])\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->make($view, $data, $mergeData);\n }\n\n /**\n * Get the first view that actually exists from the given list.\n *\n * @param array $views\n * @param \\Illuminate\\Contracts\\Support\\Arrayable|array $data\n * @param array $mergeData\n * @return \\Illuminate\\Contracts\\View\\View\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function first($views, $data = [], $mergeData = [])\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->first($views, $data, $mergeData);\n }\n\n /**\n * Get the rendered content of the view based on a given condition.\n *\n * @param bool $condition\n * @param string $view\n * @param \\Illuminate\\Contracts\\Support\\Arrayable|array $data\n * @param array $mergeData\n * @return string\n * @static\n */\n public static function renderWhen($condition, $view, $data = [], $mergeData = [])\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->renderWhen($condition, $view, $data, $mergeData);\n }\n\n /**\n * Get the rendered content of the view based on the negation of a given condition.\n *\n * @param bool $condition\n * @param string $view\n * @param \\Illuminate\\Contracts\\Support\\Arrayable|array $data\n * @param array $mergeData\n * @return string\n * @static\n */\n public static function renderUnless($condition, $view, $data = [], $mergeData = [])\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->renderUnless($condition, $view, $data, $mergeData);\n }\n\n /**\n * Get the rendered contents of a partial from a loop.\n *\n * @param string $view\n * @param array $data\n * @param string $iterator\n * @param string $empty\n * @return string\n * @static\n */\n public static function renderEach($view, $data, $iterator, $empty = 'raw|')\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->renderEach($view, $data, $iterator, $empty);\n }\n\n /**\n * Determine if a given view exists.\n *\n * @param string $view\n * @return bool\n * @static\n */\n public static function exists($view)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->exists($view);\n }\n\n /**\n * Get the appropriate view engine for the given path.\n *\n * @param string $path\n * @return \\Illuminate\\Contracts\\View\\Engine\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function getEngineFromPath($path)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getEngineFromPath($path);\n }\n\n /**\n * Add a piece of shared data to the environment.\n *\n * @param array|string $key\n * @param mixed $value\n * @return mixed\n * @static\n */\n public static function share($key, $value = null)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->share($key, $value);\n }\n\n /**\n * Increment the rendering counter.\n *\n * @return void\n * @static\n */\n public static function incrementRender()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->incrementRender();\n }\n\n /**\n * Decrement the rendering counter.\n *\n * @return void\n * @static\n */\n public static function decrementRender()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->decrementRender();\n }\n\n /**\n * Check if there are no active render operations.\n *\n * @return bool\n * @static\n */\n public static function doneRendering()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->doneRendering();\n }\n\n /**\n * Determine if the given once token has been rendered.\n *\n * @param string $id\n * @return bool\n * @static\n */\n public static function hasRenderedOnce($id)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->hasRenderedOnce($id);\n }\n\n /**\n * Mark the given once token as having been rendered.\n *\n * @param string $id\n * @return void\n * @static\n */\n public static function markAsRenderedOnce($id)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->markAsRenderedOnce($id);\n }\n\n /**\n * Add a location to the array of view locations.\n *\n * @param string $location\n * @return void\n * @static\n */\n public static function addLocation($location)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->addLocation($location);\n }\n\n /**\n * Prepend a location to the array of view locations.\n *\n * @param string $location\n * @return void\n * @static\n */\n public static function prependLocation($location)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->prependLocation($location);\n }\n\n /**\n * Add a new namespace to the loader.\n *\n * @param string $namespace\n * @param string|array $hints\n * @return \\Illuminate\\View\\Factory\n * @static\n */\n public static function addNamespace($namespace, $hints)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->addNamespace($namespace, $hints);\n }\n\n /**\n * Prepend a new namespace to the loader.\n *\n * @param string $namespace\n * @param string|array $hints\n * @return \\Illuminate\\View\\Factory\n * @static\n */\n public static function prependNamespace($namespace, $hints)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->prependNamespace($namespace, $hints);\n }\n\n /**\n * Replace the namespace hints for the given namespace.\n *\n * @param string $namespace\n * @param string|array $hints\n * @return \\Illuminate\\View\\Factory\n * @static\n */\n public static function replaceNamespace($namespace, $hints)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->replaceNamespace($namespace, $hints);\n }\n\n /**\n * Register a valid view extension and its engine.\n *\n * @param string $extension\n * @param string $engine\n * @param \\Closure|null $resolver\n * @return void\n * @static\n */\n public static function addExtension($extension, $engine, $resolver = null)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->addExtension($extension, $engine, $resolver);\n }\n\n /**\n * Flush all of the factory state like sections and stacks.\n *\n * @return void\n * @static\n */\n public static function flushState()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->flushState();\n }\n\n /**\n * Flush all of the section contents if done rendering.\n *\n * @return void\n * @static\n */\n public static function flushStateIfDoneRendering()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->flushStateIfDoneRendering();\n }\n\n /**\n * Get the extension to engine bindings.\n *\n * @return array\n * @static\n */\n public static function getExtensions()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getExtensions();\n }\n\n /**\n * Get the engine resolver instance.\n *\n * @return \\Illuminate\\View\\Engines\\EngineResolver\n * @static\n */\n public static function getEngineResolver()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getEngineResolver();\n }\n\n /**\n * Get the view finder instance.\n *\n * @return \\Illuminate\\View\\ViewFinderInterface\n * @static\n */\n public static function getFinder()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getFinder();\n }\n\n /**\n * Set the view finder instance.\n *\n * @param \\Illuminate\\View\\ViewFinderInterface $finder\n * @return void\n * @static\n */\n public static function setFinder($finder)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->setFinder($finder);\n }\n\n /**\n * Flush the cache of views located by the finder.\n *\n * @return void\n * @static\n */\n public static function flushFinderCache()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->flushFinderCache();\n }\n\n /**\n * Get the event dispatcher instance.\n *\n * @return \\Illuminate\\Contracts\\Events\\Dispatcher\n * @static\n */\n public static function getDispatcher()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getDispatcher();\n }\n\n /**\n * Set the event dispatcher instance.\n *\n * @param \\Illuminate\\Contracts\\Events\\Dispatcher $events\n * @return void\n * @static\n */\n public static function setDispatcher($events)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->setDispatcher($events);\n }\n\n /**\n * Get the IoC container instance.\n *\n * @return \\Illuminate\\Contracts\\Container\\Container\n * @static\n */\n public static function getContainer()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getContainer();\n }\n\n /**\n * Set the IoC container instance.\n *\n * @param \\Illuminate\\Contracts\\Container\\Container $container\n * @return void\n * @static\n */\n public static function setContainer($container)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->setContainer($container);\n }\n\n /**\n * Get an item from the shared data.\n *\n * @param string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function shared($key, $default = null)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->shared($key, $default);\n }\n\n /**\n * Get all of the shared data for the environment.\n *\n * @return array\n * @static\n */\n public static function getShared()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getShared();\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\View\\Factory::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\View\\Factory::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\View\\Factory::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\View\\Factory::flushMacros();\n }\n\n /**\n * Start a component rendering process.\n *\n * @param \\Illuminate\\Contracts\\View\\View|\\Illuminate\\Contracts\\Support\\Htmlable|\\Closure|string $view\n * @param array $data\n * @return void\n * @static\n */\n public static function startComponent($view, $data = [])\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->startComponent($view, $data);\n }\n\n /**\n * Get the first view that actually exists from the given list, and start a component.\n *\n * @param array $names\n * @param array $data\n * @return void\n * @static\n */\n public static function startComponentFirst($names, $data = [])\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->startComponentFirst($names, $data);\n }\n\n /**\n * Render the current component.\n *\n * @return string\n * @static\n */\n public static function renderComponent()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->renderComponent();\n }\n\n /**\n * Get an item from the component data that exists above the current component.\n *\n * @param string $key\n * @param mixed $default\n * @return mixed\n * @static\n */\n public static function getConsumableComponentData($key, $default = null)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getConsumableComponentData($key, $default);\n }\n\n /**\n * Start the slot rendering process.\n *\n * @param string $name\n * @param string|null $content\n * @param array $attributes\n * @return void\n * @static\n */\n public static function slot($name, $content = null, $attributes = [])\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->slot($name, $content, $attributes);\n }\n\n /**\n * Save the slot content for rendering.\n *\n * @return void\n * @static\n */\n public static function endSlot()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->endSlot();\n }\n\n /**\n * Register a view creator event.\n *\n * @param array|string $views\n * @param \\Closure|string $callback\n * @return array\n * @static\n */\n public static function creator($views, $callback)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->creator($views, $callback);\n }\n\n /**\n * Register multiple view composers via an array.\n *\n * @param array $composers\n * @return array\n * @static\n */\n public static function composers($composers)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->composers($composers);\n }\n\n /**\n * Register a view composer event.\n *\n * @param array|string $views\n * @param \\Closure|string $callback\n * @return array\n * @static\n */\n public static function composer($views, $callback)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->composer($views, $callback);\n }\n\n /**\n * Call the composer for a given view.\n *\n * @param \\Illuminate\\Contracts\\View\\View $view\n * @return void\n * @static\n */\n public static function callComposer($view)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->callComposer($view);\n }\n\n /**\n * Call the creator for a given view.\n *\n * @param \\Illuminate\\Contracts\\View\\View $view\n * @return void\n * @static\n */\n public static function callCreator($view)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->callCreator($view);\n }\n\n /**\n * Start injecting content into a fragment.\n *\n * @param string $fragment\n * @return void\n * @static\n */\n public static function startFragment($fragment)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->startFragment($fragment);\n }\n\n /**\n * Stop injecting content into a fragment.\n *\n * @return string\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function stopFragment()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->stopFragment();\n }\n\n /**\n * Get the contents of a fragment.\n *\n * @param string $name\n * @param string|null $default\n * @return mixed\n * @static\n */\n public static function getFragment($name, $default = null)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getFragment($name, $default);\n }\n\n /**\n * Get the entire array of rendered fragments.\n *\n * @return array\n * @static\n */\n public static function getFragments()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getFragments();\n }\n\n /**\n * Flush all of the fragments.\n *\n * @return void\n * @static\n */\n public static function flushFragments()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->flushFragments();\n }\n\n /**\n * Start injecting content into a section.\n *\n * @param string $section\n * @param string|null $content\n * @return void\n * @static\n */\n public static function startSection($section, $content = null)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->startSection($section, $content);\n }\n\n /**\n * Inject inline content into a section.\n *\n * @param string $section\n * @param string $content\n * @return void\n * @static\n */\n public static function inject($section, $content)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->inject($section, $content);\n }\n\n /**\n * Stop injecting content into a section and return its contents.\n *\n * @return string\n * @static\n */\n public static function yieldSection()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->yieldSection();\n }\n\n /**\n * Stop injecting content into a section.\n *\n * @param bool $overwrite\n * @return string\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function stopSection($overwrite = false)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->stopSection($overwrite);\n }\n\n /**\n * Stop injecting content into a section and append it.\n *\n * @return string\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function appendSection()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->appendSection();\n }\n\n /**\n * Get the string contents of a section.\n *\n * @param string $section\n * @param string $default\n * @return string\n * @static\n */\n public static function yieldContent($section, $default = '')\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->yieldContent($section, $default);\n }\n\n /**\n * Get the parent placeholder for the current request.\n *\n * @param string $section\n * @return string\n * @static\n */\n public static function parentPlaceholder($section = '')\n {\n return \\Illuminate\\View\\Factory::parentPlaceholder($section);\n }\n\n /**\n * Check if section exists.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasSection($name)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->hasSection($name);\n }\n\n /**\n * Check if section does not exist.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function sectionMissing($name)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->sectionMissing($name);\n }\n\n /**\n * Get the contents of a section.\n *\n * @param string $name\n * @param string|null $default\n * @return mixed\n * @static\n */\n public static function getSection($name, $default = null)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getSection($name, $default);\n }\n\n /**\n * Get the entire array of sections.\n *\n * @return array\n * @static\n */\n public static function getSections()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getSections();\n }\n\n /**\n * Flush all of the sections.\n *\n * @return void\n * @static\n */\n public static function flushSections()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->flushSections();\n }\n\n /**\n * Add new loop to the stack.\n *\n * @param \\Countable|array $data\n * @return void\n * @static\n */\n public static function addLoop($data)\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->addLoop($data);\n }\n\n /**\n * Increment the top loop's indices.\n *\n * @return void\n * @static\n */\n public static function incrementLoopIndices()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->incrementLoopIndices();\n }\n\n /**\n * Pop a loop from the top of the loop stack.\n *\n * @return void\n * @static\n */\n public static function popLoop()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->popLoop();\n }\n\n /**\n * Get an instance of the last loop in the stack.\n *\n * @return \\stdClass|null\n * @static\n */\n public static function getLastLoop()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getLastLoop();\n }\n\n /**\n * Get the entire loop stack.\n *\n * @return array\n * @static\n */\n public static function getLoopStack()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->getLoopStack();\n }\n\n /**\n * Start injecting content into a push section.\n *\n * @param string $section\n * @param string $content\n * @return void\n * @static\n */\n public static function startPush($section, $content = '')\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->startPush($section, $content);\n }\n\n /**\n * Stop injecting content into a push section.\n *\n * @return string\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function stopPush()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->stopPush();\n }\n\n /**\n * Start prepending content into a push section.\n *\n * @param string $section\n * @param string $content\n * @return void\n * @static\n */\n public static function startPrepend($section, $content = '')\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->startPrepend($section, $content);\n }\n\n /**\n * Stop prepending content into a push section.\n *\n * @return string\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function stopPrepend()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->stopPrepend();\n }\n\n /**\n * Get the string contents of a push section.\n *\n * @param string $section\n * @param string $default\n * @return string\n * @static\n */\n public static function yieldPushContent($section, $default = '')\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->yieldPushContent($section, $default);\n }\n\n /**\n * Flush all of the stacks.\n *\n * @return void\n * @static\n */\n public static function flushStacks()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->flushStacks();\n }\n\n /**\n * Start a translation block.\n *\n * @param array $replacements\n * @return void\n * @static\n */\n public static function startTranslation($replacements = [])\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n $instance->startTranslation($replacements);\n }\n\n /**\n * Render the current translation.\n *\n * @return string\n * @static\n */\n public static function renderTranslation()\n {\n /** @var \\Illuminate\\View\\Factory $instance */\n return $instance->renderTranslation();\n }\n\n }\n /**\n * @see \\Illuminate\\Foundation\\Vite\n */\n class Vite {\n /**\n * Get the preloaded assets.\n *\n * @return array\n * @static\n */\n public static function preloadedAssets()\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->preloadedAssets();\n }\n\n /**\n * Get the Content Security Policy nonce applied to all generated tags.\n *\n * @return string|null\n * @static\n */\n public static function cspNonce()\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->cspNonce();\n }\n\n /**\n * Generate or set a Content Security Policy nonce to apply to all generated tags.\n *\n * @param string|null $nonce\n * @return string\n * @static\n */\n public static function useCspNonce($nonce = null)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->useCspNonce($nonce);\n }\n\n /**\n * Use the given key to detect integrity hashes in the manifest.\n *\n * @param string|false $key\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function useIntegrityKey($key)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->useIntegrityKey($key);\n }\n\n /**\n * Set the Vite entry points.\n *\n * @param array $entryPoints\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function withEntryPoints($entryPoints)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->withEntryPoints($entryPoints);\n }\n\n /**\n * Merge additional Vite entry points with the current set.\n *\n * @param array $entryPoints\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function mergeEntryPoints($entryPoints)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->mergeEntryPoints($entryPoints);\n }\n\n /**\n * Set the filename for the manifest file.\n *\n * @param string $filename\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function useManifestFilename($filename)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->useManifestFilename($filename);\n }\n\n /**\n * Resolve asset paths using the provided resolver.\n *\n * @param callable|null $resolver\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function createAssetPathsUsing($resolver)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->createAssetPathsUsing($resolver);\n }\n\n /**\n * Get the Vite \"hot\" file path.\n *\n * @return string\n * @static\n */\n public static function hotFile()\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->hotFile();\n }\n\n /**\n * Set the Vite \"hot\" file path.\n *\n * @param string $path\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function useHotFile($path)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->useHotFile($path);\n }\n\n /**\n * Set the Vite build directory.\n *\n * @param string $path\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function useBuildDirectory($path)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->useBuildDirectory($path);\n }\n\n /**\n * Use the given callback to resolve attributes for script tags.\n *\n * @param (callable(string, string, ?array, ?array): array)|array $attributes\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function useScriptTagAttributes($attributes)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->useScriptTagAttributes($attributes);\n }\n\n /**\n * Use the given callback to resolve attributes for style tags.\n *\n * @param (callable(string, string, ?array, ?array): array)|array $attributes\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function useStyleTagAttributes($attributes)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->useStyleTagAttributes($attributes);\n }\n\n /**\n * Use the given callback to resolve attributes for preload tags.\n *\n * @param (callable(string, string, ?array, ?array): (array|false))|array|false $attributes\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function usePreloadTagAttributes($attributes)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->usePreloadTagAttributes($attributes);\n }\n\n /**\n * Eagerly prefetch assets.\n *\n * @param int|null $concurrency\n * @param string $event\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function prefetch($concurrency = null, $event = 'load')\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->prefetch($concurrency, $event);\n }\n\n /**\n * Use the \"waterfall\" prefetching strategy.\n *\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function useWaterfallPrefetching($concurrency = null)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->useWaterfallPrefetching($concurrency);\n }\n\n /**\n * Use the \"aggressive\" prefetching strategy.\n *\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function useAggressivePrefetching()\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->useAggressivePrefetching();\n }\n\n /**\n * Set the prefetching strategy.\n *\n * @param 'waterfall'|'aggressive'|null $strategy\n * @param array $config\n * @return \\Illuminate\\Foundation\\Vite\n * @static\n */\n public static function usePrefetchStrategy($strategy, $config = [])\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->usePrefetchStrategy($strategy, $config);\n }\n\n /**\n * Generate React refresh runtime script.\n *\n * @return \\Illuminate\\Support\\HtmlString|void\n * @static\n */\n public static function reactRefresh()\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->reactRefresh();\n }\n\n /**\n * Get the URL for an asset.\n *\n * @param string $asset\n * @param string|null $buildDirectory\n * @return string\n * @static\n */\n public static function asset($asset, $buildDirectory = null)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->asset($asset, $buildDirectory);\n }\n\n /**\n * Get the content of a given asset.\n *\n * @param string $asset\n * @param string|null $buildDirectory\n * @return string\n * @throws \\Illuminate\\Foundation\\ViteException\n * @static\n */\n public static function content($asset, $buildDirectory = null)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->content($asset, $buildDirectory);\n }\n\n /**\n * Get a unique hash representing the current manifest, or null if there is no manifest.\n *\n * @param string|null $buildDirectory\n * @return string|null\n * @static\n */\n public static function manifestHash($buildDirectory = null)\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->manifestHash($buildDirectory);\n }\n\n /**\n * Determine if the HMR server is running.\n *\n * @return bool\n * @static\n */\n public static function isRunningHot()\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->isRunningHot();\n }\n\n /**\n * Get the Vite tag content as a string of HTML.\n *\n * @return string\n * @static\n */\n public static function toHtml()\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n return $instance->toHtml();\n }\n\n /**\n * Flush state.\n *\n * @return void\n * @static\n */\n public static function flush()\n {\n /** @var \\Illuminate\\Foundation\\Vite $instance */\n $instance->flush();\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Foundation\\Vite::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Foundation\\Vite::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Illuminate\\Foundation\\Vite::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Foundation\\Vite::flushMacros();\n }\n\n }\n /**\n * @method static void createSubscription(array|string $channels, \\Closure $callback, string $method = 'subscribe')\n * @method static \\Illuminate\\Redis\\Limiters\\ConcurrencyLimiterBuilder funnel(string $name)\n * @method static \\Illuminate\\Redis\\Limiters\\DurationLimiterBuilder throttle(string $name)\n * @method static mixed client()\n * @method static void subscribe(array|string $channels, \\Closure $callback)\n * @method static void psubscribe(array|string $channels, \\Closure $callback)\n * @method static mixed command(string $method, array $parameters = [])\n * @method static void listen(\\Closure $callback)\n * @method static string|null getName()\n * @method static \\Illuminate\\Redis\\Connections\\Connection setName(string $name)\n * @method static \\Illuminate\\Contracts\\Events\\Dispatcher getEventDispatcher()\n * @method static void setEventDispatcher(\\Illuminate\\Contracts\\Events\\Dispatcher $events)\n * @method static void unsetEventDispatcher()\n * @method static void macro(string $name, object|callable $macro)\n * @method static void mixin(object $mixin, bool $replace = true)\n * @method static bool hasMacro(string $name)\n * @method static void flushMacros()\n * @method static mixed macroCall(string $method, array $parameters)\n * @see \\Illuminate\\Redis\\RedisManager\n */\n class Redis {\n /**\n * Get a Redis connection by name.\n *\n * @param \\UnitEnum|string|null $name\n * @return \\Illuminate\\Redis\\Connections\\Connection\n * @static\n */\n public static function connection($name = null)\n {\n /** @var \\Illuminate\\Redis\\RedisManager $instance */\n return $instance->connection($name);\n }\n\n /**\n * Resolve the given connection by name.\n *\n * @param string|null $name\n * @return \\Illuminate\\Redis\\Connections\\Connection\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function resolve($name = null)\n {\n /** @var \\Illuminate\\Redis\\RedisManager $instance */\n return $instance->resolve($name);\n }\n\n /**\n * Return all of the created connections.\n *\n * @return array\n * @static\n */\n public static function connections()\n {\n /** @var \\Illuminate\\Redis\\RedisManager $instance */\n return $instance->connections();\n }\n\n /**\n * Enable the firing of Redis command events.\n *\n * @return void\n * @static\n */\n public static function enableEvents()\n {\n /** @var \\Illuminate\\Redis\\RedisManager $instance */\n $instance->enableEvents();\n }\n\n /**\n * Disable the firing of Redis command events.\n *\n * @return void\n * @static\n */\n public static function disableEvents()\n {\n /** @var \\Illuminate\\Redis\\RedisManager $instance */\n $instance->disableEvents();\n }\n\n /**\n * Set the default driver.\n *\n * @param string $driver\n * @return void\n * @static\n */\n public static function setDriver($driver)\n {\n /** @var \\Illuminate\\Redis\\RedisManager $instance */\n $instance->setDriver($driver);\n }\n\n /**\n * Disconnect the given connection and remove from local cache.\n *\n * @param string|null $name\n * @return void\n * @static\n */\n public static function purge($name = null)\n {\n /** @var \\Illuminate\\Redis\\RedisManager $instance */\n $instance->purge($name);\n }\n\n /**\n * Register a custom driver creator Closure.\n *\n * @param string $driver\n * @param \\Closure $callback\n * @param-closure-this $this $callback\n * @return \\Illuminate\\Redis\\RedisManager\n * @static\n */\n public static function extend($driver, $callback)\n {\n /** @var \\Illuminate\\Redis\\RedisManager $instance */\n return $instance->extend($driver, $callback);\n }\n\n }\n }\n\nnamespace Aws\\Laravel {\n /**\n * Facade for the AWS service\n *\n */\n class AwsFacade {\n /**\n * Get a client by name using an array of constructor options.\n *\n * @param string $name Service name or namespace (e.g., DynamoDb, s3).\n * @param array $args Arguments to configure the client.\n * @return \\Aws\\AwsClientInterface\n * @throws \\InvalidArgumentException if any required options are missing or\n * the service is not supported.\n * @see Aws\\AwsClient::__construct for a list of available options for args.\n * @static\n */\n public static function createClient($name, $args = [])\n {\n /** @var \\Aws\\Sdk $instance */\n return $instance->createClient($name, $args);\n }\n\n /**\n * @static\n */\n public static function createMultiRegionClient($name, $args = [])\n {\n /** @var \\Aws\\Sdk $instance */\n return $instance->createMultiRegionClient($name, $args);\n }\n\n /**\n * Clone existing SDK instance with ability to pass an associative array\n * of extra client settings.\n *\n * @param array $args\n * @return self\n * @static\n */\n public static function copy($args = [])\n {\n /** @var \\Aws\\Sdk $instance */\n return $instance->copy($args);\n }\n\n /**\n * Determine the endpoint prefix from a client namespace.\n *\n * @param string $name Namespace name\n * @return string\n * @internal\n * @deprecated Use the `\\Aws\\manifest()` function instead.\n * @static\n */\n public static function getEndpointPrefix($name)\n {\n return \\Aws\\Sdk::getEndpointPrefix($name);\n }\n\n }\n }\n\nnamespace Laravolt\\Avatar {\n /**\n */\n class Facade {\n /**\n * @static\n */\n public static function setGenerator($generator)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setGenerator($generator);\n }\n\n /**\n * @static\n */\n public static function create($name)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->create($name);\n }\n\n /**\n * @static\n */\n public static function applyTheme($config)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->applyTheme($config);\n }\n\n /**\n * @static\n */\n public static function addTheme($name, $config)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->addTheme($name, $config);\n }\n\n /**\n * @static\n */\n public static function toBase64()\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->toBase64();\n }\n\n /**\n * @static\n */\n public static function save($path, $quality = 90)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->save($path, $quality);\n }\n\n /**\n * @static\n */\n public static function toSvg()\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->toSvg();\n }\n\n /**\n * @static\n */\n public static function toGravatar($param = null)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->toGravatar($param);\n }\n\n /**\n * @static\n */\n public static function getInitial()\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->getInitial();\n }\n\n /**\n * @static\n */\n public static function getImageObject()\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->getImageObject();\n }\n\n /**\n * @static\n */\n public static function buildAvatar()\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->buildAvatar();\n }\n\n /**\n * @static\n */\n public static function getAttribute($key)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->getAttribute($key);\n }\n\n /**\n * Get background color\n *\n * @static\n */\n public static function getBackground()\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->getBackground();\n }\n\n /**\n * Get foreground color\n *\n * @static\n */\n public static function getForeground()\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->getForeground();\n }\n\n /**\n * Get shape\n *\n * @static\n */\n public static function getShape()\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->getShape();\n }\n\n /**\n * @static\n */\n public static function setTheme($theme)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setTheme($theme);\n }\n\n /**\n * @static\n */\n public static function setBackground($hex)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setBackground($hex);\n }\n\n /**\n * @static\n */\n public static function setForeground($hex)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setForeground($hex);\n }\n\n /**\n * @static\n */\n public static function setDimension($width, $height = null)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setDimension($width, $height);\n }\n\n /**\n * @static\n */\n public static function setResponsive($responsive)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setResponsive($responsive);\n }\n\n /**\n * @static\n */\n public static function setFontSize($size)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setFontSize($size);\n }\n\n /**\n * @static\n */\n public static function setFontFamily($font)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setFontFamily($font);\n }\n\n /**\n * @static\n */\n public static function setBorder($size, $color, $radius = 0)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setBorder($size, $color, $radius);\n }\n\n /**\n * @static\n */\n public static function setBorderRadius($radius)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setBorderRadius($radius);\n }\n\n /**\n * @static\n */\n public static function setShape($shape)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setShape($shape);\n }\n\n /**\n * @static\n */\n public static function setChars($chars)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setChars($chars);\n }\n\n /**\n * @static\n */\n public static function setFont($font)\n {\n /** @var \\Laravolt\\Avatar\\Avatar $instance */\n return $instance->setFont($font);\n }\n\n }\n }\n\nnamespace Spatie\\Fractal\\Facades {\n /**\n * @see \\Spatie\\Fractal\\Fractal\n */\n class Fractal extends \\Spatie\\Fractalistic\\Fractal {\n /**\n * @param null|mixed $data\n * @param null|string|callable|\\League\\Fractal\\TransformerAbstract $transformer\n * @param null|\\League\\Fractal\\Serializer\\SerializerAbstract $serializer\n * @return static\n * @static\n */\n public static function create($data = null, $transformer = null, $serializer = null)\n {\n return \\Spatie\\Fractal\\Fractal::create($data, $transformer, $serializer);\n }\n\n /**\n * @static\n */\n public static function respond($statusCode = 200, $headers = [], $options = 0)\n {\n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->respond($statusCode, $headers, $options);\n }\n\n /**\n * Set the collection data that must be transformed.\n *\n * @param mixed $data\n * @param null|string|callable|\\League\\Fractal\\TransformerAbstract $transformer\n * @param null|string $resourceName\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function collection($data, $transformer = null, $resourceName = null)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->collection($data, $transformer, $resourceName);\n }\n\n /**\n * Set the item data that must be transformed.\n *\n * @param mixed $data\n * @param null|string|callable|\\League\\Fractal\\TransformerAbstract $transformer\n * @param null|string $resourceName\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function item($data, $transformer = null, $resourceName = null)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->item($data, $transformer, $resourceName);\n }\n\n /**\n * Set the primitive data that must be transformed.\n *\n * @param mixed $data\n * @param null|string|callable|\\League\\Fractal\\TransformerAbstract $transformer\n * @param null|string $resourceName\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function primitive($data, $transformer = null, $resourceName = null)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->primitive($data, $transformer, $resourceName);\n }\n\n /**\n * Set the data that must be transformed.\n *\n * @param string $dataType\n * @param mixed $data\n * @param null|string|callable|\\League\\Fractal\\TransformerAbstract $transformer\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function data($dataType, $data, $transformer = null)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->data($dataType, $data, $transformer);\n }\n\n /**\n * Set the class or function that will perform the transform.\n *\n * @param string|callable|\\League\\Fractal\\TransformerAbstract|null $transformer\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function transformWith($transformer)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->transformWith($transformer);\n }\n\n /**\n * Set the serializer to be used.\n *\n * @param string|\\League\\Fractal\\Serializer\\SerializerAbstract $serializer\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function serializeWith($serializer)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->serializeWith($serializer);\n }\n\n /**\n * Set a Fractal paginator for the data.\n *\n * @param \\League\\Fractal\\Pagination\\PaginatorInterface $paginator\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function paginateWith($paginator)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->paginateWith($paginator);\n }\n\n /**\n * Set a Fractal cursor for the data.\n *\n * @param \\League\\Fractal\\Pagination\\CursorInterface $cursor\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function withCursor($cursor)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->withCursor($cursor);\n }\n\n /**\n * Specify the includes.\n *\n * @param array|string $includes Array or string of resources to include.\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function parseIncludes($includes)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->parseIncludes($includes);\n }\n\n /**\n * Specify the excludes.\n *\n * @param array|string $excludes Array or string of resources to exclude.\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function parseExcludes($excludes)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->parseExcludes($excludes);\n }\n\n /**\n * Specify the fieldsets to include in the response.\n *\n * @param array $fieldsets array with key = resourceName and value = fields to include\n * (array or comma separated string with field names)\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function parseFieldsets($fieldsets)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->parseFieldsets($fieldsets);\n }\n\n /**\n * Set the meta data.\n *\n * @param $array,...\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function addMeta()\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->addMeta();\n }\n\n /**\n * Set the resource name, to replace 'data' as the root of the collection or item.\n *\n * @param string $resourceName\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function withResourceName($resourceName)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->withResourceName($resourceName);\n }\n\n /**\n * Upper limit to how many levels of included data are allowed.\n *\n * @param int $recursionLimit\n * @return \\Spatie\\Fractal\\Fractal\n * @static\n */\n public static function limitRecursion($recursionLimit)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->limitRecursion($recursionLimit);\n }\n\n /**\n * Perform the transformation to json.\n *\n * @param int $options\n * @return string\n * @static\n */\n public static function toJson($options = 0)\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->toJson($options);\n }\n\n /**\n * Perform the transformation to array.\n *\n * @return array|null\n * @static\n */\n public static function toArray()\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->toArray();\n }\n\n /**\n * Create fractal data.\n *\n * @return \\League\\Fractal\\Scope\n * @throws \\Spatie\\Fractalistic\\Exceptions\\InvalidTransformation\n * @throws \\Spatie\\Fractalistic\\Exceptions\\NoTransformerSpecified\n * @static\n */\n public static function createData()\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->createData();\n }\n\n /**\n * Get the resource class.\n *\n * @return string\n * @throws \\Spatie\\Fractalistic\\Exceptions\\InvalidTransformation\n * @static\n */\n public static function getResourceClass()\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->getResourceClass();\n }\n\n /**\n * Get the resource.\n *\n * @return \\League\\Fractal\\Resource\\ResourceInterface\n * @throws \\Spatie\\Fractalistic\\Exceptions\\InvalidTransformation\n * @static\n */\n public static function getResource()\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->getResource();\n }\n\n /**\n * Return the name of the resource.\n *\n * @return string|null\n * @static\n */\n public static function getResourceName()\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->getResourceName();\n }\n\n /**\n * Convert the object into something JSON serializable.\n *\n * @return array|null\n * @static\n */\n public static function jsonSerialize()\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->jsonSerialize();\n }\n\n /**\n * Get the transformer.\n *\n * @return string|callable|\\League\\Fractal\\TransformerAbstract|null\n * @static\n */\n public static function getTransformer()\n {\n //Method inherited from \\Spatie\\Fractalistic\\Fractal \n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->getTransformer();\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Spatie\\Fractal\\Fractal::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Spatie\\Fractal\\Fractal::mixin($mixin, $replace);\n }\n\n /**\n * Checks if macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n return \\Spatie\\Fractal\\Fractal::hasMacro($name);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Spatie\\Fractal\\Fractal::flushMacros();\n }\n\n /**\n * Dynamically handle calls to the class.\n *\n * @param string $method\n * @param array $parameters\n * @return mixed\n * @throws \\BadMethodCallException\n * @static\n */\n public static function macroCall($method, $parameters)\n {\n /** @var \\Spatie\\Fractal\\Fractal $instance */\n return $instance->macroCall($method, $parameters);\n }\n\n }\n }\n\nnamespace Laratrust {\n /**\n */\n class LaratrustFacade {\n /**\n * Checks if the current user has a role by its name.\n *\n * @static\n */\n public static function hasRole($role, $team = null, $requireAll = false)\n {\n /** @var \\Laratrust\\Laratrust $instance */\n return $instance->hasRole($role, $team, $requireAll);\n }\n\n /**\n * Check if the current user has a permission by its name.\n *\n * @static\n */\n public static function hasPermission($permission, $team = null, $requireAll = false)\n {\n /** @var \\Laratrust\\Laratrust $instance */\n return $instance->hasPermission($permission, $team, $requireAll);\n }\n\n /**\n * Check if the current user does not have a permission by its name.\n *\n * @static\n */\n public static function doesntHavePermission($permission, $team = null, $requireAll = false)\n {\n /** @var \\Laratrust\\Laratrust $instance */\n return $instance->doesntHavePermission($permission, $team, $requireAll);\n }\n\n /**\n * Check if the current user has a permission by its name.\n * \n * Alias to hasPermission.\n *\n * @static\n */\n public static function isAbleTo($permission, $team = null, $requireAll = false)\n {\n /** @var \\Laratrust\\Laratrust $instance */\n return $instance->isAbleTo($permission, $team, $requireAll);\n }\n\n /**\n * Check if the current user does not have a permission by its name.\n * \n * Alias to doesntHavePermission.\n *\n * @static\n */\n public static function isNotAbleTo($permission, $team = null, $requireAll = false)\n {\n /** @var \\Laratrust\\Laratrust $instance */\n return $instance->isNotAbleTo($permission, $team, $requireAll);\n }\n\n /**\n * Check if the current user has a role or permission by its name.\n *\n * @param array|string $roles The role(s) needed.\n * @param array|string $permissions The permission(s) needed.\n * @param array $options The Options.\n * @return bool\n * @static\n */\n public static function ability($roles, $permissions, $team = null, $options = [])\n {\n /** @var \\Laratrust\\Laratrust $instance */\n return $instance->ability($roles, $permissions, $team, $options);\n }\n\n }\n }\n\nnamespace Sentry\\Laravel {\n /**\n * @see \\Sentry\\State\\HubInterface\n */\n class Facade {\n /**\n * Gets the client bound to the top of the stack.\n *\n * @static\n */\n public static function getClient()\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->getClient();\n }\n\n /**\n * Gets the ID of the last captured event.\n *\n * @static\n */\n public static function getLastEventId()\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->getLastEventId();\n }\n\n /**\n * Creates a new scope to store context information that will be layered on\n * top of the current one. It is isolated, i.e. all breadcrumbs and context\n * information added to this scope will be removed once the scope ends. Be\n * sure to always remove this scope with {@see Hub::popScope} when the\n * operation finishes or throws.\n *\n * @static\n */\n public static function pushScope()\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->pushScope();\n }\n\n /**\n * Removes a previously pushed scope from the stack. This restores the state\n * before the scope was pushed. All breadcrumbs and context information added\n * since the last call to {@see Hub::pushScope} are discarded.\n *\n * @static\n */\n public static function popScope()\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->popScope();\n }\n\n /**\n * Creates a new scope with and executes the given operation within. The scope\n * is automatically removed once the operation finishes or throws.\n *\n * @param callable $callback The callback to be executed\n * @return mixed|void The callback's return value, upon successful execution\n * @psalm-template T\n * @psalm-param callable(Scope): T $callback\n * @psalm-return T\n * @static\n */\n public static function withScope($callback)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->withScope($callback);\n }\n\n /**\n * Calls the given callback passing to it the current scope so that any\n * operation can be run within its context.\n *\n * @static\n */\n public static function configureScope($callback)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->configureScope($callback);\n }\n\n /**\n * Binds the given client to the current scope.\n *\n * @static\n */\n public static function bindClient($client)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->bindClient($client);\n }\n\n /**\n * Captures a message event and sends it to Sentry.\n *\n * @static\n */\n public static function captureMessage($message, $level = null, $hint = null)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->captureMessage($message, $level, $hint);\n }\n\n /**\n * Captures an exception event and sends it to Sentry.\n *\n * @static\n */\n public static function captureException($exception, $hint = null)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->captureException($exception, $hint);\n }\n\n /**\n * Captures a new event using the provided data.\n *\n * @static\n */\n public static function captureEvent($event, $hint = null)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->captureEvent($event, $hint);\n }\n\n /**\n * Captures an event that logs the last occurred error.\n *\n * @static\n */\n public static function captureLastError($hint = null)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->captureLastError($hint);\n }\n\n /**\n * Captures a check-in.\n *\n * @param int|float|null $duration\n * @param int|float|null $duration\n * @static\n */\n public static function captureCheckIn($slug, $status, $duration = null, $monitorConfig = null, $checkInId = null)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->captureCheckIn($slug, $status, $duration, $monitorConfig, $checkInId);\n }\n\n /**\n * Records a new breadcrumb which will be attached to future events. They\n * will be added to subsequent events to provide more context on user's\n * actions prior to an error or crash.\n *\n * @static\n */\n public static function addBreadcrumb($breadcrumb)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->addBreadcrumb($breadcrumb);\n }\n\n /**\n * Gets the integration whose FQCN matches the given one if it's available on the current client.\n *\n * @param string $className The FQCN of the integration\n * @psalm-template T of IntegrationInterface\n * @psalm-param class-string<T> $className\n * @psalm-return T|null\n * @static\n */\n public static function getIntegration($className)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->getIntegration($className);\n }\n\n /**\n * Starts a new `Transaction` and returns it. This is the entry point to manual\n * tracing instrumentation.\n * \n * A tree structure can be built by adding child spans to the transaction, and\n * child spans to other spans. To start a new child span within the transaction\n * or any span, call the respective `startChild()` method.\n * \n * Every child span must be finished before the transaction is finished,\n * otherwise the unfinished spans are discarded.\n * \n * The transaction must be finished with a call to its `finish()` method, at\n * which point the transaction with all its finished child spans will be sent to\n * Sentry.\n *\n * @param array<string, mixed> $customSamplingContext Additional context that will be passed to the {@see SamplingContext}\n * @param array<string, mixed> $customSamplingContext Additional context that will be passed to the {@see SamplingContext}\n * @static\n */\n public static function startTransaction($context, $customSamplingContext = [])\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->startTransaction($context, $customSamplingContext);\n }\n\n /**\n * Returns the transaction that is on the Hub.\n *\n * @static\n */\n public static function getTransaction()\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->getTransaction();\n }\n\n /**\n * Sets the span on the Hub.\n *\n * @static\n */\n public static function setSpan($span)\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->setSpan($span);\n }\n\n /**\n * Returns the span that is on the Hub.\n *\n * @static\n */\n public static function getSpan()\n {\n /** @var \\Sentry\\State\\Hub $instance */\n return $instance->getSpan();\n }\n\n }\n }\n\nnamespace League\\StatsD\\Laravel5\\Facade {\n /**\n * Facade for Statsd Package\n *\n * @author Aran Wilkinson <aran@aranw.net>\n * @package League\\StatsD\\Laravel5\\Facade\n */\n class StatsdFacade {\n /**\n * Singleton Reference\n *\n * @static\n */\n public static function instance($name = 'default')\n {\n return \\League\\StatsD\\Client::instance($name);\n }\n\n /**\n * Initialize Connection Details\n *\n * @param array $options Configuration options\n * @return \\League\\StatsD\\Client This instance\n * @throws ConfigurationException If port is invalid\n * @static\n */\n public static function configure($options = [])\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->configure($options);\n }\n\n /**\n * @static\n */\n public static function getHost()\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->getHost();\n }\n\n /**\n * @static\n */\n public static function getPort()\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->getPort();\n }\n\n /**\n * @static\n */\n public static function getNamespace()\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->getNamespace();\n }\n\n /**\n * Get Last message sent to server\n *\n * @static\n */\n public static function getLastMessage()\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->getLastMessage();\n }\n\n /**\n * Increment a metric\n *\n * @param string|array $metrics Metric(s) to increment\n * @param int $delta Value to decrement the metric by\n * @param float $sampleRate Sample rate of metric\n * @param array $tags A list of metric tags values\n * @throws ConnectionException\n * @static\n */\n public static function increment($metrics, $delta = 1, $sampleRate = 1.0, $tags = [])\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->increment($metrics, $delta, $sampleRate, $tags);\n }\n\n /**\n * Decrement a metric\n *\n * @param string|array $metrics Metric(s) to decrement\n * @param int $delta Value to increment the metric by\n * @param float $sampleRate Sample rate of metric\n * @param array $tags A list of metric tags values\n * @throws ConnectionException\n * @static\n */\n public static function decrement($metrics, $delta = 1, $sampleRate = 1.0, $tags = [])\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->decrement($metrics, $delta, $sampleRate, $tags);\n }\n\n /**\n * Start timing the given metric\n *\n * @param string $metric Metric to time\n * @static\n */\n public static function startTiming($metric)\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->startTiming($metric);\n }\n\n /**\n * End timing the given metric and record\n *\n * @param string $metric Metric to time\n * @param array $tags A list of metric tags values\n * @throws ConnectionException\n * @static\n */\n public static function endTiming($metric, $tags = [])\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->endTiming($metric, $tags);\n }\n\n /**\n * Timing\n *\n * @param string $metric Metric to track\n * @param float $time Time in milliseconds\n * @param array $tags A list of metric tags values\n * @throws ConnectionException\n * @static\n */\n public static function timing($metric, $time, $tags = [])\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->timing($metric, $time, $tags);\n }\n\n /**\n * Send multiple timing metrics at once\n *\n * @param array $metrics key value map of metric name -> timing value\n * @throws ConnectionException\n * @static\n */\n public static function timings($metrics)\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->timings($metrics);\n }\n\n /**\n * Time a function\n *\n * @param string $metric Metric to time\n * @param callable $func Function to record\n * @param array $tags A list of metric tags values\n * @throws ConnectionException\n * @static\n */\n public static function time($metric, $func, $tags = [])\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->time($metric, $func, $tags);\n }\n\n /**\n * Gauges\n *\n * @param string $metric Metric to gauge\n * @param int|float $value Set the value of the gauge\n * @param array $tags A list of metric tags values\n * @throws ConnectionException\n * @static\n */\n public static function gauge($metric, $value, $tags = [])\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->gauge($metric, $value, $tags);\n }\n\n /**\n * Sets - count the number of unique values passed to a key\n *\n * @param string $metric\n * @param mixed $value\n * @param array $tags A list of metric tags values\n * @throws ConnectionException\n * @static\n */\n public static function set($metric, $value, $tags = [])\n {\n /** @var \\League\\StatsD\\Client $instance */\n return $instance->set($metric, $value, $tags);\n }\n\n }\n }\n\nnamespace Barryvdh\\Debugbar\\Facades {\n /**\n * @method static void alert(mixed $message)\n * @method static void critical(mixed $message)\n * @method static void debug(mixed $message)\n * @method static void emergency(mixed $message)\n * @method static void error(mixed $message)\n * @method static void info(mixed $message)\n * @method static void log(mixed $message)\n * @method static void notice(mixed $message)\n * @method static void warning(mixed $message)\n * @see \\Barryvdh\\Debugbar\\LaravelDebugbar\n */\n class Debugbar extends \\DebugBar\\DebugBar {\n /**\n * Returns the HTTP driver\n * \n * If no http driver where defined, a PhpHttpDriver is automatically created\n *\n * @return \\DebugBar\\HttpDriverInterface\n * @static\n */\n public static function getHttpDriver()\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getHttpDriver();\n }\n\n /**\n * Enable the Debugbar and boot, if not already booted.\n *\n * @static\n */\n public static function enable()\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->enable();\n }\n\n /**\n * Boot the debugbar (add collectors, renderer and listener)\n *\n * @static\n */\n public static function boot()\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->boot();\n }\n\n /**\n * @static\n */\n public static function shouldCollect($name, $default = false)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->shouldCollect($name, $default);\n }\n\n /**\n * Adds a data collector\n *\n * @param \\DebugBar\\DataCollector\\DataCollectorInterface $collector\n * @throws DebugBarException\n * @return \\Barryvdh\\Debugbar\\LaravelDebugbar\n * @static\n */\n public static function addCollector($collector)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->addCollector($collector);\n }\n\n /**\n * Handle silenced errors\n *\n * @param $level\n * @param $message\n * @param string $file\n * @param int $line\n * @param array $context\n * @throws \\ErrorException\n * @static\n */\n public static function handleError($level, $message, $file = '', $line = 0, $context = [])\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->handleError($level, $message, $file, $line, $context);\n }\n\n /**\n * Starts a measure\n *\n * @param string $name Internal name, used to stop the measure\n * @param string $label Public name\n * @param string|null $collector\n * @param string|null $group\n * @static\n */\n public static function startMeasure($name, $label = null, $collector = null, $group = null)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->startMeasure($name, $label, $collector, $group);\n }\n\n /**\n * Stops a measure\n *\n * @param string $name\n * @static\n */\n public static function stopMeasure($name)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->stopMeasure($name);\n }\n\n /**\n * Adds an exception to be profiled in the debug bar\n *\n * @param \\Exception $e\n * @deprecated in favor of addThrowable\n * @static\n */\n public static function addException($e)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->addException($e);\n }\n\n /**\n * Adds an exception to be profiled in the debug bar\n *\n * @param \\Throwable $e\n * @static\n */\n public static function addThrowable($e)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->addThrowable($e);\n }\n\n /**\n * Returns a JavascriptRenderer for this instance\n *\n * @param string $baseUrl\n * @param string $basePath\n * @return \\Barryvdh\\Debugbar\\JavascriptRenderer\n * @static\n */\n public static function getJavascriptRenderer($baseUrl = null, $basePath = null)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getJavascriptRenderer($baseUrl, $basePath);\n }\n\n /**\n * Modify the response and inject the debugbar (or data in headers)\n *\n * @param \\Symfony\\Component\\HttpFoundation\\Request $request\n * @param \\Symfony\\Component\\HttpFoundation\\Response $response\n * @return \\Symfony\\Component\\HttpFoundation\\Response\n * @static\n */\n public static function modifyResponse($request, $response)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->modifyResponse($request, $response);\n }\n\n /**\n * Check if the Debugbar is enabled\n *\n * @return boolean\n * @static\n */\n public static function isEnabled()\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->isEnabled();\n }\n\n /**\n * Collects the data from the collectors\n *\n * @return array\n * @static\n */\n public static function collect()\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->collect();\n }\n\n /**\n * Injects the web debug toolbar into the given Response.\n *\n * @param \\Symfony\\Component\\HttpFoundation\\Response $response A Response instance\n * Based on https://github.com/symfony/WebProfilerBundle/blob/master/EventListener/WebDebugToolbarListener.php\n * @static\n */\n public static function injectDebugbar($response)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->injectDebugbar($response);\n }\n\n /**\n * Checks if there is stacked data in the session\n *\n * @return boolean\n * @static\n */\n public static function hasStackedData()\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->hasStackedData();\n }\n\n /**\n * Returns the data stacked in the session\n *\n * @param boolean $delete Whether to delete the data in the session\n * @return array\n * @static\n */\n public static function getStackedData($delete = true)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getStackedData($delete);\n }\n\n /**\n * Disable the Debugbar\n *\n * @static\n */\n public static function disable()\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->disable();\n }\n\n /**\n * Adds a measure\n *\n * @param string $label\n * @param float $start\n * @param float $end\n * @param array|null $params\n * @param string|null $collector\n * @param string|null $group\n * @static\n */\n public static function addMeasure($label, $start, $end, $params = [], $collector = null, $group = null)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->addMeasure($label, $start, $end, $params, $collector, $group);\n }\n\n /**\n * Utility function to measure the execution of a Closure\n *\n * @param string $label\n * @param \\Closure $closure\n * @param string|null $collector\n * @param string|null $group\n * @return mixed\n * @static\n */\n public static function measure($label, $closure, $collector = null, $group = null)\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->measure($label, $closure, $collector, $group);\n }\n\n /**\n * Collect data in a CLI request\n *\n * @return array\n * @static\n */\n public static function collectConsole()\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->collectConsole();\n }\n\n /**\n * Adds a message to the MessagesCollector\n * \n * A message can be anything from an object to a string\n *\n * @param mixed $message\n * @param string $label\n * @static\n */\n public static function addMessage($message, $label = 'info')\n {\n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->addMessage($message, $label);\n }\n\n /**\n * Checks if a data collector has been added\n *\n * @param string $name\n * @return boolean\n * @static\n */\n public static function hasCollector($name)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->hasCollector($name);\n }\n\n /**\n * Returns a data collector\n *\n * @param string $name\n * @return \\DebugBar\\DataCollector\\DataCollectorInterface\n * @throws DebugBarException\n * @static\n */\n public static function getCollector($name)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getCollector($name);\n }\n\n /**\n * Returns an array of all data collectors\n *\n * @return array[DataCollectorInterface]\n * @static\n */\n public static function getCollectors()\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getCollectors();\n }\n\n /**\n * Sets the request id generator\n *\n * @param \\DebugBar\\RequestIdGeneratorInterface $generator\n * @return \\Barryvdh\\Debugbar\\LaravelDebugbar\n * @static\n */\n public static function setRequestIdGenerator($generator)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->setRequestIdGenerator($generator);\n }\n\n /**\n * @return \\DebugBar\\RequestIdGeneratorInterface\n * @static\n */\n public static function getRequestIdGenerator()\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getRequestIdGenerator();\n }\n\n /**\n * Returns the id of the current request\n *\n * @return string\n * @static\n */\n public static function getCurrentRequestId()\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getCurrentRequestId();\n }\n\n /**\n * Sets the storage backend to use to store the collected data\n *\n * @param \\DebugBar\\StorageInterface $storage\n * @return \\Barryvdh\\Debugbar\\LaravelDebugbar\n * @static\n */\n public static function setStorage($storage = null)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->setStorage($storage);\n }\n\n /**\n * @return \\DebugBar\\StorageInterface\n * @static\n */\n public static function getStorage()\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getStorage();\n }\n\n /**\n * Checks if the data will be persisted\n *\n * @return boolean\n * @static\n */\n public static function isDataPersisted()\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->isDataPersisted();\n }\n\n /**\n * Sets the HTTP driver\n *\n * @param \\DebugBar\\HttpDriverInterface $driver\n * @return \\Barryvdh\\Debugbar\\LaravelDebugbar\n * @static\n */\n public static function setHttpDriver($driver)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->setHttpDriver($driver);\n }\n\n /**\n * Returns collected data\n * \n * Will collect the data if none have been collected yet\n *\n * @return array\n * @static\n */\n public static function getData()\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getData();\n }\n\n /**\n * Returns an array of HTTP headers containing the data\n *\n * @param string $headerName\n * @param integer $maxHeaderLength\n * @return array\n * @static\n */\n public static function getDataAsHeaders($headerName = 'phpdebugbar', $maxHeaderLength = 4096, $maxTotalHeaderLength = 250000)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getDataAsHeaders($headerName, $maxHeaderLength, $maxTotalHeaderLength);\n }\n\n /**\n * Sends the data through the HTTP headers\n *\n * @param bool $useOpenHandler\n * @param string $headerName\n * @param integer $maxHeaderLength\n * @return \\Barryvdh\\Debugbar\\LaravelDebugbar\n * @static\n */\n public static function sendDataInHeaders($useOpenHandler = null, $headerName = 'phpdebugbar', $maxHeaderLength = 4096)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->sendDataInHeaders($useOpenHandler, $headerName, $maxHeaderLength);\n }\n\n /**\n * Stacks the data in the session for later rendering\n *\n * @static\n */\n public static function stackData()\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->stackData();\n }\n\n /**\n * Sets the key to use in the $_SESSION array\n *\n * @param string $ns\n * @return \\Barryvdh\\Debugbar\\LaravelDebugbar\n * @static\n */\n public static function setStackDataSessionNamespace($ns)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->setStackDataSessionNamespace($ns);\n }\n\n /**\n * Returns the key used in the $_SESSION array\n *\n * @return string\n * @static\n */\n public static function getStackDataSessionNamespace()\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->getStackDataSessionNamespace();\n }\n\n /**\n * Sets whether to only use the session to store stacked data even\n * if a storage is enabled\n *\n * @param boolean $enabled\n * @return \\Barryvdh\\Debugbar\\LaravelDebugbar\n * @static\n */\n public static function setStackAlwaysUseSessionStorage($enabled = true)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->setStackAlwaysUseSessionStorage($enabled);\n }\n\n /**\n * Checks if the session is always used to store stacked data\n * even if a storage is enabled\n *\n * @return boolean\n * @static\n */\n public static function isStackAlwaysUseSessionStorage()\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->isStackAlwaysUseSessionStorage();\n }\n\n /**\n * @static\n */\n public static function offsetSet($key, $value)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->offsetSet($key, $value);\n }\n\n /**\n * @static\n */\n public static function offsetGet($key)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->offsetGet($key);\n }\n\n /**\n * @static\n */\n public static function offsetExists($key)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->offsetExists($key);\n }\n\n /**\n * @static\n */\n public static function offsetUnset($key)\n {\n //Method inherited from \\DebugBar\\DebugBar \n /** @var \\Barryvdh\\Debugbar\\LaravelDebugbar $instance */\n return $instance->offsetUnset($key);\n }\n\n }\n }\n\nnamespace Barryvdh\\DomPDF\\Facade {\n /**\n * @method static BasePDF setBaseHost(string $baseHost)\n * @method static BasePDF setBasePath(string $basePath)\n * @method static BasePDF setCanvas(\\Dompdf\\Canvas $canvas)\n * @method static BasePDF setCallbacks(array<string, mixed> $callbacks)\n * @method static BasePDF setCss(\\Dompdf\\Css\\Stylesheet $css)\n * @method static BasePDF setDefaultView(string $defaultView, array<string, mixed> $options)\n * @method static BasePDF setDom(\\DOMDocument $dom)\n * @method static BasePDF setFontMetrics(\\Dompdf\\FontMetrics $fontMetrics)\n * @method static BasePDF setHttpContext(resource|array<string, mixed> $httpContext)\n * @method static BasePDF setPaper(string|float[] $paper, string $orientation = 'portrait')\n * @method static BasePDF setProtocol(string $protocol)\n * @method static BasePDF setTree(\\Dompdf\\Frame\\FrameTree $tree)\n */\n class Pdf {\n /**\n * Get the DomPDF instance\n *\n * @static\n */\n public static function getDomPDF()\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->getDomPDF();\n }\n\n /**\n * Show or hide warnings\n *\n * @static\n */\n public static function setWarnings($warnings)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->setWarnings($warnings);\n }\n\n /**\n * Load a HTML string\n *\n * @param string|null $encoding Not used yet\n * @static\n */\n public static function loadHTML($string, $encoding = null)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->loadHTML($string, $encoding);\n }\n\n /**\n * Load a HTML file\n *\n * @static\n */\n public static function loadFile($file)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->loadFile($file);\n }\n\n /**\n * Add metadata info\n *\n * @param array<string, string> $info\n * @static\n */\n public static function addInfo($info)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->addInfo($info);\n }\n\n /**\n * Load a View and convert to HTML\n *\n * @param array<string, mixed> $data\n * @param array<string, mixed> $mergeData\n * @param string|null $encoding Not used yet\n * @static\n */\n public static function loadView($view, $data = [], $mergeData = [], $encoding = null)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->loadView($view, $data, $mergeData, $encoding);\n }\n\n /**\n * Set/Change an option (or array of options) in Dompdf\n *\n * @param array<string, mixed>|string $attribute\n * @param null|mixed $value\n * @static\n */\n public static function setOption($attribute, $value = null)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->setOption($attribute, $value);\n }\n\n /**\n * Replace all the Options from DomPDF\n *\n * @param array<string, mixed> $options\n * @static\n */\n public static function setOptions($options, $mergeWithDefaults = false)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->setOptions($options, $mergeWithDefaults);\n }\n\n /**\n * Output the PDF as a string.\n * \n * The options parameter controls the output. Accepted options are:\n * \n * 'compress' = > 1 or 0 - apply content stream compression, this is\n * on (1) by default\n *\n * @param array<string, int> $options\n * @return string The rendered PDF as string\n * @static\n */\n public static function output($options = [])\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->output($options);\n }\n\n /**\n * Save the PDF to a file\n *\n * @static\n */\n public static function save($filename, $disk = null)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->save($filename, $disk);\n }\n\n /**\n * Make the PDF downloadable by the user\n *\n * @static\n */\n public static function download($filename = 'document.pdf')\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->download($filename);\n }\n\n /**\n * Return a response with the PDF to show in the browser\n *\n * @static\n */\n public static function stream($filename = 'document.pdf')\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->stream($filename);\n }\n\n /**\n * Render the PDF\n *\n * @static\n */\n public static function render()\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->render();\n }\n\n /**\n * @param array<string> $pc\n * @static\n */\n public static function setEncryption($password, $ownerpassword = '', $pc = [])\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->setEncryption($password, $ownerpassword, $pc);\n }\n\n }\n /**\n * @method static BasePDF setBaseHost(string $baseHost)\n * @method static BasePDF setBasePath(string $basePath)\n * @method static BasePDF setCanvas(\\Dompdf\\Canvas $canvas)\n * @method static BasePDF setCallbacks(array<string, mixed> $callbacks)\n * @method static BasePDF setCss(\\Dompdf\\Css\\Stylesheet $css)\n * @method static BasePDF setDefaultView(string $defaultView, array<string, mixed> $options)\n * @method static BasePDF setDom(\\DOMDocument $dom)\n * @method static BasePDF setFontMetrics(\\Dompdf\\FontMetrics $fontMetrics)\n * @method static BasePDF setHttpContext(resource|array<string, mixed> $httpContext)\n * @method static BasePDF setPaper(string|float[] $paper, string $orientation = 'portrait')\n * @method static BasePDF setProtocol(string $protocol)\n * @method static BasePDF setTree(\\Dompdf\\Frame\\FrameTree $tree)\n */\n class Pdf {\n /**\n * Get the DomPDF instance\n *\n * @static\n */\n public static function getDomPDF()\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->getDomPDF();\n }\n\n /**\n * Show or hide warnings\n *\n * @static\n */\n public static function setWarnings($warnings)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->setWarnings($warnings);\n }\n\n /**\n * Load a HTML string\n *\n * @param string|null $encoding Not used yet\n * @static\n */\n public static function loadHTML($string, $encoding = null)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->loadHTML($string, $encoding);\n }\n\n /**\n * Load a HTML file\n *\n * @static\n */\n public static function loadFile($file)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->loadFile($file);\n }\n\n /**\n * Add metadata info\n *\n * @param array<string, string> $info\n * @static\n */\n public static function addInfo($info)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->addInfo($info);\n }\n\n /**\n * Load a View and convert to HTML\n *\n * @param array<string, mixed> $data\n * @param array<string, mixed> $mergeData\n * @param string|null $encoding Not used yet\n * @static\n */\n public static function loadView($view, $data = [], $mergeData = [], $encoding = null)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->loadView($view, $data, $mergeData, $encoding);\n }\n\n /**\n * Set/Change an option (or array of options) in Dompdf\n *\n * @param array<string, mixed>|string $attribute\n * @param null|mixed $value\n * @static\n */\n public static function setOption($attribute, $value = null)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->setOption($attribute, $value);\n }\n\n /**\n * Replace all the Options from DomPDF\n *\n * @param array<string, mixed> $options\n * @static\n */\n public static function setOptions($options, $mergeWithDefaults = false)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->setOptions($options, $mergeWithDefaults);\n }\n\n /**\n * Output the PDF as a string.\n * \n * The options parameter controls the output. Accepted options are:\n * \n * 'compress' = > 1 or 0 - apply content stream compression, this is\n * on (1) by default\n *\n * @param array<string, int> $options\n * @return string The rendered PDF as string\n * @static\n */\n public static function output($options = [])\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->output($options);\n }\n\n /**\n * Save the PDF to a file\n *\n * @static\n */\n public static function save($filename, $disk = null)\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->save($filename, $disk);\n }\n\n /**\n * Make the PDF downloadable by the user\n *\n * @static\n */\n public static function download($filename = 'document.pdf')\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->download($filename);\n }\n\n /**\n * Return a response with the PDF to show in the browser\n *\n * @static\n */\n public static function stream($filename = 'document.pdf')\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->stream($filename);\n }\n\n /**\n * Render the PDF\n *\n * @static\n */\n public static function render()\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->render();\n }\n\n /**\n * @param array<string> $pc\n * @static\n */\n public static function setEncryption($password, $ownerpassword = '', $pc = [])\n {\n /** @var \\Barryvdh\\DomPDF\\PDF $instance */\n return $instance->setEncryption($password, $ownerpassword, $pc);\n }\n\n }\n }\n\nnamespace ChaseConey\\LaravelDatadogHelper {\n /**\n * @see LaravelDatadogHelper\n * @see \\Datadog\\DogStatsd\n */\n class Datadog extends \\DataDog\\DogStatsd {\n /**\n * @static\n */\n public static function send($data, $sampleRate = 1.0, $tags = null, $cardinality = null)\n {\n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n return $instance->send($data, $sampleRate, $tags, $cardinality);\n }\n\n /**\n * Log timing information\n *\n * @param string $stat The metric to in log timing info for.\n * @param float $time The elapsed time (ms) to log\n * @param float $sampleRate the rate (0-1) for sampling.\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @return void\n * @static\n */\n public static function timing($stat, $time, $sampleRate = 1.0, $tags = null, $cardinality = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->timing($stat, $time, $sampleRate, $tags, $cardinality);\n }\n\n /**\n * A convenient alias for the timing function when used with micro-timing\n *\n * @param string $stat The metric name\n * @param float $time The elapsed time to log, IN SECONDS\n * @param float $sampleRate the rate (0-1) for sampling.\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @return void\n * @static\n */\n public static function microtiming($stat, $time, $sampleRate = 1.0, $tags = null, $cardinality = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->microtiming($stat, $time, $sampleRate, $tags, $cardinality);\n }\n\n /**\n * Gauge\n *\n * @param string $stat The metric\n * @param float $value The value\n * @param float $sampleRate the rate (0-1) for sampling.\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @return void\n * @static\n */\n public static function gauge($stat, $value, $sampleRate = 1.0, $tags = null, $cardinality = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->gauge($stat, $value, $sampleRate, $tags, $cardinality);\n }\n\n /**\n * Histogram\n *\n * @param string $stat The metric\n * @param float $value The value\n * @param float $sampleRate the rate (0-1) for sampling.\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @return void\n * @static\n */\n public static function histogram($stat, $value, $sampleRate = 1.0, $tags = null, $cardinality = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->histogram($stat, $value, $sampleRate, $tags, $cardinality);\n }\n\n /**\n * Distribution\n *\n * @param string $stat The metric\n * @param float $value The value\n * @param float $sampleRate the rate (0-1) for sampling.\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @return void\n * @static\n */\n public static function distribution($stat, $value, $sampleRate = 1.0, $tags = null, $cardinality = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->distribution($stat, $value, $sampleRate, $tags, $cardinality);\n }\n\n /**\n * Set\n *\n * @param string $stat The metric\n * @param string|float $value The value\n * @param float $sampleRate the rate (0-1) for sampling.\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @return void\n * @static\n */\n public static function set($stat, $value, $sampleRate = 1.0, $tags = null, $cardinality = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->set($stat, $value, $sampleRate, $tags, $cardinality);\n }\n\n /**\n * Increments one or more stats counters\n *\n * @param string|array $stats The metric(s) to increment.\n * @param float $sampleRate the rate (0-1) for sampling.\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @param int $value the amount to increment by (default 1)\n * @return void\n * @static\n */\n public static function increment($stats, $sampleRate = 1.0, $tags = null, $value = 1, $cardinality = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->increment($stats, $sampleRate, $tags, $value, $cardinality);\n }\n\n /**\n * Decrements one or more stats counters.\n *\n * @param string|array $stats The metric(s) to decrement.\n * @param float $sampleRate the rate (0-1) for sampling.\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @param int $value the amount to decrement by (default -1)\n * @return void\n * @static\n */\n public static function decrement($stats, $sampleRate = 1.0, $tags = null, $value = -1, $cardinality = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->decrement($stats, $sampleRate, $tags, $value, $cardinality);\n }\n\n /**\n * Updates one or more stats counters by arbitrary amounts.\n *\n * @param string|array $stats The metric(s) to update. Should be either a string or array of metrics.\n * @param int $delta The amount to increment/decrement each metric by.\n * @param float $sampleRate the rate (0-1) for sampling.\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @return void\n * @static\n */\n public static function updateStats($stats, $delta = 1, $sampleRate = 1.0, $tags = null, $cardinality = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->updateStats($stats, $delta, $sampleRate, $tags, $cardinality);\n }\n\n /**\n * @deprecated service_check will be removed in future versions in favor of serviceCheck\n * \n * Send a custom service check status over UDP\n * @param string $name service check name\n * @param int $status service check status code (see OK, WARNING,...)\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @param string $hostname hostname to associate with this service check status\n * @param string $message message to associate with this service check status\n * @param int $timestamp timestamp for the service check status (defaults to now)\n * @return void\n * @static\n */\n public static function service_check($name, $status, $tags = null, $hostname = null, $message = null, $timestamp = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->service_check($name, $status, $tags, $hostname, $message, $timestamp);\n }\n\n /**\n * Send a custom service check status over UDP\n *\n * @param string $name service check name\n * @param int $status service check status code (see OK, WARNING,...)\n * @param array|string $tags Key Value array of Tag => Value, or single tag as string\n * @param string $hostname hostname to associate with this service check status\n * @param string $message message to associate with this service check status\n * @param int $timestamp timestamp for the service check status (defaults to now)\n * @return void\n * @static\n */\n public static function serviceCheck($name, $status, $tags = null, $hostname = null, $message = null, $timestamp = null)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n $instance->serviceCheck($name, $status, $tags, $hostname, $message, $timestamp);\n }\n\n /**\n * @static\n */\n public static function report($message)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n return $instance->report($message);\n }\n\n /**\n * @throws \\Exception|\\Throwable\n * @static\n */\n public static function flush($message)\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n return $instance->flush($message);\n }\n\n /**\n * Formats $vals array into event for submission to Datadog via UDP\n *\n * @param array $vals Optional values of the event. See\n * https://docs.datadoghq.com/api/?lang=bash#post-an-event for the valid keys\n * @return bool\n * @static\n */\n public static function event($title, $vals = [])\n {\n //Method inherited from \\DataDog\\DogStatsd \n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n return $instance->event($title, $vals);\n }\n\n /**\n * @static\n */\n public static function setMetricsPrefix($metricsPrefix)\n {\n /** @var \\ChaseConey\\LaravelDatadogHelper\\Datadog\\DogStatsd $instance */\n return $instance->setMetricsPrefix($metricsPrefix);\n }\n\n }\n }\n\nnamespace Spatie\\LaravelIgnition\\Facades {\n /**\n * @see \\Spatie\\FlareClient\\Flare\n */\n class Flare {\n /**\n * @static\n */\n public static function make($apiKey = null, $contextDetector = null)\n {\n return \\Spatie\\FlareClient\\Flare::make($apiKey, $contextDetector);\n }\n\n /**\n * @static\n */\n public static function setApiToken($apiToken)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->setApiToken($apiToken);\n }\n\n /**\n * @static\n */\n public static function apiTokenSet()\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->apiTokenSet();\n }\n\n /**\n * @static\n */\n public static function setBaseUrl($baseUrl)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->setBaseUrl($baseUrl);\n }\n\n /**\n * @static\n */\n public static function setStage($stage)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->setStage($stage);\n }\n\n /**\n * @static\n */\n public static function sendReportsImmediately()\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->sendReportsImmediately();\n }\n\n /**\n * @static\n */\n public static function determineVersionUsing($determineVersionCallable)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->determineVersionUsing($determineVersionCallable);\n }\n\n /**\n * @static\n */\n public static function reportErrorLevels($reportErrorLevels)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->reportErrorLevels($reportErrorLevels);\n }\n\n /**\n * @static\n */\n public static function filterExceptionsUsing($filterExceptionsCallable)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->filterExceptionsUsing($filterExceptionsCallable);\n }\n\n /**\n * @static\n */\n public static function filterReportsUsing($filterReportsCallable)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->filterReportsUsing($filterReportsCallable);\n }\n\n /**\n * @param array<class-string<ArgumentReducer>|ArgumentReducer>|\\Spatie\\Backtrace\\Arguments\\ArgumentReducers|null $argumentReducers\n * @static\n */\n public static function argumentReducers($argumentReducers)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->argumentReducers($argumentReducers);\n }\n\n /**\n * @static\n */\n public static function withStackFrameArguments($withStackFrameArguments = true, $forcePHPIniSetting = false)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->withStackFrameArguments($withStackFrameArguments, $forcePHPIniSetting);\n }\n\n /**\n * @param class-string $exceptionClass\n * @static\n */\n public static function overrideGrouping($exceptionClass, $type = 'exception_message_and_class')\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->overrideGrouping($exceptionClass, $type);\n }\n\n /**\n * @static\n */\n public static function version()\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->version();\n }\n\n /**\n * @return array<int, FlareMiddleware|class-string<FlareMiddleware>>\n * @static\n */\n public static function getMiddleware()\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->getMiddleware();\n }\n\n /**\n * @static\n */\n public static function setContextProviderDetector($contextDetector)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->setContextProviderDetector($contextDetector);\n }\n\n /**\n * @static\n */\n public static function setContainer($container)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->setContainer($container);\n }\n\n /**\n * @static\n */\n public static function registerFlareHandlers()\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->registerFlareHandlers();\n }\n\n /**\n * @static\n */\n public static function registerExceptionHandler()\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->registerExceptionHandler();\n }\n\n /**\n * @static\n */\n public static function registerErrorHandler($errorLevels = null)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->registerErrorHandler($errorLevels);\n }\n\n /**\n * @param \\Spatie\\FlareClient\\FlareMiddleware\\FlareMiddleware|array<FlareMiddleware>|class-string<FlareMiddleware>|callable $middleware\n * @return \\Spatie\\FlareClient\\Flare\n * @static\n */\n public static function registerMiddleware($middleware)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->registerMiddleware($middleware);\n }\n\n /**\n * @return array<int,FlareMiddleware|class-string<FlareMiddleware>>\n * @static\n */\n public static function getMiddlewares()\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->getMiddlewares();\n }\n\n /**\n * @param string $name\n * @param string $messageLevel\n * @param array<int, mixed> $metaData\n * @return \\Spatie\\FlareClient\\Flare\n * @static\n */\n public static function glow($name, $messageLevel = 'info', $metaData = [])\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->glow($name, $messageLevel, $metaData);\n }\n\n /**\n * @static\n */\n public static function handleException($throwable)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->handleException($throwable);\n }\n\n /**\n * @return mixed\n * @static\n */\n public static function handleError($code, $message, $file = '', $line = 0)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->handleError($code, $message, $file, $line);\n }\n\n /**\n * @static\n */\n public static function applicationPath($applicationPath)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->applicationPath($applicationPath);\n }\n\n /**\n * @static\n */\n public static function report($throwable, $callback = null, $report = null, $handled = null)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->report($throwable, $callback, $report, $handled);\n }\n\n /**\n * @static\n */\n public static function reportHandled($throwable)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->reportHandled($throwable);\n }\n\n /**\n * @static\n */\n public static function reportMessage($message, $logLevel, $callback = null)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->reportMessage($message, $logLevel, $callback);\n }\n\n /**\n * @static\n */\n public static function sendTestReport($throwable)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->sendTestReport($throwable);\n }\n\n /**\n * @static\n */\n public static function reset()\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->reset();\n }\n\n /**\n * @static\n */\n public static function anonymizeIp()\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->anonymizeIp();\n }\n\n /**\n * @param array<int, string> $fieldNames\n * @return \\Spatie\\FlareClient\\Flare\n * @static\n */\n public static function censorRequestBodyFields($fieldNames)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->censorRequestBodyFields($fieldNames);\n }\n\n /**\n * @static\n */\n public static function createReport($throwable)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->createReport($throwable);\n }\n\n /**\n * @static\n */\n public static function createReportFromMessage($message, $logLevel)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->createReportFromMessage($message, $logLevel);\n }\n\n /**\n * @static\n */\n public static function stage($stage)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->stage($stage);\n }\n\n /**\n * @static\n */\n public static function messageLevel($messageLevel)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->messageLevel($messageLevel);\n }\n\n /**\n * @param string $groupName\n * @param mixed $default\n * @return array<int, mixed>\n * @static\n */\n public static function getGroup($groupName = 'context', $default = [])\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->getGroup($groupName, $default);\n }\n\n /**\n * @static\n */\n public static function context($key, $value)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->context($key, $value);\n }\n\n /**\n * @param string $groupName\n * @param array<string, mixed> $properties\n * @return \\Spatie\\FlareClient\\Flare\n * @static\n */\n public static function group($groupName, $properties)\n {\n /** @var \\Spatie\\FlareClient\\Flare $instance */\n return $instance->group($groupName, $properties);\n }\n\n }\n }\n\nnamespace Vinkla\\Hashids\\Facades {\n /**\n * @method static string encode(mixed ...$numbers)\n * @method static array decode(string $hash)\n * @method static string encodeHex(string $str)\n * @method static string decodeHex(string $hash)\n */\n class Hashids extends \\GrahamCampbell\\Manager\\AbstractManager {\n /**\n * @static\n */\n public static function getFactory()\n {\n /** @var \\Vinkla\\Hashids\\HashidsManager $instance */\n return $instance->getFactory();\n }\n\n /**\n * Get a connection instance.\n *\n * @param string|null $name\n * @throws \\InvalidArgumentException\n * @return object\n * @static\n */\n public static function connection($name = null)\n {\n //Method inherited from \\GrahamCampbell\\Manager\\AbstractManager \n /** @var \\Vinkla\\Hashids\\HashidsManager $instance */\n return $instance->connection($name);\n }\n\n /**\n * Reconnect to the given connection.\n *\n * @param string|null $name\n * @throws \\InvalidArgumentException\n * @return object\n * @static\n */\n public static function reconnect($name = null)\n {\n //Method inherited from \\GrahamCampbell\\Manager\\AbstractManager \n /** @var \\Vinkla\\Hashids\\HashidsManager $instance */\n return $instance->reconnect($name);\n }\n\n /**\n * Disconnect from the given connection.\n *\n * @param string|null $name\n * @return void\n * @static\n */\n public static function disconnect($name = null)\n {\n //Method inherited from \\GrahamCampbell\\Manager\\AbstractManager \n /** @var \\Vinkla\\Hashids\\HashidsManager $instance */\n $instance->disconnect($name);\n }\n\n /**\n * Get the configuration for a connection.\n *\n * @param string|null $name\n * @throws \\InvalidArgumentException\n * @return array\n * @static\n */\n public static function getConnectionConfig($name = null)\n {\n //Method inherited from \\GrahamCampbell\\Manager\\AbstractManager \n /** @var \\Vinkla\\Hashids\\HashidsManager $instance */\n return $instance->getConnectionConfig($name);\n }\n\n /**\n * Get the default connection name.\n *\n * @return string\n * @static\n */\n public static function getDefaultConnection()\n {\n //Method inherited from \\GrahamCampbell\\Manager\\AbstractManager \n /** @var \\Vinkla\\Hashids\\HashidsManager $instance */\n return $instance->getDefaultConnection();\n }\n\n /**\n * Set the default connection name.\n *\n * @param string $name\n * @return void\n * @static\n */\n public static function setDefaultConnection($name)\n {\n //Method inherited from \\GrahamCampbell\\Manager\\AbstractManager \n /** @var \\Vinkla\\Hashids\\HashidsManager $instance */\n $instance->setDefaultConnection($name);\n }\n\n /**\n * Register an extension connection resolver.\n *\n * @param string $name\n * @param callable $resolver\n * @return void\n * @static\n */\n public static function extend($name, $resolver)\n {\n //Method inherited from \\GrahamCampbell\\Manager\\AbstractManager \n /** @var \\Vinkla\\Hashids\\HashidsManager $instance */\n $instance->extend($name, $resolver);\n }\n\n /**\n * Return all of the created connections.\n *\n * @return array<string,object>\n * @static\n */\n public static function getConnections()\n {\n //Method inherited from \\GrahamCampbell\\Manager\\AbstractManager \n /** @var \\Vinkla\\Hashids\\HashidsManager $instance */\n return $instance->getConnections();\n }\n\n /**\n * Get the config instance.\n *\n * @return \\Illuminate\\Contracts\\Config\\Repository\n * @static\n */\n public static function getConfig()\n {\n //Method inherited from \\GrahamCampbell\\Manager\\AbstractManager \n /** @var \\Vinkla\\Hashids\\HashidsManager $instance */\n return $instance->getConfig();\n }\n\n }\n }\n\nnamespace Illuminate\\Support {\n /**\n * @template TKey of array-key\n * @template-covariant TValue\n * @implements \\ArrayAccess<TKey, TValue>\n * @implements \\Illuminate\\Support\\Enumerable<TKey, TValue>\n */\n class Collection {\n /**\n * @see \\Barryvdh\\Debugbar\\ServiceProvider::register()\n * @static\n */\n public static function debug()\n {\n return \\Illuminate\\Support\\Collection::debug();\n }\n\n /**\n * @see \\Spatie\\Fractal\\FractalServiceProvider::packageBooted()\n * @param mixed $transformer\n * @static\n */\n public static function transformWith($transformer)\n {\n return \\Illuminate\\Support\\Collection::transformWith($transformer);\n }\n\n }\n }\n\nnamespace Illuminate\\Http {\n /**\n */\n class Request extends \\Symfony\\Component\\HttpFoundation\\Request {\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestValidation()\n * @param array $rules\n * @param mixed $params\n * @static\n */\n public static function validate($rules, ...$params)\n {\n return \\Illuminate\\Http\\Request::validate($rules, ...$params);\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestValidation()\n * @param string $errorBag\n * @param array $rules\n * @param mixed $params\n * @static\n */\n public static function validateWithBag($errorBag, $rules, ...$params)\n {\n return \\Illuminate\\Http\\Request::validateWithBag($errorBag, $rules, ...$params);\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestSignatureValidation()\n * @param mixed $absolute\n * @static\n */\n public static function hasValidSignature($absolute = true)\n {\n return \\Illuminate\\Http\\Request::hasValidSignature($absolute);\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestSignatureValidation()\n * @static\n */\n public static function hasValidRelativeSignature()\n {\n return \\Illuminate\\Http\\Request::hasValidRelativeSignature();\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestSignatureValidation()\n * @param mixed $ignoreQuery\n * @param mixed $absolute\n * @static\n */\n public static function hasValidSignatureWhileIgnoring($ignoreQuery = [], $absolute = true)\n {\n return \\Illuminate\\Http\\Request::hasValidSignatureWhileIgnoring($ignoreQuery, $absolute);\n }\n\n /**\n * @see \\Illuminate\\Foundation\\Providers\\FoundationServiceProvider::registerRequestSignatureValidation()\n * @param mixed $ignoreQuery\n * @static\n */\n public static function hasValidRelativeSignatureWhileIgnoring($ignoreQuery = [])\n {\n return \\Illuminate\\Http\\Request::hasValidRelativeSignatureWhileIgnoring($ignoreQuery);\n }\n\n }\n }\n\nnamespace Illuminate\\Testing {\n /**\n * @template TResponse of \\Symfony\\Component\\HttpFoundation\\Response\n * @mixin \\Illuminate\\Http\\Response\n */\n class TestResponse {\n /**\n * @see \\JMac\\Testing\\AdditionalAssertionsServiceProvider::register()\n * @param array $structure\n * @static\n */\n public static function assertJsonTypedStructure($structure)\n {\n return \\Illuminate\\Testing\\TestResponse::assertJsonTypedStructure($structure);\n }\n\n /**\n * @see \\JMac\\Testing\\AdditionalAssertionsServiceProvider::register()\n * @param string $key\n * @static\n */\n public static function assertViewHasNull($key)\n {\n return \\Illuminate\\Testing\\TestResponse::assertViewHasNull($key);\n }\n\n }\n }\n\nnamespace Illuminate\\Database\\Schema {\n /**\n */\n class Blueprint {\n /**\n * @see \\Kalnoy\\Nestedset\\NestedSetServiceProvider::register()\n * @static\n */\n public static function nestedSet()\n {\n return \\Illuminate\\Database\\Schema\\Blueprint::nestedSet();\n }\n\n /**\n * @see \\Kalnoy\\Nestedset\\NestedSetServiceProvider::register()\n * @static\n */\n public static function dropNestedSet()\n {\n return \\Illuminate\\Database\\Schema\\Blueprint::dropNestedSet();\n }\n\n }\n }\n\nnamespace Illuminate\\Validation {\n /**\n */\n class Rule {\n /**\n * @see \\Propaganistas\\LaravelPhone\\PhoneServiceProvider::registerValidator()\n * @static\n */\n public static function phone()\n {\n return \\Illuminate\\Validation\\Rule::phone();\n }\n\n }\n }\n\nnamespace Illuminate\\Console\\Scheduling {\n /**\n */\n class Event {\n /**\n * @see \\Sentry\\Laravel\\Features\\ConsoleSchedulingIntegration::register()\n * @param string|null $monitorSlug\n * @param int|null $checkInMargin\n * @param int|null $maxRuntime\n * @param bool $updateMonitorConfig\n * @param int|null $failureIssueThreshold\n * @param int|null $recoveryThreshold\n * @static\n */\n public static function sentryMonitor($monitorSlug = null, $checkInMargin = null, $maxRuntime = null, $updateMonitorConfig = true, $failureIssueThreshold = null, $recoveryThreshold = null)\n {\n return \\Illuminate\\Console\\Scheduling\\Event::sentryMonitor($monitorSlug, $checkInMargin, $maxRuntime, $updateMonitorConfig, $failureIssueThreshold, $recoveryThreshold);\n }\n\n }\n }\n\nnamespace Illuminate\\Http\\Client {\n /**\n * @mixin \\Illuminate\\Http\\Client\\PendingRequest\n */\n class Factory {\n /**\n * @see \\Jiminny\\Providers\\PlanhatServiceProvider::register()\n * @return \\Illuminate\\Http\\Client\\PendingRequest\n * @static\n */\n public static function planhatApi()\n {\n return \\Illuminate\\Http\\Client\\Factory::planhatApi();\n }\n\n /**\n * @see \\Jiminny\\Providers\\PlanhatServiceProvider::register()\n * @return \\Illuminate\\Http\\Client\\PendingRequest\n * @static\n */\n public static function planhatAnalyticsApi()\n {\n return \\Illuminate\\Http\\Client\\Factory::planhatAnalyticsApi();\n }\n\n }\n }\n\nnamespace Illuminate\\Routing {\n /**\n * @mixin \\Illuminate\\Routing\\RouteRegistrar\n */\n class Router {\n /**\n * @see \\Laravel\\Ui\\AuthRouteMethods::auth()\n * @param mixed $options\n * @static\n */\n public static function auth($options = [])\n {\n return \\Illuminate\\Routing\\Router::auth($options);\n }\n\n /**\n * @see \\Laravel\\Ui\\AuthRouteMethods::resetPassword()\n * @static\n */\n public static function resetPassword()\n {\n return \\Illuminate\\Routing\\Router::resetPassword();\n }\n\n /**\n * @see \\Laravel\\Ui\\AuthRouteMethods::confirmPassword()\n * @static\n */\n public static function confirmPassword()\n {\n return \\Illuminate\\Routing\\Router::confirmPassword();\n }\n\n /**\n * @see \\Laravel\\Ui\\AuthRouteMethods::emailVerification()\n * @static\n */\n public static function emailVerification()\n {\n return \\Illuminate\\Routing\\Router::emailVerification();\n }\n\n }\n /**\n */\n class ResponseFactory {\n /**\n * @see \\Jiminny\\Providers\\ResponseMacroServiceProvider::boot()\n * @param mixed $data\n * @param mixed $status\n * @param array $headers\n * @param mixed $options\n * @static\n */\n public static function twiml($data = null, $status = 200, $headers = [], $options = 0)\n {\n return \\Illuminate\\Routing\\ResponseFactory::twiml($data, $status, $headers, $options);\n }\n\n }\n }\n\nnamespace Illuminate\\Database\\Eloquent {\n /**\n * @template TKey of array-key\n * @template TModel of \\Illuminate\\Database\\Eloquent\\Model\n * @extends \\Illuminate\\Support\\Collection<TKey, TModel>\n */\n class Collection extends \\Illuminate\\Support\\Collection {\n }\n }\n\n\nnamespace {\n class App extends \\Illuminate\\Support\\Facades\\App {}\n class Arr extends \\Illuminate\\Support\\Arr {}\n class Artisan extends \\Illuminate\\Support\\Facades\\Artisan {}\n class Auth extends \\Illuminate\\Support\\Facades\\Auth {}\n class Benchmark extends \\Illuminate\\Support\\Benchmark {}\n class Blade extends \\Illuminate\\Support\\Facades\\Blade {}\n class Broadcast extends \\Illuminate\\Support\\Facades\\Broadcast {}\n class Bus extends \\Illuminate\\Support\\Facades\\Bus {}\n class Cache extends \\Illuminate\\Support\\Facades\\Cache {}\n class Concurrency extends \\Illuminate\\Support\\Facades\\Concurrency {}\n class Config extends \\Illuminate\\Support\\Facades\\Config {}\n class Context extends \\Illuminate\\Support\\Facades\\Context {}\n class Cookie extends \\Illuminate\\Support\\Facades\\Cookie {}\n class Crypt extends \\Illuminate\\Support\\Facades\\Crypt {}\n class DB extends \\Illuminate\\Support\\Facades\\DB {}\n\n /**\n * @template TCollection of static\n * @template TModel of static\n * @template TValue of static\n * @template TValue of static\n */\n class Eloquent extends \\Illuminate\\Database\\Eloquent\\Model { /**\n * Create and return an un-saved model instance.\n *\n * @param array $attributes\n * @return TModel\n * @static\n */\n public static function make($attributes = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->make($attributes);\n }\n\n /**\n * Register a new global scope.\n *\n * @param string $identifier\n * @param \\Illuminate\\Database\\Eloquent\\Scope|\\Closure $scope\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withGlobalScope($identifier, $scope)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withGlobalScope($identifier, $scope);\n }\n\n /**\n * Remove a registered global scope.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Scope|string $scope\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withoutGlobalScope($scope)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withoutGlobalScope($scope);\n }\n\n /**\n * Remove all or passed registered global scopes.\n *\n * @param array|null $scopes\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withoutGlobalScopes($scopes = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withoutGlobalScopes($scopes);\n }\n\n /**\n * Remove all global scopes except the given scopes.\n *\n * @param array $scopes\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withoutGlobalScopesExcept($scopes = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withoutGlobalScopesExcept($scopes);\n }\n\n /**\n * Get an array of global scopes that were removed from the query.\n *\n * @return array\n * @static\n */\n public static function removedScopes()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->removedScopes();\n }\n\n /**\n * Add a where clause on the primary key to the query.\n *\n * @param mixed $id\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereKey($id)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereKey($id);\n }\n\n /**\n * Add a where clause on the primary key to the query.\n *\n * @param mixed $id\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereKeyNot($id)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereKeyNot($id);\n }\n\n /**\n * Add a basic where clause to the query.\n *\n * @param (\\Closure(static): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function where($column, $operator = null, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->where($column, $operator, $value, $boolean);\n }\n\n /**\n * Add a basic where clause to the query, and return the first result.\n *\n * @param (\\Closure(static): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @param string $boolean\n * @return TModel|null\n * @static\n */\n public static function firstWhere($column, $operator = null, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->firstWhere($column, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where\" clause to the query.\n *\n * @param (\\Closure(static): mixed)|array|string|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhere($column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhere($column, $operator, $value);\n }\n\n /**\n * Add a basic \"where not\" clause to the query.\n *\n * @param (\\Closure(static): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNot($column, $operator = null, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereNot($column, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where not\" clause to the query.\n *\n * @param (\\Closure(static): mixed)|array|string|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNot($column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereNot($column, $operator, $value);\n }\n\n /**\n * Add an \"order by\" clause for a timestamp to the query.\n *\n * @param string|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function latest($column = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->latest($column);\n }\n\n /**\n * Add an \"order by\" clause for a timestamp to the query.\n *\n * @param string|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function oldest($column = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->oldest($column);\n }\n\n /**\n * Create a collection of models from plain arrays.\n *\n * @param array $items\n * @return \\Illuminate\\Database\\Eloquent\\Collection<int, TModel>\n * @static\n */\n public static function hydrate($items)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->hydrate($items);\n }\n\n /**\n * Insert into the database after merging the model's default attributes, setting timestamps, and casting values.\n *\n * @param array<int, array<string, mixed>> $values\n * @return bool\n * @static\n */\n public static function fillAndInsert($values)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->fillAndInsert($values);\n }\n\n /**\n * Insert (ignoring errors) into the database after merging the model's default attributes, setting timestamps, and casting values.\n *\n * @param array<int, array<string, mixed>> $values\n * @return int\n * @static\n */\n public static function fillAndInsertOrIgnore($values)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->fillAndInsertOrIgnore($values);\n }\n\n /**\n * Insert a record into the database and get its ID after merging the model's default attributes, setting timestamps, and casting values.\n *\n * @param array<string, mixed> $values\n * @return int\n * @static\n */\n public static function fillAndInsertGetId($values)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->fillAndInsertGetId($values);\n }\n\n /**\n * Enrich the given values by merging in the model's default attributes, adding timestamps, and casting values.\n *\n * @param array<int, array<string, mixed>> $values\n * @return array<int, array<string, mixed>>\n * @static\n */\n public static function fillForInsert($values)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->fillForInsert($values);\n }\n\n /**\n * Create a collection of models from a raw query.\n *\n * @param string $query\n * @param array $bindings\n * @return \\Illuminate\\Database\\Eloquent\\Collection<int, TModel>\n * @static\n */\n public static function fromQuery($query, $bindings = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->fromQuery($query, $bindings);\n }\n\n /**\n * Find a model by its primary key.\n *\n * @param mixed $id\n * @param array|string $columns\n * @return ($id is (\\Illuminate\\Contracts\\Support\\Arrayable<array-key, mixed>|array<mixed>) ? \\Illuminate\\Database\\Eloquent\\Collection<int, TModel> : TModel|null)\n * @static\n */\n public static function find($id, $columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->find($id, $columns);\n }\n\n /**\n * Find a sole model by its primary key.\n *\n * @param mixed $id\n * @param array|string $columns\n * @return TModel\n * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException<TModel>\n * @throws \\Illuminate\\Database\\MultipleRecordsFoundException\n * @static\n */\n public static function findSole($id, $columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->findSole($id, $columns);\n }\n\n /**\n * Find multiple models by their primary keys.\n *\n * @param \\Illuminate\\Contracts\\Support\\Arrayable|array $ids\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Collection<int, TModel>\n * @static\n */\n public static function findMany($ids, $columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->findMany($ids, $columns);\n }\n\n /**\n * Find a model by its primary key or throw an exception.\n *\n * @param mixed $id\n * @param array|string $columns\n * @return ($id is (\\Illuminate\\Contracts\\Support\\Arrayable<array-key, mixed>|array<mixed>) ? \\Illuminate\\Database\\Eloquent\\Collection<int, TModel> : TModel)\n * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException<TModel>\n * @static\n */\n public static function findOrFail($id, $columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->findOrFail($id, $columns);\n }\n\n /**\n * Find a model by its primary key or return fresh model instance.\n *\n * @param mixed $id\n * @param array|string $columns\n * @return ($id is (\\Illuminate\\Contracts\\Support\\Arrayable<array-key, mixed>|array<mixed>) ? \\Illuminate\\Database\\Eloquent\\Collection<int, TModel> : TModel)\n * @static\n */\n public static function findOrNew($id, $columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->findOrNew($id, $columns);\n }\n\n /**\n * Find a model by its primary key or call a callback.\n *\n * @template TValue\n * @param mixed $id\n * @param (\\Closure(): TValue)|list<string>|string $columns\n * @param (\\Closure(): TValue)|null $callback\n * @return ( $id is (\\Illuminate\\Contracts\\Support\\Arrayable<array-key, mixed>|array<mixed>)\n * ? \\Illuminate\\Database\\Eloquent\\Collection<int, TModel>\n * : TModel|TValue\n * )\n * @static\n */\n public static function findOr($id, $columns = [], $callback = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->findOr($id, $columns, $callback);\n }\n\n /**\n * Get the first record matching the attributes or instantiate it.\n *\n * @param array $attributes\n * @param array $values\n * @return TModel\n * @static\n */\n public static function firstOrNew($attributes = [], $values = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->firstOrNew($attributes, $values);\n }\n\n /**\n * Get the first record matching the attributes. If the record is not found, create it.\n *\n * @param array $attributes\n * @param array $values\n * @return TModel\n * @static\n */\n public static function firstOrCreate($attributes = [], $values = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->firstOrCreate($attributes, $values);\n }\n\n /**\n * Attempt to create the record. If a unique constraint violation occurs, attempt to find the matching record.\n *\n * @param array $attributes\n * @param array $values\n * @return TModel\n * @static\n */\n public static function createOrFirst($attributes = [], $values = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->createOrFirst($attributes, $values);\n }\n\n /**\n * Create or update a record matching the attributes, and fill it with values.\n *\n * @param array $attributes\n * @param array $values\n * @return TModel\n * @static\n */\n public static function updateOrCreate($attributes, $values = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->updateOrCreate($attributes, $values);\n }\n\n /**\n * Create a record matching the attributes, or increment the existing record.\n *\n * @param array $attributes\n * @param string $column\n * @param int|float $default\n * @param int|float $step\n * @param array $extra\n * @return TModel\n * @static\n */\n public static function incrementOrCreate($attributes, $column = 'count', $default = 1, $step = 1, $extra = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->incrementOrCreate($attributes, $column, $default, $step, $extra);\n }\n\n /**\n * Execute the query and get the first result or throw an exception.\n *\n * @param array|string $columns\n * @return TModel\n * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException<TModel>\n * @static\n */\n public static function firstOrFail($columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->firstOrFail($columns);\n }\n\n /**\n * Execute the query and get the first result or call a callback.\n *\n * @template TValue\n * @param (\\Closure(): TValue)|list<string> $columns\n * @param (\\Closure(): TValue)|null $callback\n * @return TModel|TValue\n * @static\n */\n public static function firstOr($columns = [], $callback = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->firstOr($columns, $callback);\n }\n\n /**\n * Execute the query and get the first result if it's the sole matching record.\n *\n * @param array|string $columns\n * @return TModel\n * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException<TModel>\n * @throws \\Illuminate\\Database\\MultipleRecordsFoundException\n * @static\n */\n public static function sole($columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->sole($columns);\n }\n\n /**\n * Get a single column's value from the first result of a query.\n *\n * @param string|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @return mixed\n * @static\n */\n public static function value($column)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->value($column);\n }\n\n /**\n * Get a single column's value from the first result of a query if it's the sole matching record.\n *\n * @param string|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @return mixed\n * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException<TModel>\n * @throws \\Illuminate\\Database\\MultipleRecordsFoundException\n * @static\n */\n public static function soleValue($column)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->soleValue($column);\n }\n\n /**\n * Get a single column's value from the first result of the query or throw an exception.\n *\n * @param string|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @return mixed\n * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException<TModel>\n * @static\n */\n public static function valueOrFail($column)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->valueOrFail($column);\n }\n\n /**\n * Execute the query as a \"select\" statement.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Collection<int, TModel>\n * @static\n */\n public static function get($columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->get($columns);\n }\n\n /**\n * Get the hydrated models without eager loading.\n *\n * @param array|string $columns\n * @return array<int, TModel>\n * @static\n */\n public static function getModels($columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->getModels($columns);\n }\n\n /**\n * Eager load the relationships for the models.\n *\n * @param array<int, TModel> $models\n * @return array<int, TModel>\n * @static\n */\n public static function eagerLoadRelations($models)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->eagerLoadRelations($models);\n }\n\n /**\n * Register a closure to be invoked after the query is executed.\n *\n * @param \\Closure $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function afterQuery($callback)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->afterQuery($callback);\n }\n\n /**\n * Invoke the \"after query\" modification callbacks.\n *\n * @param mixed $result\n * @return mixed\n * @static\n */\n public static function applyAfterQueryCallbacks($result)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->applyAfterQueryCallbacks($result);\n }\n\n /**\n * Get a lazy collection for the given query.\n *\n * @return \\Illuminate\\Support\\LazyCollection<int, TModel>\n * @static\n */\n public static function cursor()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->cursor();\n }\n\n /**\n * Get a collection with the values of a given column.\n *\n * @param string|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param string|null $key\n * @return \\Illuminate\\Support\\Collection<array-key, mixed>\n * @static\n */\n public static function pluck($column, $key = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->pluck($column, $key);\n }\n\n /**\n * Paginate the given query.\n *\n * @param int|null|\\Closure $perPage\n * @param array|string $columns\n * @param string $pageName\n * @param int|null $page\n * @param \\Closure|int|null $total\n * @return \\Illuminate\\Pagination\\LengthAwarePaginator\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function paginate($perPage = null, $columns = [], $pageName = 'page', $page = null, $total = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->paginate($perPage, $columns, $pageName, $page, $total);\n }\n\n /**\n * Paginate the given query into a simple paginator.\n *\n * @param int|null $perPage\n * @param array|string $columns\n * @param string $pageName\n * @param int|null $page\n * @return \\Illuminate\\Contracts\\Pagination\\Paginator\n * @static\n */\n public static function simplePaginate($perPage = null, $columns = [], $pageName = 'page', $page = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->simplePaginate($perPage, $columns, $pageName, $page);\n }\n\n /**\n * Paginate the given query into a cursor paginator.\n *\n * @param int|null $perPage\n * @param array|string $columns\n * @param string $cursorName\n * @param \\Illuminate\\Pagination\\Cursor|string|null $cursor\n * @return \\Illuminate\\Contracts\\Pagination\\CursorPaginator\n * @static\n */\n public static function cursorPaginate($perPage = null, $columns = [], $cursorName = 'cursor', $cursor = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->cursorPaginate($perPage, $columns, $cursorName, $cursor);\n }\n\n /**\n * Save a new model and return the instance.\n *\n * @param array $attributes\n * @return TModel\n * @static\n */\n public static function create($attributes = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->create($attributes);\n }\n\n /**\n * Save a new model and return the instance without raising model events.\n *\n * @param array $attributes\n * @return TModel\n * @static\n */\n public static function createQuietly($attributes = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->createQuietly($attributes);\n }\n\n /**\n * Save a new model and return the instance. Allow mass-assignment.\n *\n * @param array $attributes\n * @return TModel\n * @static\n */\n public static function forceCreate($attributes)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->forceCreate($attributes);\n }\n\n /**\n * Save a new model instance with mass assignment without raising model events.\n *\n * @param array $attributes\n * @return TModel\n * @static\n */\n public static function forceCreateQuietly($attributes = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->forceCreateQuietly($attributes);\n }\n\n /**\n * Insert new records or update the existing ones.\n *\n * @param array $values\n * @param array|string $uniqueBy\n * @param array|null $update\n * @return int\n * @static\n */\n public static function upsert($values, $uniqueBy, $update = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->upsert($values, $uniqueBy, $update);\n }\n\n /**\n * Register a replacement for the default delete function.\n *\n * @param \\Closure $callback\n * @return void\n * @static\n */\n public static function onDelete($callback)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n $instance->onDelete($callback);\n }\n\n /**\n * Call the given local model scopes.\n *\n * @param array|string $scopes\n * @return static|mixed\n * @static\n */\n public static function scopes($scopes)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->scopes($scopes);\n }\n\n /**\n * Apply the scopes to the Eloquent builder instance and return it.\n *\n * @return static\n * @static\n */\n public static function applyScopes()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->applyScopes();\n }\n\n /**\n * Prevent the specified relations from being eager loaded.\n *\n * @param mixed $relations\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function without($relations)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->without($relations);\n }\n\n /**\n * Set the relationships that should be eager loaded while removing any previously added eager loading specifications.\n *\n * @param array<array-key, array|(\\Closure(\\Illuminate\\Database\\Eloquent\\Relations\\Relation<*,*,*>): mixed)|string>|string $relations\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withOnly($relations)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withOnly($relations);\n }\n\n /**\n * Create a new instance of the model being queried.\n *\n * @param array $attributes\n * @return TModel\n * @static\n */\n public static function newModelInstance($attributes = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->newModelInstance($attributes);\n }\n\n /**\n * Specify attributes that should be added to any new models created by this builder.\n * \n * The given key / value pairs will also be added as where conditions to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|array|string $attributes\n * @param mixed $value\n * @param bool $asConditions\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withAttributes($attributes, $value = null, $asConditions = true)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withAttributes($attributes, $value, $asConditions);\n }\n\n /**\n * Apply query-time casts to the model instance.\n *\n * @param array $casts\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withCasts($casts)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withCasts($casts);\n }\n\n /**\n * Execute the given Closure within a transaction savepoint if needed.\n *\n * @template TModelValue\n * @param \\Closure(): TModelValue $scope\n * @return TModelValue\n * @static\n */\n public static function withSavepointIfNeeded($scope)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withSavepointIfNeeded($scope);\n }\n\n /**\n * Get the underlying query builder instance.\n *\n * @return \\Illuminate\\Database\\Query\\Builder\n * @static\n */\n public static function getQuery()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->getQuery();\n }\n\n /**\n * Set the underlying query builder instance.\n *\n * @param \\Illuminate\\Database\\Query\\Builder $query\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function setQuery($query)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->setQuery($query);\n }\n\n /**\n * Get a base query builder instance.\n *\n * @return \\Illuminate\\Database\\Query\\Builder\n * @static\n */\n public static function toBase()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->toBase();\n }\n\n /**\n * Get the relationships being eagerly loaded.\n *\n * @return array\n * @static\n */\n public static function getEagerLoads()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->getEagerLoads();\n }\n\n /**\n * Set the relationships being eagerly loaded.\n *\n * @param array $eagerLoad\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function setEagerLoads($eagerLoad)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->setEagerLoads($eagerLoad);\n }\n\n /**\n * Indicate that the given relationships should not be eagerly loaded.\n *\n * @param array $relations\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withoutEagerLoad($relations)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withoutEagerLoad($relations);\n }\n\n /**\n * Flush the relationships being eagerly loaded.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withoutEagerLoads()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withoutEagerLoads();\n }\n\n /**\n * Get the \"limit\" value from the query or null if it's not set.\n *\n * @return mixed\n * @static\n */\n public static function getLimit()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->getLimit();\n }\n\n /**\n * Get the \"offset\" value from the query or null if it's not set.\n *\n * @return mixed\n * @static\n */\n public static function getOffset()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->getOffset();\n }\n\n /**\n * Get the model instance being queried.\n *\n * @return TModel\n * @static\n */\n public static function getModel()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->getModel();\n }\n\n /**\n * Set a model instance for the model being queried.\n *\n * @template TModelNew of \\Illuminate\\Database\\Eloquent\\Model\n * @param TModelNew $model\n * @return static<TModelNew>\n * @static\n */\n public static function setModel($model)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->setModel($model);\n }\n\n /**\n * Get the given macro by name.\n *\n * @param string $name\n * @return \\Closure\n * @static\n */\n public static function getMacro($name)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->getMacro($name);\n }\n\n /**\n * Checks if a macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasMacro($name)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->hasMacro($name);\n }\n\n /**\n * Get the given global macro by name.\n *\n * @param string $name\n * @return \\Closure\n * @static\n */\n public static function getGlobalMacro($name)\n {\n return \\Illuminate\\Database\\Eloquent\\Builder::getGlobalMacro($name);\n }\n\n /**\n * Checks if a global macro is registered.\n *\n * @param string $name\n * @return bool\n * @static\n */\n public static function hasGlobalMacro($name)\n {\n return \\Illuminate\\Database\\Eloquent\\Builder::hasGlobalMacro($name);\n }\n\n /**\n * Clone the Eloquent query builder.\n *\n * @return static\n * @static\n */\n public static function clone()\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->clone();\n }\n\n /**\n * Register a closure to be invoked on a clone.\n *\n * @param \\Closure $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function onClone($callback)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->onClone($callback);\n }\n\n /**\n * Chunk the results of the query.\n *\n * @param int $count\n * @param callable(\\Illuminate\\Support\\Collection<int, TValue>, int): mixed $callback\n * @return bool\n * @static\n */\n public static function chunk($count, $callback)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->chunk($count, $callback);\n }\n\n /**\n * Run a map over each item while chunking.\n *\n * @template TReturn\n * @param callable(TValue): TReturn $callback\n * @param int $count\n * @return \\Illuminate\\Support\\Collection<int, TReturn>\n * @static\n */\n public static function chunkMap($callback, $count = 1000)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->chunkMap($callback, $count);\n }\n\n /**\n * Execute a callback over each item while chunking.\n *\n * @param callable(TValue, int): mixed $callback\n * @param int $count\n * @return bool\n * @throws \\RuntimeException\n * @static\n */\n public static function each($callback, $count = 1000)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->each($callback, $count);\n }\n\n /**\n * Chunk the results of a query by comparing IDs.\n *\n * @param int $count\n * @param callable(\\Illuminate\\Support\\Collection<int, TValue>, int): mixed $callback\n * @param string|null $column\n * @param string|null $alias\n * @return bool\n * @static\n */\n public static function chunkById($count, $callback, $column = null, $alias = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->chunkById($count, $callback, $column, $alias);\n }\n\n /**\n * Chunk the results of a query by comparing IDs in descending order.\n *\n * @param int $count\n * @param callable(\\Illuminate\\Support\\Collection<int, TValue>, int): mixed $callback\n * @param string|null $column\n * @param string|null $alias\n * @return bool\n * @static\n */\n public static function chunkByIdDesc($count, $callback, $column = null, $alias = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->chunkByIdDesc($count, $callback, $column, $alias);\n }\n\n /**\n * Chunk the results of a query by comparing IDs in a given order.\n *\n * @param int $count\n * @param callable(\\Illuminate\\Support\\Collection<int, TValue>, int): mixed $callback\n * @param string|null $column\n * @param string|null $alias\n * @param bool $descending\n * @return bool\n * @throws \\RuntimeException\n * @static\n */\n public static function orderedChunkById($count, $callback, $column = null, $alias = null, $descending = false)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orderedChunkById($count, $callback, $column, $alias, $descending);\n }\n\n /**\n * Execute a callback over each item while chunking by ID.\n *\n * @param callable(TValue, int): mixed $callback\n * @param int $count\n * @param string|null $column\n * @param string|null $alias\n * @return bool\n * @static\n */\n public static function eachById($callback, $count = 1000, $column = null, $alias = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->eachById($callback, $count, $column, $alias);\n }\n\n /**\n * Query lazily, by chunks of the given size.\n *\n * @param int $chunkSize\n * @return \\Illuminate\\Support\\LazyCollection<int, TValue>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function lazy($chunkSize = 1000)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->lazy($chunkSize);\n }\n\n /**\n * Query lazily, by chunking the results of a query by comparing IDs.\n *\n * @param int $chunkSize\n * @param string|null $column\n * @param string|null $alias\n * @return \\Illuminate\\Support\\LazyCollection<int, TValue>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function lazyById($chunkSize = 1000, $column = null, $alias = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->lazyById($chunkSize, $column, $alias);\n }\n\n /**\n * Query lazily, by chunking the results of a query by comparing IDs in descending order.\n *\n * @param int $chunkSize\n * @param string|null $column\n * @param string|null $alias\n * @return \\Illuminate\\Support\\LazyCollection<int, TValue>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function lazyByIdDesc($chunkSize = 1000, $column = null, $alias = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->lazyByIdDesc($chunkSize, $column, $alias);\n }\n\n /**\n * Execute the query and get the first result.\n *\n * @param array|string $columns\n * @return TValue|null\n * @static\n */\n public static function first($columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->first($columns);\n }\n\n /**\n * Execute the query and get the first result if it's the sole matching record.\n *\n * @param array|string $columns\n * @return TValue\n * @throws \\Illuminate\\Database\\RecordsNotFoundException\n * @throws \\Illuminate\\Database\\MultipleRecordsFoundException\n * @static\n */\n public static function baseSole($columns = [])\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->baseSole($columns);\n }\n\n /**\n * Pass the query to a given callback and then return it.\n *\n * @param callable($this): mixed $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function tap($callback)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->tap($callback);\n }\n\n /**\n * Pass the query to a given callback and return the result.\n *\n * @template TReturn\n * @param (callable($this): TReturn) $callback\n * @return (TReturn is null|void ? $this : TReturn)\n * @static\n */\n public static function pipe($callback)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->pipe($callback);\n }\n\n /**\n * Apply the callback if the given \"value\" is (or resolves to) truthy.\n *\n * @template TWhenParameter\n * @template TWhenReturnType\n * @param (\\Closure($this): TWhenParameter)|TWhenParameter|null $value\n * @param (callable($this, TWhenParameter): TWhenReturnType)|null $callback\n * @param (callable($this, TWhenParameter): TWhenReturnType)|null $default\n * @return $this|TWhenReturnType\n * @static\n */\n public static function when($value = null, $callback = null, $default = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->when($value, $callback, $default);\n }\n\n /**\n * Apply the callback if the given \"value\" is (or resolves to) falsy.\n *\n * @template TUnlessParameter\n * @template TUnlessReturnType\n * @param (\\Closure($this): TUnlessParameter)|TUnlessParameter|null $value\n * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $callback\n * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $default\n * @return $this|TUnlessReturnType\n * @static\n */\n public static function unless($value = null, $callback = null, $default = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->unless($value, $callback, $default);\n }\n\n /**\n * Add a relationship count / exists condition to the query.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<TRelatedModel, *, *>|string $relation\n * @param string $operator\n * @param int $count\n * @param string $boolean\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|null $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\RuntimeException\n * @static\n */\n public static function has($relation, $operator = '>=', $count = 1, $boolean = 'and', $callback = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->has($relation, $operator, $count, $boolean, $callback);\n }\n\n /**\n * Add a relationship count / exists condition to the query with an \"or\".\n *\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<*, *, *>|string $relation\n * @param string $operator\n * @param int $count\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orHas($relation, $operator = '>=', $count = 1)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orHas($relation, $operator, $count);\n }\n\n /**\n * Add a relationship count / exists condition to the query.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<TRelatedModel, *, *>|string $relation\n * @param string $boolean\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|null $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function doesntHave($relation, $boolean = 'and', $callback = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->doesntHave($relation, $boolean, $callback);\n }\n\n /**\n * Add a relationship count / exists condition to the query with an \"or\".\n *\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<*, *, *>|string $relation\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orDoesntHave($relation)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orDoesntHave($relation);\n }\n\n /**\n * Add a relationship count / exists condition to the query with where clauses.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<TRelatedModel, *, *>|string $relation\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|null $callback\n * @param string $operator\n * @param int $count\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereHas($relation, $callback = null, $operator = '>=', $count = 1)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereHas($relation, $callback, $operator, $count);\n }\n\n /**\n * Add a relationship count / exists condition to the query with where clauses.\n * \n * Also load the relationship with the same condition.\n *\n * @param string $relation\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<*>|\\Illuminate\\Database\\Eloquent\\Relations\\Relation<*, *, *>): mixed)|null $callback\n * @param string $operator\n * @param int $count\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withWhereHas($relation, $callback = null, $operator = '>=', $count = 1)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withWhereHas($relation, $callback, $operator, $count);\n }\n\n /**\n * Add a relationship count / exists condition to the query with where clauses and an \"or\".\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<TRelatedModel, *, *>|string $relation\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|null $callback\n * @param string $operator\n * @param int $count\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereHas($relation, $callback = null, $operator = '>=', $count = 1)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereHas($relation, $callback, $operator, $count);\n }\n\n /**\n * Add a relationship count / exists condition to the query with where clauses.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<TRelatedModel, *, *>|string $relation\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|null $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereDoesntHave($relation, $callback = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereDoesntHave($relation, $callback);\n }\n\n /**\n * Add a relationship count / exists condition to the query with where clauses and an \"or\".\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<TRelatedModel, *, *>|string $relation\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|null $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereDoesntHave($relation, $callback = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereDoesntHave($relation, $callback);\n }\n\n /**\n * Add a polymorphic relationship count / exists condition to the query.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<TRelatedModel, *>|string $relation\n * @param string|array<int, string> $types\n * @param string $operator\n * @param int $count\n * @param string $boolean\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>, string): mixed)|null $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function hasMorph($relation, $types, $operator = '>=', $count = 1, $boolean = 'and', $callback = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->hasMorph($relation, $types, $operator, $count, $boolean, $callback);\n }\n\n /**\n * Add a polymorphic relationship count / exists condition to the query with an \"or\".\n *\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<*, *>|string $relation\n * @param string|array<int, string> $types\n * @param string $operator\n * @param int $count\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orHasMorph($relation, $types, $operator = '>=', $count = 1)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orHasMorph($relation, $types, $operator, $count);\n }\n\n /**\n * Add a polymorphic relationship count / exists condition to the query.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<TRelatedModel, *>|string $relation\n * @param string|array<int, string> $types\n * @param string $boolean\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>, string): mixed)|null $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function doesntHaveMorph($relation, $types, $boolean = 'and', $callback = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->doesntHaveMorph($relation, $types, $boolean, $callback);\n }\n\n /**\n * Add a polymorphic relationship count / exists condition to the query with an \"or\".\n *\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<*, *>|string $relation\n * @param string|array<int, string> $types\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orDoesntHaveMorph($relation, $types)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orDoesntHaveMorph($relation, $types);\n }\n\n /**\n * Add a polymorphic relationship count / exists condition to the query with where clauses.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<TRelatedModel, *>|string $relation\n * @param string|array<int, string> $types\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>, string): mixed)|null $callback\n * @param string $operator\n * @param int $count\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereHasMorph($relation, $types, $callback = null, $operator = '>=', $count = 1)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereHasMorph($relation, $types, $callback, $operator, $count);\n }\n\n /**\n * Add a polymorphic relationship count / exists condition to the query with where clauses and an \"or\".\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<TRelatedModel, *>|string $relation\n * @param string|array<int, string> $types\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>, string): mixed)|null $callback\n * @param string $operator\n * @param int $count\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereHasMorph($relation, $types, $callback = null, $operator = '>=', $count = 1)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereHasMorph($relation, $types, $callback, $operator, $count);\n }\n\n /**\n * Add a polymorphic relationship count / exists condition to the query with where clauses.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<TRelatedModel, *>|string $relation\n * @param string|array<int, string> $types\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>, string): mixed)|null $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereDoesntHaveMorph($relation, $types, $callback = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereDoesntHaveMorph($relation, $types, $callback);\n }\n\n /**\n * Add a polymorphic relationship count / exists condition to the query with where clauses and an \"or\".\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<TRelatedModel, *>|string $relation\n * @param string|array<int, string> $types\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>, string): mixed)|null $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereDoesntHaveMorph($relation, $types, $callback = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereDoesntHaveMorph($relation, $types, $callback);\n }\n\n /**\n * Add a basic where clause to a relationship query.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<TRelatedModel, *, *>|string $relation\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereRelation($relation, $column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereRelation($relation, $column, $operator, $value);\n }\n\n /**\n * Add a basic where clause to a relationship query and eager-load the relationship with the same conditions.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<*, *, *>|string $relation\n * @param \\Closure|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withWhereRelation($relation, $column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withWhereRelation($relation, $column, $operator, $value);\n }\n\n /**\n * Add an \"or where\" clause to a relationship query.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<TRelatedModel, *, *>|string $relation\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereRelation($relation, $column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereRelation($relation, $column, $operator, $value);\n }\n\n /**\n * Add a basic count / exists condition to a relationship query.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<TRelatedModel, *, *>|string $relation\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereDoesntHaveRelation($relation, $column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereDoesntHaveRelation($relation, $column, $operator, $value);\n }\n\n /**\n * Add an \"or where\" clause to a relationship query.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\Relation<TRelatedModel, *, *>|string $relation\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereDoesntHaveRelation($relation, $column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereDoesntHaveRelation($relation, $column, $operator, $value);\n }\n\n /**\n * Add a polymorphic relationship condition to the query with a where clause.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<TRelatedModel, *>|string $relation\n * @param string|array<int, string> $types\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereMorphRelation($relation, $types, $column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereMorphRelation($relation, $types, $column, $operator, $value);\n }\n\n /**\n * Add a polymorphic relationship condition to the query with an \"or where\" clause.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<TRelatedModel, *>|string $relation\n * @param string|array<int, string> $types\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereMorphRelation($relation, $types, $column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereMorphRelation($relation, $types, $column, $operator, $value);\n }\n\n /**\n * Add a polymorphic relationship condition to the query with a doesn't have clause.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<TRelatedModel, *>|string $relation\n * @param string|array<int, string> $types\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereMorphDoesntHaveRelation($relation, $types, $column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereMorphDoesntHaveRelation($relation, $types, $column, $operator, $value);\n }\n\n /**\n * Add a polymorphic relationship condition to the query with an \"or doesn't have\" clause.\n *\n * @template TRelatedModel of \\Illuminate\\Database\\Eloquent\\Model\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<TRelatedModel, *>|string $relation\n * @param string|array<int, string> $types\n * @param (\\Closure(\\Illuminate\\Database\\Eloquent\\Builder<TRelatedModel>): mixed)|string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereMorphDoesntHaveRelation($relation, $types, $column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereMorphDoesntHaveRelation($relation, $types, $column, $operator, $value);\n }\n\n /**\n * Add a morph-to relationship condition to the query.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<*, *>|string $relation\n * @param \\Illuminate\\Database\\Eloquent\\Model|iterable<int, \\Illuminate\\Database\\Eloquent\\Model>|string|null $model\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereMorphedTo($relation, $model, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereMorphedTo($relation, $model, $boolean);\n }\n\n /**\n * Add a not morph-to relationship condition to the query.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<*, *>|string $relation\n * @param \\Illuminate\\Database\\Eloquent\\Model|iterable<int, \\Illuminate\\Database\\Eloquent\\Model>|string $model\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNotMorphedTo($relation, $model, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereNotMorphedTo($relation, $model, $boolean);\n }\n\n /**\n * Add a morph-to relationship condition to the query with an \"or where\" clause.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<*, *>|string $relation\n * @param \\Illuminate\\Database\\Eloquent\\Model|iterable<int, \\Illuminate\\Database\\Eloquent\\Model>|string|null $model\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereMorphedTo($relation, $model)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereMorphedTo($relation, $model);\n }\n\n /**\n * Add a not morph-to relationship condition to the query with an \"or where\" clause.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo<*, *>|string $relation\n * @param \\Illuminate\\Database\\Eloquent\\Model|iterable<int, \\Illuminate\\Database\\Eloquent\\Model>|string $model\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNotMorphedTo($relation, $model)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereNotMorphedTo($relation, $model);\n }\n\n /**\n * Add a \"belongs to\" relationship where clause to the query.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Model|\\Illuminate\\Database\\Eloquent\\Collection<int, \\Illuminate\\Database\\Eloquent\\Model> $related\n * @param string|null $relationshipName\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\Illuminate\\Database\\Eloquent\\RelationNotFoundException\n * @static\n */\n public static function whereBelongsTo($related, $relationshipName = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereBelongsTo($related, $relationshipName, $boolean);\n }\n\n /**\n * Add a \"BelongsTo\" relationship with an \"or where\" clause to the query.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Model $related\n * @param string|null $relationshipName\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\RuntimeException\n * @static\n */\n public static function orWhereBelongsTo($related, $relationshipName = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereBelongsTo($related, $relationshipName);\n }\n\n /**\n * Add a \"belongs to many\" relationship where clause to the query.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Model|\\Illuminate\\Database\\Eloquent\\Collection<int, \\Illuminate\\Database\\Eloquent\\Model> $related\n * @param string|null $relationshipName\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\Illuminate\\Database\\Eloquent\\RelationNotFoundException\n * @static\n */\n public static function whereAttachedTo($related, $relationshipName = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->whereAttachedTo($related, $relationshipName, $boolean);\n }\n\n /**\n * Add a \"belongs to many\" relationship with an \"or where\" clause to the query.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Model $related\n * @param string|null $relationshipName\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\RuntimeException\n * @static\n */\n public static function orWhereAttachedTo($related, $relationshipName = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->orWhereAttachedTo($related, $relationshipName);\n }\n\n /**\n * Add subselect queries to include an aggregate value for a relationship.\n *\n * @param mixed $relations\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param string|null $function\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withAggregate($relations, $column, $function = null)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withAggregate($relations, $column, $function);\n }\n\n /**\n * Add subselect queries to count the relations.\n *\n * @param mixed $relations\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withCount($relations)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withCount($relations);\n }\n\n /**\n * Add subselect queries to include the max of the relation's column.\n *\n * @param string|array $relation\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withMax($relation, $column)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withMax($relation, $column);\n }\n\n /**\n * Add subselect queries to include the min of the relation's column.\n *\n * @param string|array $relation\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withMin($relation, $column)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withMin($relation, $column);\n }\n\n /**\n * Add subselect queries to include the sum of the relation's column.\n *\n * @param string|array $relation\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withSum($relation, $column)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withSum($relation, $column);\n }\n\n /**\n * Add subselect queries to include the average of the relation's column.\n *\n * @param string|array $relation\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withAvg($relation, $column)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withAvg($relation, $column);\n }\n\n /**\n * Add subselect queries to include the existence of related models.\n *\n * @param string|array $relation\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function withExists($relation)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->withExists($relation);\n }\n\n /**\n * Merge the where constraints from another query to the current query.\n *\n * @param \\Illuminate\\Database\\Eloquent\\Builder<*> $from\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function mergeConstraintsFrom($from)\n {\n /** @var \\Illuminate\\Database\\Eloquent\\Builder $instance */\n return $instance->mergeConstraintsFrom($from);\n }\n\n /**\n * Set the columns to be selected.\n *\n * @param mixed $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function select($columns = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->select($columns);\n }\n\n /**\n * Add a subselect expression to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|string $query\n * @param string $as\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function selectSub($query, $as)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->selectSub($query, $as);\n }\n\n /**\n * Add a new \"raw\" select expression to the query.\n *\n * @param string $expression\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function selectRaw($expression, $bindings = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->selectRaw($expression, $bindings);\n }\n\n /**\n * Makes \"from\" fetch from a subquery.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|string $query\n * @param string $as\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function fromSub($query, $as)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->fromSub($query, $as);\n }\n\n /**\n * Add a raw from clause to the query.\n *\n * @param string $expression\n * @param mixed $bindings\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function fromRaw($expression, $bindings = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->fromRaw($expression, $bindings);\n }\n\n /**\n * Add a new select column to the query.\n *\n * @param mixed $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function addSelect($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->addSelect($column);\n }\n\n /**\n * Force the query to only return distinct results.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function distinct()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->distinct();\n }\n\n /**\n * Set the table which the query is targeting.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $table\n * @param string|null $as\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function from($table, $as = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->from($table, $as);\n }\n\n /**\n * Add an index hint to suggest a query index.\n *\n * @param string $index\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function useIndex($index)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->useIndex($index);\n }\n\n /**\n * Add an index hint to force a query index.\n *\n * @param string $index\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function forceIndex($index)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->forceIndex($index);\n }\n\n /**\n * Add an index hint to ignore a query index.\n *\n * @param string $index\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function ignoreIndex($index)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->ignoreIndex($index);\n }\n\n /**\n * Add a join clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $table\n * @param \\Closure|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $first\n * @param string|null $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $second\n * @param string $type\n * @param bool $where\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function join($table, $first, $operator = null, $second = null, $type = 'inner', $where = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->join($table, $first, $operator, $second, $type, $where);\n }\n\n /**\n * Add a \"join where\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $table\n * @param \\Closure|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $first\n * @param string $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $second\n * @param string $type\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function joinWhere($table, $first, $operator, $second, $type = 'inner')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->joinWhere($table, $first, $operator, $second, $type);\n }\n\n /**\n * Add a subquery join clause to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|string $query\n * @param string $as\n * @param \\Closure|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $first\n * @param string|null $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $second\n * @param string $type\n * @param bool $where\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function joinSub($query, $as, $first, $operator = null, $second = null, $type = 'inner', $where = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->joinSub($query, $as, $first, $operator, $second, $type, $where);\n }\n\n /**\n * Add a lateral join clause to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|string $query\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function joinLateral($query, $as, $type = 'inner')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->joinLateral($query, $as, $type);\n }\n\n /**\n * Add a lateral left join to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|string $query\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function leftJoinLateral($query, $as)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->leftJoinLateral($query, $as);\n }\n\n /**\n * Add a left join to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $table\n * @param \\Closure|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $first\n * @param string|null $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $second\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function leftJoin($table, $first, $operator = null, $second = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->leftJoin($table, $first, $operator, $second);\n }\n\n /**\n * Add a \"join where\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $table\n * @param \\Closure|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $first\n * @param string $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $second\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function leftJoinWhere($table, $first, $operator, $second)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->leftJoinWhere($table, $first, $operator, $second);\n }\n\n /**\n * Add a subquery left join to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|string $query\n * @param string $as\n * @param \\Closure|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $first\n * @param string|null $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $second\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function leftJoinSub($query, $as, $first, $operator = null, $second = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->leftJoinSub($query, $as, $first, $operator, $second);\n }\n\n /**\n * Add a right join to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $table\n * @param \\Closure|string $first\n * @param string|null $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $second\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function rightJoin($table, $first, $operator = null, $second = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->rightJoin($table, $first, $operator, $second);\n }\n\n /**\n * Add a \"right join where\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $table\n * @param \\Closure|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $first\n * @param string $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $second\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function rightJoinWhere($table, $first, $operator, $second)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->rightJoinWhere($table, $first, $operator, $second);\n }\n\n /**\n * Add a subquery right join to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|string $query\n * @param string $as\n * @param \\Closure|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $first\n * @param string|null $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $second\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function rightJoinSub($query, $as, $first, $operator = null, $second = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->rightJoinSub($query, $as, $first, $operator, $second);\n }\n\n /**\n * Add a \"cross join\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $table\n * @param \\Closure|\\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $first\n * @param string|null $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $second\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function crossJoin($table, $first = null, $operator = null, $second = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->crossJoin($table, $first, $operator, $second);\n }\n\n /**\n * Add a subquery cross join to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|string $query\n * @param string $as\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function crossJoinSub($query, $as)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->crossJoinSub($query, $as);\n }\n\n /**\n * Merge an array of where clauses and bindings.\n *\n * @param array $wheres\n * @param array $bindings\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function mergeWheres($wheres, $bindings)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->mergeWheres($wheres, $bindings);\n }\n\n /**\n * Prepare the value and operator for a where clause.\n *\n * @param string $value\n * @param string $operator\n * @param bool $useDefault\n * @return array\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function prepareValueAndOperator($value, $operator, $useDefault = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->prepareValueAndOperator($value, $operator, $useDefault);\n }\n\n /**\n * Add a \"where\" clause comparing two columns to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string|array $first\n * @param string|null $operator\n * @param string|null $second\n * @param string|null $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereColumn($first, $operator = null, $second = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereColumn($first, $operator, $second, $boolean);\n }\n\n /**\n * Add an \"or where\" clause comparing two columns to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string|array $first\n * @param string|null $operator\n * @param string|null $second\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereColumn($first, $operator = null, $second = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereColumn($first, $operator, $second);\n }\n\n /**\n * Add a raw where clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $sql\n * @param mixed $bindings\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereRaw($sql, $bindings = [], $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereRaw($sql, $bindings, $boolean);\n }\n\n /**\n * Add a raw or where clause to the query.\n *\n * @param string $sql\n * @param mixed $bindings\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereRaw($sql, $bindings = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereRaw($sql, $bindings);\n }\n\n /**\n * Add a \"where like\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param string $value\n * @param bool $caseSensitive\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereLike($column, $value, $caseSensitive = false, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereLike($column, $value, $caseSensitive, $boolean, $not);\n }\n\n /**\n * Add an \"or where like\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param string $value\n * @param bool $caseSensitive\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereLike($column, $value, $caseSensitive = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereLike($column, $value, $caseSensitive);\n }\n\n /**\n * Add a \"where not like\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param string $value\n * @param bool $caseSensitive\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNotLike($column, $value, $caseSensitive = false, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNotLike($column, $value, $caseSensitive, $boolean);\n }\n\n /**\n * Add an \"or where not like\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param string $value\n * @param bool $caseSensitive\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNotLike($column, $value, $caseSensitive = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereNotLike($column, $value, $caseSensitive);\n }\n\n /**\n * Add a \"where in\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param mixed $values\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereIn($column, $values, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereIn($column, $values, $boolean, $not);\n }\n\n /**\n * Add an \"or where in\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param mixed $values\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereIn($column, $values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereIn($column, $values);\n }\n\n /**\n * Add a \"where not in\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param mixed $values\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNotIn($column, $values, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNotIn($column, $values, $boolean);\n }\n\n /**\n * Add an \"or where not in\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param mixed $values\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNotIn($column, $values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereNotIn($column, $values);\n }\n\n /**\n * Add a \"where in raw\" clause for integer values to the query.\n *\n * @param string $column\n * @param \\Illuminate\\Contracts\\Support\\Arrayable|array $values\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereIntegerInRaw($column, $values, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereIntegerInRaw($column, $values, $boolean, $not);\n }\n\n /**\n * Add an \"or where in raw\" clause for integer values to the query.\n *\n * @param string $column\n * @param \\Illuminate\\Contracts\\Support\\Arrayable|array $values\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereIntegerInRaw($column, $values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereIntegerInRaw($column, $values);\n }\n\n /**\n * Add a \"where not in raw\" clause for integer values to the query.\n *\n * @param string $column\n * @param \\Illuminate\\Contracts\\Support\\Arrayable|array $values\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereIntegerNotInRaw($column, $values, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereIntegerNotInRaw($column, $values, $boolean);\n }\n\n /**\n * Add an \"or where not in raw\" clause for integer values to the query.\n *\n * @param string $column\n * @param \\Illuminate\\Contracts\\Support\\Arrayable|array $values\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereIntegerNotInRaw($column, $values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereIntegerNotInRaw($column, $values);\n }\n\n /**\n * Add a \"where null\" clause to the query.\n *\n * @param string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $columns\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNull($columns, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNull($columns, $boolean, $not);\n }\n\n /**\n * Add an \"or where null\" clause to the query.\n *\n * @param string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNull($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereNull($column);\n }\n\n /**\n * Add a \"where not null\" clause to the query.\n *\n * @param string|array|\\Illuminate\\Contracts\\Database\\Query\\Expression $columns\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNotNull($columns, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNotNull($columns, $boolean);\n }\n\n /**\n * Add a where between statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereBetween($column, $values, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereBetween($column, $values, $boolean, $not);\n }\n\n /**\n * Add a where between statement using columns to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereBetweenColumns($column, $values, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereBetweenColumns($column, $values, $boolean, $not);\n }\n\n /**\n * Add an or where between statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereBetween($column, $values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereBetween($column, $values);\n }\n\n /**\n * Add an or where between statement using columns to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereBetweenColumns($column, $values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereBetweenColumns($column, $values);\n }\n\n /**\n * Add a where not between statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNotBetween($column, $values, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNotBetween($column, $values, $boolean);\n }\n\n /**\n * Add a where not between statement using columns to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNotBetweenColumns($column, $values, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNotBetweenColumns($column, $values, $boolean);\n }\n\n /**\n * Add an or where not between statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNotBetween($column, $values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereNotBetween($column, $values);\n }\n\n /**\n * Add an or where not between statement using columns to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNotBetweenColumns($column, $values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereNotBetweenColumns($column, $values);\n }\n\n /**\n * Add a where between columns statement using a value to the query.\n *\n * @param mixed $value\n * @param array{\\Illuminate\\Contracts\\Database\\Query\\Expression|string, \\Illuminate\\Contracts\\Database\\Query\\Expression|string} $columns\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereValueBetween($value, $columns, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereValueBetween($value, $columns, $boolean, $not);\n }\n\n /**\n * Add an or where between columns statement using a value to the query.\n *\n * @param mixed $value\n * @param array{\\Illuminate\\Contracts\\Database\\Query\\Expression|string, \\Illuminate\\Contracts\\Database\\Query\\Expression|string} $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereValueBetween($value, $columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereValueBetween($value, $columns);\n }\n\n /**\n * Add a where not between columns statement using a value to the query.\n *\n * @param mixed $value\n * @param array{\\Illuminate\\Contracts\\Database\\Query\\Expression|string, \\Illuminate\\Contracts\\Database\\Query\\Expression|string} $columns\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereValueNotBetween($value, $columns, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereValueNotBetween($value, $columns, $boolean);\n }\n\n /**\n * Add an or where not between columns statement using a value to the query.\n *\n * @param mixed $value\n * @param array{\\Illuminate\\Contracts\\Database\\Query\\Expression|string, \\Illuminate\\Contracts\\Database\\Query\\Expression|string} $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereValueNotBetween($value, $columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereValueNotBetween($value, $columns);\n }\n\n /**\n * Add an \"or where not null\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNotNull($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereNotNull($column);\n }\n\n /**\n * Add a \"where date\" statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param \\DateTimeInterface|string|null $operator\n * @param \\DateTimeInterface|string|null $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereDate($column, $operator, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereDate($column, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where date\" statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param \\DateTimeInterface|string|null $operator\n * @param \\DateTimeInterface|string|null $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereDate($column, $operator, $value = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereDate($column, $operator, $value);\n }\n\n /**\n * Add a \"where time\" statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param \\DateTimeInterface|string|null $operator\n * @param \\DateTimeInterface|string|null $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereTime($column, $operator, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereTime($column, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where time\" statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param \\DateTimeInterface|string|null $operator\n * @param \\DateTimeInterface|string|null $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereTime($column, $operator, $value = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereTime($column, $operator, $value);\n }\n\n /**\n * Add a \"where day\" statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param \\DateTimeInterface|string|int|null $operator\n * @param \\DateTimeInterface|string|int|null $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereDay($column, $operator, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereDay($column, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where day\" statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param \\DateTimeInterface|string|int|null $operator\n * @param \\DateTimeInterface|string|int|null $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereDay($column, $operator, $value = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereDay($column, $operator, $value);\n }\n\n /**\n * Add a \"where month\" statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param \\DateTimeInterface|string|int|null $operator\n * @param \\DateTimeInterface|string|int|null $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereMonth($column, $operator, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereMonth($column, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where month\" statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param \\DateTimeInterface|string|int|null $operator\n * @param \\DateTimeInterface|string|int|null $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereMonth($column, $operator, $value = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereMonth($column, $operator, $value);\n }\n\n /**\n * Add a \"where year\" statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param \\DateTimeInterface|string|int|null $operator\n * @param \\DateTimeInterface|string|int|null $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereYear($column, $operator, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereYear($column, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where year\" statement to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param \\DateTimeInterface|string|int|null $operator\n * @param \\DateTimeInterface|string|int|null $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereYear($column, $operator, $value = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereYear($column, $operator, $value);\n }\n\n /**\n * Add a nested where statement to the query.\n *\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNested($callback, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNested($callback, $boolean);\n }\n\n /**\n * Create a new query instance for nested where condition.\n *\n * @return \\Illuminate\\Database\\Query\\Builder\n * @static\n */\n public static function forNestedWhere()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->forNestedWhere();\n }\n\n /**\n * Add another query builder as a nested where to the query builder.\n *\n * @param \\Illuminate\\Database\\Query\\Builder $query\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function addNestedWhereQuery($query, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->addNestedWhereQuery($query, $boolean);\n }\n\n /**\n * Add an exists clause to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*> $callback\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereExists($callback, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereExists($callback, $boolean, $not);\n }\n\n /**\n * Add an or exists clause to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*> $callback\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereExists($callback, $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereExists($callback, $not);\n }\n\n /**\n * Add a where not exists clause to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*> $callback\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNotExists($callback, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNotExists($callback, $boolean);\n }\n\n /**\n * Add a where not exists clause to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*> $callback\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNotExists($callback)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereNotExists($callback);\n }\n\n /**\n * Add an exists clause to the query.\n *\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function addWhereExistsQuery($query, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->addWhereExistsQuery($query, $boolean, $not);\n }\n\n /**\n * Adds a where condition using row values.\n *\n * @param array $columns\n * @param string $operator\n * @param array $values\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function whereRowValues($columns, $operator, $values, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereRowValues($columns, $operator, $values, $boolean);\n }\n\n /**\n * Adds an or where condition using row values.\n *\n * @param array $columns\n * @param string $operator\n * @param array $values\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereRowValues($columns, $operator, $values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereRowValues($columns, $operator, $values);\n }\n\n /**\n * Add a \"where JSON contains\" clause to the query.\n *\n * @param string $column\n * @param mixed $value\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereJsonContains($column, $value, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereJsonContains($column, $value, $boolean, $not);\n }\n\n /**\n * Add an \"or where JSON contains\" clause to the query.\n *\n * @param string $column\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereJsonContains($column, $value)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereJsonContains($column, $value);\n }\n\n /**\n * Add a \"where JSON not contains\" clause to the query.\n *\n * @param string $column\n * @param mixed $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereJsonDoesntContain($column, $value, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereJsonDoesntContain($column, $value, $boolean);\n }\n\n /**\n * Add an \"or where JSON not contains\" clause to the query.\n *\n * @param string $column\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereJsonDoesntContain($column, $value)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereJsonDoesntContain($column, $value);\n }\n\n /**\n * Add a \"where JSON overlaps\" clause to the query.\n *\n * @param string $column\n * @param mixed $value\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereJsonOverlaps($column, $value, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereJsonOverlaps($column, $value, $boolean, $not);\n }\n\n /**\n * Add an \"or where JSON overlaps\" clause to the query.\n *\n * @param string $column\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereJsonOverlaps($column, $value)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereJsonOverlaps($column, $value);\n }\n\n /**\n * Add a \"where JSON not overlap\" clause to the query.\n *\n * @param string $column\n * @param mixed $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereJsonDoesntOverlap($column, $value, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereJsonDoesntOverlap($column, $value, $boolean);\n }\n\n /**\n * Add an \"or where JSON not overlap\" clause to the query.\n *\n * @param string $column\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereJsonDoesntOverlap($column, $value)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereJsonDoesntOverlap($column, $value);\n }\n\n /**\n * Add a clause that determines if a JSON path exists to the query.\n *\n * @param string $column\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereJsonContainsKey($column, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereJsonContainsKey($column, $boolean, $not);\n }\n\n /**\n * Add an \"or\" clause that determines if a JSON path exists to the query.\n *\n * @param string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereJsonContainsKey($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereJsonContainsKey($column);\n }\n\n /**\n * Add a clause that determines if a JSON path does not exist to the query.\n *\n * @param string $column\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereJsonDoesntContainKey($column, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereJsonDoesntContainKey($column, $boolean);\n }\n\n /**\n * Add an \"or\" clause that determines if a JSON path does not exist to the query.\n *\n * @param string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereJsonDoesntContainKey($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereJsonDoesntContainKey($column);\n }\n\n /**\n * Add a \"where JSON length\" clause to the query.\n *\n * @param string $column\n * @param mixed $operator\n * @param mixed $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereJsonLength($column, $operator, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereJsonLength($column, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where JSON length\" clause to the query.\n *\n * @param string $column\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereJsonLength($column, $operator, $value = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereJsonLength($column, $operator, $value);\n }\n\n /**\n * Handles dynamic \"where\" clauses to the query.\n *\n * @param string $method\n * @param array $parameters\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function dynamicWhere($method, $parameters)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->dynamicWhere($method, $parameters);\n }\n\n /**\n * Add a \"where fulltext\" clause to the query.\n *\n * @param string|string[] $columns\n * @param string $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereFullText($columns, $value, $options = [], $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereFullText($columns, $value, $options, $boolean);\n }\n\n /**\n * Add a \"or where fulltext\" clause to the query.\n *\n * @param string|string[] $columns\n * @param string $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereFullText($columns, $value, $options = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereFullText($columns, $value, $options);\n }\n\n /**\n * Add a \"where\" clause to the query for multiple columns with \"and\" conditions between them.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression[]|\\Closure[]|string[] $columns\n * @param mixed $operator\n * @param mixed $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereAll($columns, $operator = null, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereAll($columns, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where\" clause to the query for multiple columns with \"and\" conditions between them.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression[]|\\Closure[]|string[] $columns\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereAll($columns, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereAll($columns, $operator, $value);\n }\n\n /**\n * Add a \"where\" clause to the query for multiple columns with \"or\" conditions between them.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression[]|\\Closure[]|string[] $columns\n * @param mixed $operator\n * @param mixed $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereAny($columns, $operator = null, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereAny($columns, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where\" clause to the query for multiple columns with \"or\" conditions between them.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression[]|\\Closure[]|string[] $columns\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereAny($columns, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereAny($columns, $operator, $value);\n }\n\n /**\n * Add a \"where not\" clause to the query for multiple columns where none of the conditions should be true.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression[]|\\Closure[]|string[] $columns\n * @param mixed $operator\n * @param mixed $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNone($columns, $operator = null, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNone($columns, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or where not\" clause to the query for multiple columns where none of the conditions should be true.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression[]|\\Closure[]|string[] $columns\n * @param mixed $operator\n * @param mixed $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNone($columns, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereNone($columns, $operator, $value);\n }\n\n /**\n * Add a \"group by\" clause to the query.\n *\n * @param array|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $groups\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function groupBy(...$groups)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->groupBy(...$groups);\n }\n\n /**\n * Add a raw groupBy clause to the query.\n *\n * @param string $sql\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function groupByRaw($sql, $bindings = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->groupByRaw($sql, $bindings);\n }\n\n /**\n * Add a \"having\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|\\Closure|string $column\n * @param \\DateTimeInterface|string|int|float|null $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|\\DateTimeInterface|string|int|float|null $value\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function having($column, $operator = null, $value = null, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->having($column, $operator, $value, $boolean);\n }\n\n /**\n * Add an \"or having\" clause to the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|\\Closure|string $column\n * @param \\DateTimeInterface|string|int|float|null $operator\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|\\DateTimeInterface|string|int|float|null $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orHaving($column, $operator = null, $value = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orHaving($column, $operator, $value);\n }\n\n /**\n * Add a nested having statement to the query.\n *\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function havingNested($callback, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->havingNested($callback, $boolean);\n }\n\n /**\n * Add another query builder as a nested having to the query builder.\n *\n * @param \\Illuminate\\Database\\Query\\Builder $query\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function addNestedHavingQuery($query, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->addNestedHavingQuery($query, $boolean);\n }\n\n /**\n * Add a \"having null\" clause to the query.\n *\n * @param array|string $columns\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function havingNull($columns, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->havingNull($columns, $boolean, $not);\n }\n\n /**\n * Add an \"or having null\" clause to the query.\n *\n * @param string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orHavingNull($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orHavingNull($column);\n }\n\n /**\n * Add a \"having not null\" clause to the query.\n *\n * @param array|string $columns\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function havingNotNull($columns, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->havingNotNull($columns, $boolean);\n }\n\n /**\n * Add an \"or having not null\" clause to the query.\n *\n * @param string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orHavingNotNull($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orHavingNotNull($column);\n }\n\n /**\n * Add a \"having between \" clause to the query.\n *\n * @param string $column\n * @param string $boolean\n * @param bool $not\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function havingBetween($column, $values, $boolean = 'and', $not = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->havingBetween($column, $values, $boolean, $not);\n }\n\n /**\n * Add a raw having clause to the query.\n *\n * @param string $sql\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function havingRaw($sql, $bindings = [], $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->havingRaw($sql, $bindings, $boolean);\n }\n\n /**\n * Add a raw or having clause to the query.\n *\n * @param string $sql\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orHavingRaw($sql, $bindings = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orHavingRaw($sql, $bindings);\n }\n\n /**\n * Add an \"order by\" clause to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @param string $direction\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function orderBy($column, $direction = 'asc')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orderBy($column, $direction);\n }\n\n /**\n * Add a descending \"order by\" clause to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|\\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orderByDesc($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orderByDesc($column);\n }\n\n /**\n * Put the query's results in random order.\n *\n * @param string|int $seed\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function inRandomOrder($seed = '')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->inRandomOrder($seed);\n }\n\n /**\n * Add a raw \"order by\" clause to the query.\n *\n * @param string $sql\n * @param array $bindings\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orderByRaw($sql, $bindings = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orderByRaw($sql, $bindings);\n }\n\n /**\n * Alias to set the \"offset\" value of the query.\n *\n * @param int $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function skip($value)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->skip($value);\n }\n\n /**\n * Set the \"offset\" value of the query.\n *\n * @param int $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function offset($value)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->offset($value);\n }\n\n /**\n * Alias to set the \"limit\" value of the query.\n *\n * @param int $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function take($value)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->take($value);\n }\n\n /**\n * Set the \"limit\" value of the query.\n *\n * @param int $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function limit($value)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->limit($value);\n }\n\n /**\n * Add a \"group limit\" clause to the query.\n *\n * @param int $value\n * @param string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function groupLimit($value, $column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->groupLimit($value, $column);\n }\n\n /**\n * Set the limit and offset for a given page.\n *\n * @param int $page\n * @param int $perPage\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function forPage($page, $perPage = 15)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->forPage($page, $perPage);\n }\n\n /**\n * Constrain the query to the previous \"page\" of results before a given ID.\n *\n * @param int $perPage\n * @param int|null $lastId\n * @param string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function forPageBeforeId($perPage = 15, $lastId = 0, $column = 'id')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->forPageBeforeId($perPage, $lastId, $column);\n }\n\n /**\n * Constrain the query to the next \"page\" of results after a given ID.\n *\n * @param int $perPage\n * @param int|null $lastId\n * @param string $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function forPageAfterId($perPage = 15, $lastId = 0, $column = 'id')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->forPageAfterId($perPage, $lastId, $column);\n }\n\n /**\n * Remove all existing orders and optionally add a new order.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $column\n * @param string $direction\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function reorder($column = null, $direction = 'asc')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->reorder($column, $direction);\n }\n\n /**\n * Add descending \"reorder\" clause to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Contracts\\Database\\Query\\Expression|string|null $column\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function reorderDesc($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->reorderDesc($column);\n }\n\n /**\n * Add a union statement to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*> $query\n * @param bool $all\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function union($query, $all = false)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->union($query, $all);\n }\n\n /**\n * Add a union all statement to the query.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*> $query\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function unionAll($query)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->unionAll($query);\n }\n\n /**\n * Lock the selected rows in the table.\n *\n * @param string|bool $value\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function lock($value = true)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->lock($value);\n }\n\n /**\n * Lock the selected rows in the table for updating.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function lockForUpdate()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->lockForUpdate();\n }\n\n /**\n * Share lock the selected rows in the table.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function sharedLock()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->sharedLock();\n }\n\n /**\n * Register a closure to be invoked before the query is executed.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function beforeQuery($callback)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->beforeQuery($callback);\n }\n\n /**\n * Invoke the \"before query\" modification callbacks.\n *\n * @return void\n * @static\n */\n public static function applyBeforeQueryCallbacks()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n $instance->applyBeforeQueryCallbacks();\n }\n\n /**\n * Get the SQL representation of the query.\n *\n * @return string\n * @static\n */\n public static function toSql()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->toSql();\n }\n\n /**\n * Get the raw SQL representation of the query with embedded bindings.\n *\n * @return string\n * @static\n */\n public static function toRawSql()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->toRawSql();\n }\n\n /**\n * Get a single expression value from the first result of a query.\n *\n * @return mixed\n * @static\n */\n public static function rawValue($expression, $bindings = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->rawValue($expression, $bindings);\n }\n\n /**\n * Get the count of the total records for the paginator.\n *\n * @param array<string|\\Illuminate\\Contracts\\Database\\Query\\Expression> $columns\n * @return int<0, max>\n * @static\n */\n public static function getCountForPagination($columns = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->getCountForPagination($columns);\n }\n\n /**\n * Concatenate values of a given column as a string.\n *\n * @param string $column\n * @param string $glue\n * @return string\n * @static\n */\n public static function implode($column, $glue = '')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->implode($column, $glue);\n }\n\n /**\n * Determine if any rows exist for the current query.\n *\n * @return bool\n * @static\n */\n public static function exists()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->exists();\n }\n\n /**\n * Determine if no rows exist for the current query.\n *\n * @return bool\n * @static\n */\n public static function doesntExist()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->doesntExist();\n }\n\n /**\n * Execute the given callback if no rows exist for the current query.\n *\n * @return mixed\n * @static\n */\n public static function existsOr($callback)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->existsOr($callback);\n }\n\n /**\n * Execute the given callback if rows exist for the current query.\n *\n * @return mixed\n * @static\n */\n public static function doesntExistOr($callback)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->doesntExistOr($callback);\n }\n\n /**\n * Retrieve the \"count\" result of the query.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $columns\n * @return int<0, max>\n * @static\n */\n public static function count($columns = '*')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->count($columns);\n }\n\n /**\n * Retrieve the minimum value of a given column.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return mixed\n * @static\n */\n public static function min($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->min($column);\n }\n\n /**\n * Retrieve the maximum value of a given column.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return mixed\n * @static\n */\n public static function max($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->max($column);\n }\n\n /**\n * Retrieve the sum of the values of a given column.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return mixed\n * @static\n */\n public static function sum($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->sum($column);\n }\n\n /**\n * Retrieve the average of the values of a given column.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return mixed\n * @static\n */\n public static function avg($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->avg($column);\n }\n\n /**\n * Alias for the \"avg\" method.\n *\n * @param \\Illuminate\\Contracts\\Database\\Query\\Expression|string $column\n * @return mixed\n * @static\n */\n public static function average($column)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->average($column);\n }\n\n /**\n * Execute an aggregate function on the database.\n *\n * @param string $function\n * @param array $columns\n * @return mixed\n * @static\n */\n public static function aggregate($function, $columns = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->aggregate($function, $columns);\n }\n\n /**\n * Execute a numeric aggregate function on the database.\n *\n * @param string $function\n * @param array $columns\n * @return float|int\n * @static\n */\n public static function numericAggregate($function, $columns = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->numericAggregate($function, $columns);\n }\n\n /**\n * Insert new records into the database.\n *\n * @return bool\n * @static\n */\n public static function insert($values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->insert($values);\n }\n\n /**\n * Insert new records into the database while ignoring errors.\n *\n * @return int<0, max>\n * @static\n */\n public static function insertOrIgnore($values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->insertOrIgnore($values);\n }\n\n /**\n * Insert a new record and get the value of the primary key.\n *\n * @param string|null $sequence\n * @return int\n * @static\n */\n public static function insertGetId($values, $sequence = null)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->insertGetId($values, $sequence);\n }\n\n /**\n * Insert new records into the table using a subquery.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|string $query\n * @return int\n * @static\n */\n public static function insertUsing($columns, $query)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->insertUsing($columns, $query);\n }\n\n /**\n * Insert new records into the table using a subquery while ignoring errors.\n *\n * @param \\Closure|\\Illuminate\\Database\\Query\\Builder|\\Illuminate\\Database\\Eloquent\\Builder<*>|string $query\n * @return int\n * @static\n */\n public static function insertOrIgnoreUsing($columns, $query)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->insertOrIgnoreUsing($columns, $query);\n }\n\n /**\n * Update records in a PostgreSQL database using the update from syntax.\n *\n * @return int\n * @static\n */\n public static function updateFrom($values)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->updateFrom($values);\n }\n\n /**\n * Insert or update a record matching the attributes, and fill it with values.\n *\n * @return bool\n * @static\n */\n public static function updateOrInsert($attributes, $values = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->updateOrInsert($attributes, $values);\n }\n\n /**\n * Increment the given column's values by the given amounts.\n *\n * @param array<string, float|int|numeric-string> $columns\n * @param array<string, mixed> $extra\n * @return int<0, max>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function incrementEach($columns, $extra = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->incrementEach($columns, $extra);\n }\n\n /**\n * Decrement the given column's values by the given amounts.\n *\n * @param array<string, float|int|numeric-string> $columns\n * @param array<string, mixed> $extra\n * @return int<0, max>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function decrementEach($columns, $extra = [])\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->decrementEach($columns, $extra);\n }\n\n /**\n * Run a truncate statement on the table.\n *\n * @return void\n * @static\n */\n public static function truncate()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n $instance->truncate();\n }\n\n /**\n * Get all of the query builder's columns in a text-only array with all expressions evaluated.\n *\n * @return list<string>\n * @static\n */\n public static function getColumns()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->getColumns();\n }\n\n /**\n * Create a raw database expression.\n *\n * @param mixed $value\n * @return \\Illuminate\\Contracts\\Database\\Query\\Expression\n * @static\n */\n public static function raw($value)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->raw($value);\n }\n\n /**\n * Get the current query value bindings in a flattened array.\n *\n * @return list<mixed>\n * @static\n */\n public static function getBindings()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->getBindings();\n }\n\n /**\n * Get the raw array of bindings.\n *\n * @return \\Illuminate\\Database\\Query\\array{ select: list<mixed>,\n * from: list<mixed>,\n * join: list<mixed>,\n * where: list<mixed>,\n * groupBy: list<mixed>,\n * having: list<mixed>,\n * order: list<mixed>,\n * union: list<mixed>,\n * unionOrder: list<mixed>,\n * }\n * @static\n */\n public static function getRawBindings()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->getRawBindings();\n }\n\n /**\n * Set the bindings on the query builder.\n *\n * @param list<mixed> $bindings\n * @param \"select\"|\"from\"|\"join\"|\"where\"|\"groupBy\"|\"having\"|\"order\"|\"union\"|\"unionOrder\" $type\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function setBindings($bindings, $type = 'where')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->setBindings($bindings, $type);\n }\n\n /**\n * Add a binding to the query.\n *\n * @param mixed $value\n * @param \"select\"|\"from\"|\"join\"|\"where\"|\"groupBy\"|\"having\"|\"order\"|\"union\"|\"unionOrder\" $type\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @throws \\InvalidArgumentException\n * @static\n */\n public static function addBinding($value, $type = 'where')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->addBinding($value, $type);\n }\n\n /**\n * Cast the given binding value.\n *\n * @param mixed $value\n * @return mixed\n * @static\n */\n public static function castBinding($value)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->castBinding($value);\n }\n\n /**\n * Merge an array of bindings into our bindings.\n *\n * @param self $query\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function mergeBindings($query)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->mergeBindings($query);\n }\n\n /**\n * Remove all of the expressions from a list of bindings.\n *\n * @param array<mixed> $bindings\n * @return list<mixed>\n * @static\n */\n public static function cleanBindings($bindings)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->cleanBindings($bindings);\n }\n\n /**\n * Get the database query processor instance.\n *\n * @return \\Illuminate\\Database\\Query\\Processors\\Processor\n * @static\n */\n public static function getProcessor()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->getProcessor();\n }\n\n /**\n * Get the query grammar instance.\n *\n * @return \\Illuminate\\Database\\Query\\Grammars\\Grammar\n * @static\n */\n public static function getGrammar()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->getGrammar();\n }\n\n /**\n * Use the \"write\" PDO connection when executing the query.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function useWritePdo()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->useWritePdo();\n }\n\n /**\n * Clone the query without the given properties.\n *\n * @return static\n * @static\n */\n public static function cloneWithout($properties)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->cloneWithout($properties);\n }\n\n /**\n * Clone the query without the given bindings.\n *\n * @return static\n * @static\n */\n public static function cloneWithoutBindings($except)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->cloneWithoutBindings($except);\n }\n\n /**\n * Dump the current SQL and bindings.\n *\n * @param mixed $args\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function dump(...$args)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->dump(...$args);\n }\n\n /**\n * Dump the raw current SQL with embedded bindings.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function dumpRawSql()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->dumpRawSql();\n }\n\n /**\n * Die and dump the current SQL and bindings.\n *\n * @return never\n * @static\n */\n public static function dd()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->dd();\n }\n\n /**\n * Die and dump the current SQL with embedded bindings.\n *\n * @return never\n * @static\n */\n public static function ddRawSql()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->ddRawSql();\n }\n\n /**\n * Add a where clause to determine if a \"date\" column is in the past to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function wherePast($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->wherePast($columns);\n }\n\n /**\n * Add a where clause to determine if a \"date\" column is in the past or now to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNowOrPast($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNowOrPast($columns);\n }\n\n /**\n * Add an \"or where\" clause to determine if a \"date\" column is in the past to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWherePast($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWherePast($columns);\n }\n\n /**\n * Add a where clause to determine if a \"date\" column is in the past or now to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNowOrPast($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereNowOrPast($columns);\n }\n\n /**\n * Add a where clause to determine if a \"date\" column is in the future to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereFuture($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereFuture($columns);\n }\n\n /**\n * Add a where clause to determine if a \"date\" column is in the future or now to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereNowOrFuture($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereNowOrFuture($columns);\n }\n\n /**\n * Add an \"or where\" clause to determine if a \"date\" column is in the future to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereFuture($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereFuture($columns);\n }\n\n /**\n * Add an \"or where\" clause to determine if a \"date\" column is in the future or now to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereNowOrFuture($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereNowOrFuture($columns);\n }\n\n /**\n * Add a \"where date\" clause to determine if a \"date\" column is today to the query.\n *\n * @param array|string $columns\n * @param string $boolean\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereToday($columns, $boolean = 'and')\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereToday($columns, $boolean);\n }\n\n /**\n * Add a \"where date\" clause to determine if a \"date\" column is before today.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereBeforeToday($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereBeforeToday($columns);\n }\n\n /**\n * Add a \"where date\" clause to determine if a \"date\" column is today or before to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereTodayOrBefore($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereTodayOrBefore($columns);\n }\n\n /**\n * Add a \"where date\" clause to determine if a \"date\" column is after today.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereAfterToday($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereAfterToday($columns);\n }\n\n /**\n * Add a \"where date\" clause to determine if a \"date\" column is today or after to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function whereTodayOrAfter($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->whereTodayOrAfter($columns);\n }\n\n /**\n * Add an \"or where date\" clause to determine if a \"date\" column is today to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereToday($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereToday($columns);\n }\n\n /**\n * Add an \"or where date\" clause to determine if a \"date\" column is before today.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereBeforeToday($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereBeforeToday($columns);\n }\n\n /**\n * Add an \"or where date\" clause to determine if a \"date\" column is today or before to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereTodayOrBefore($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereTodayOrBefore($columns);\n }\n\n /**\n * Add an \"or where date\" clause to determine if a \"date\" column is after today.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereAfterToday($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereAfterToday($columns);\n }\n\n /**\n * Add an \"or where date\" clause to determine if a \"date\" column is today or after to the query.\n *\n * @param array|string $columns\n * @return \\Illuminate\\Database\\Eloquent\\Builder<static>\n * @static\n */\n public static function orWhereTodayOrAfter($columns)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->orWhereTodayOrAfter($columns);\n }\n\n /**\n * Explains the query.\n *\n * @return \\Illuminate\\Support\\Collection\n * @static\n */\n public static function explain()\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->explain();\n }\n\n /**\n * Register a custom macro.\n *\n * @param string $name\n * @param object|callable $macro\n * @param-closure-this static $macro\n * @return void\n * @static\n */\n public static function macro($name, $macro)\n {\n \\Illuminate\\Database\\Query\\Builder::macro($name, $macro);\n }\n\n /**\n * Mix another object into the class.\n *\n * @param object $mixin\n * @param bool $replace\n * @return void\n * @throws \\ReflectionException\n * @static\n */\n public static function mixin($mixin, $replace = true)\n {\n \\Illuminate\\Database\\Query\\Builder::mixin($mixin, $replace);\n }\n\n /**\n * Flush the existing macros.\n *\n * @return void\n * @static\n */\n public static function flushMacros()\n {\n \\Illuminate\\Database\\Query\\Builder::flushMacros();\n }\n\n /**\n * Dynamically handle calls to the class.\n *\n * @param string $method\n * @param array $parameters\n * @return mixed\n * @throws \\BadMethodCallException\n * @static\n */\n public static function macroCall($method, $parameters)\n {\n /** @var \\Illuminate\\Database\\Query\\Builder $instance */\n return $instance->macroCall($method, $parameters);\n }\n\n}\n class Event extends \\Illuminate\\Support\\Facades\\Event {}\n class File extends \\Illuminate\\Support\\Facades\\File {}\n class Gate extends \\Illuminate\\Support\\Facades\\Gate {}\n class Hash extends \\Illuminate\\Support\\Facades\\Hash {}\n class Http extends \\Illuminate\\Support\\Facades\\Http {}\n class Js extends \\Illuminate\\Support\\Js {}\n class Lang extends \\Illuminate\\Support\\Facades\\Lang {}\n class Log extends \\Illuminate\\Support\\Facades\\Log {}\n class Mail extends \\Illuminate\\Support\\Facades\\Mail {}\n class Notification extends \\Illuminate\\Support\\Facades\\Notification {}\n class Number extends \\Illuminate\\Support\\Number {}\n class Password extends \\Illuminate\\Support\\Facades\\Password {}\n class Process extends \\Illuminate\\Support\\Facades\\Process {}\n class Queue extends \\Illuminate\\Support\\Facades\\Queue {}\n class RateLimiter extends \\Illuminate\\Support\\Facades\\RateLimiter {}\n class Redirect extends \\Illuminate\\Support\\Facades\\Redirect {}\n class Request extends \\Illuminate\\Support\\Facades\\Request {}\n class Response extends \\Illuminate\\Support\\Facades\\Response {}\n class Route extends \\Illuminate\\Support\\Facades\\Route {}\n class Schedule extends \\Illuminate\\Support\\Facades\\Schedule {}\n class Schema extends \\Illuminate\\Support\\Facades\\Schema {}\n class Session extends \\Illuminate\\Support\\Facades\\Session {}\n class Storage extends \\Illuminate\\Support\\Facades\\Storage {}\n class Str extends \\Illuminate\\Support\\Str {}\n class Uri extends \\Illuminate\\Support\\Uri {}\n class URL extends \\Illuminate\\Support\\Facades\\URL {}\n class Validator extends \\Illuminate\\Support\\Facades\\Validator {}\n class View extends \\Illuminate\\Support\\Facades\\View {}\n class Vite extends \\Illuminate\\Support\\Facades\\Vite {}\n class AWS extends \\Aws\\Laravel\\AwsFacade {}\n class Avatar extends \\Laravolt\\Avatar\\Facade {}\n class Fractal extends \\Spatie\\Fractal\\Facades\\Fractal {}\n class Laratrust extends \\Laratrust\\LaratrustFacade {}\n class RedisManager extends \\Illuminate\\Support\\Facades\\Redis {}\n class Sentry extends \\Sentry\\Laravel\\Facade {}\n class Statsd extends \\League\\StatsD\\Laravel5\\Facade\\StatsdFacade {}\n class Debugbar extends \\Barryvdh\\Debugbar\\Facades\\Debugbar {}\n class PDF extends \\Barryvdh\\DomPDF\\Facade\\Pdf {}\n class Pdf extends \\Barryvdh\\DomPDF\\Facade\\Pdf {}\n class Datadog extends \\ChaseConey\\LaravelDatadogHelper\\Datadog {}\n class Flare extends \\Spatie\\LaravelIgnition\\Facades\\Flare {}\n class Hashids extends \\Vinkla\\Hashids\\Facades\\Hashids {}\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"19","depth":4,"bounds":{"left":0.6296542,"top":0.10055866,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.6409575,"top":0.09896249,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.64827126,"top":0.09896249,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","depth":4,"bounds":{"left":0.42885637,"top":0.09736632,"width":0.5711436,"height":0.8818835},"on_screen":true,"lines":[{"char_start":207,"char_count":30,"bounds":{"left":0.42885637,"top":0.0,"width":0.07513298,"height":0.014365523}},{"char_start":237,"char_count":36,"bounds":{"left":0.42885637,"top":0.0,"width":0.09075798,"height":0.014365523}},{"char_start":273,"char_count":32,"bounds":{"left":0.42885637,"top":0.0,"width":0.080119684,"height":0.014365523}},{"char_start":305,"char_count":79,"bounds":{"left":0.42885637,"top":0.0,"width":0.20212767,"height":0.014365523}},{"char_start":384,"char_count":18,"bounds":{"left":0.42885637,"top":0.0,"width":0.043882977,"height":0.014365523}},{"char_start":402,"char_count":21,"bounds":{"left":0.42885637,"top":0.0,"width":0.051861703,"height":0.014365523}},{"char_start":423,"char_count":48,"bounds":{"left":0.42885637,"top":0.008778931,"width":0.12167553,"height":0.014365523}},{"char_start":471,"char_count":72,"bounds":{"left":0.42885637,"top":0.026336791,"width":0.18384309,"height":0.014365523}},{"char_start":543,"char_count":40,"bounds":{"left":0.42885637,"top":0.043894652,"width":0.10106383,"height":0.014365523}},{"char_start":583,"char_count":41,"bounds":{"left":0.42885637,"top":0.061452515,"width":0.10372341,"height":0.014365523}},{"char_start":624,"char_count":72,"bounds":{"left":0.42885637,"top":0.079010375,"width":0.18384309,"height":0.014365523}},{"char_start":696,"char_count":219,"bounds":{"left":0.42885637,"top":0.096568234,"width":0.56515956,"height":0.014365523}},{"char_start":915,"char_count":83,"bounds":{"left":0.42885637,"top":0.11412609,"width":0.21243352,"height":0.014365523}},{"char_start":998,"char_count":20,"bounds":{"left":0.42885637,"top":0.13168396,"width":0.04920213,"height":0.014365523}},{"char_start":1018,"char_count":17,"bounds":{"left":0.42885637,"top":0.14924182,"width":0.041223403,"height":0.014365523}},{"char_start":1035,"char_count":203,"bounds":{"left":0.42885637,"top":0.16679968,"width":0.52360374,"height":0.014365523}},{"char_start":1238,"char_count":22,"bounds":{"left":0.42885637,"top":0.18435754,"width":0.05418883,"height":0.014365523}},{"char_start":1260,"char_count":23,"bounds":{"left":0.42885637,"top":0.2019154,"width":0.056848403,"height":0.014365523}},{"char_start":1283,"char_count":10,"bounds":{"left":0.42885637,"top":0.21947326,"width":0.023271276,"height":0.014365523}},{"char_start":1293,"char_count":27,"bounds":{"left":0.42885637,"top":0.23703113,"width":0.06715426,"height":0.014365523}},{"char_start":1320,"char_count":26,"bounds":{"left":0.42885637,"top":0.254589,"width":0.06482713,"height":0.014365523}},{"char_start":1346,"char_count":23,"bounds":{"left":0.42885637,"top":0.27214685,"width":0.056848403,"height":0.014365523}},{"char_start":1369,"char_count":28,"bounds":{"left":0.42885637,"top":0.2897047,"width":0.06981383,"height":0.014365523}}],"value":"[2026-05-07 14:21:15] local.INFO: [Hubspot] DEBUG Getting headers {\n\"headers\":{\n\"Date\":[\"Thu,07 May 2026 14:21:15 GMT\"],\n \"Content-Type\":[\"application/json;charset=utf-8\"],\n \"Transfer-Encoding\":[\"chunked\"],\n \"Connection\":[\"keep-alive\"],\n \"CF-Ray\":[\"9f80deb8db60dc3a-SOF\"],\n \"CF-Cache-Status\":[\"DYNAMIC\"],\n \"Strict-Transport-Security\":[\"max-age=31536000; includeSubDomains; preload\"],\n \"Vary\":[\"origin,\n accept-encoding\"],\n \"access-control-allow-credentials\":[\"false\"],\n \"server-timing\":[\"hcid;desc=\\\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\\\",\n cfr;desc=\\\"9f80deb8e7c6dc3a-IAD\\\"\"],\n \"x-content-type-options\":[\"nosniff\"],\n \"x-hubspot-correlation-id\":[\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\"],\n \"Set-Cookie\":[\"__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-1.0.1.1-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEsOkXMSEShjK0hGYxNhUGM1ZoBpX7BcFZcHEjA7Cs_.SMUhUnd2nYjko; path=/; expires=Thu,\n 07-May-26 14:51:15 GMT; domain=.hubapi.com; HttpOnly; Secure; SameSite=None\"],\n \"Report-To\":[\"{\n\\\"endpoints\\\":[{\n\\\"url\\\":\\\"https:\\\\/\\\\/a.nel.cloudflare.com\\\\/report\\\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn3O%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTzo6FM4%2BdUIjURO8srzKSvJgZ%2BQ6R79arKQw3uHLlX\\\"}],\n\\\"group\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"NEL\":[\"{\n\\\"success_fraction\\\":0.01,\n\\\"report_to\\\":\\\"cf-nel\\\",\n\\\"max_age\\\":604800}\"],\n\"Server\":[\"cloudflare\"]}} {\n\"correlation_id\":\"95236535-ec98-4541-b92a-adfa73b69eab\",\n\"trace_id\":\"c7ab8365-903f-46d4-9403-0e5b551e3545\"}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6908084031734223470
|
-4461000910654451772
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Built-in Preview
Chrome
Firefox
Safari
Sync Changes
Hide This Notification
Code changed:
Hide
Analyzing…
<?php
/* @noinspection ALL */
// @formatter:off
// phpcs:ignoreFile
/**
* A helper file for Laravel, to provide autocomplete information to your IDE
* Generated for Laravel 12.33.0.
*
* This file should not be included in your code, only analyzed by your IDE!
*
* @author Barry vd. Heuvel <[EMAIL]>
* @see [URL_WITH_CREDENTIALS] string
* @static
*/
public static function inferBasePath()
{
return \Illuminate\Foundation\Application::inferBasePath();
}
/**
* Get the version number of the application.
*
* @return string
* @static
*/
public static function version()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->version();
}
/**
* Run the given array of bootstrap classes.
*
* @param string[] $bootstrappers
* @return void
* @static
*/
public static function bootstrapWith($bootstrappers)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->bootstrapWith($bootstrappers);
}
/**
* Register a callback to run after loading the environment.
*
* @param \Closure $callback
* @return void
* @static
*/
public static function afterLoadingEnvironment($callback)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->afterLoadingEnvironment($callback);
}
/**
* Register a callback to run before a bootstrapper.
*
* @param string $bootstrapper
* @param \Closure $callback
* @return void
* @static
*/
public static function beforeBootstrapping($bootstrapper, $callback)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->beforeBootstrapping($bootstrapper, $callback);
}
/**
* Register a callback to run after a bootstrapper.
*
* @param string $bootstrapper
* @param \Closure $callback
* @return void
* @static
*/
public static function afterBootstrapping($bootstrapper, $callback)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->afterBootstrapping($bootstrapper, $callback);
}
/**
* Determine if the application has been bootstrapped before.
*
* @return bool
* @static
*/
public static function hasBeenBootstrapped()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->hasBeenBootstrapped();
}
/**
* Set the base path for the application.
*
* @param string $basePath
* @return \Illuminate\Foundation\Application
* @static
*/
public static function setBasePath($basePath)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->setBasePath($basePath);
}
/**
* Get the path to the application "app" directory.
*
* @param string $path
* @return string
* @static
*/
public static function path($path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->path($path);
}
/**
* Set the application directory.
*
* @param string $path
* @return \Illuminate\Foundation\Application
* @static
*/
public static function useAppPath($path)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->useAppPath($path);
}
/**
* Get the base path of the Laravel installation.
*
* @param string $path
* @return string
* @static
*/
public static function basePath($path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->basePath($path);
}
/**
* Get the path to the bootstrap directory.
*
* @param string $path
* @return string
* @static
*/
public static function bootstrapPath($path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->bootstrapPath($path);
}
/**
* Get the path to the service provider list in the bootstrap directory.
*
* @return string
* @static
*/
public static function getBootstrapProvidersPath()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getBootstrapProvidersPath();
}
/**
* Set the bootstrap file directory.
*
* @param string $path
* @return \Illuminate\Foundation\Application
* @static
*/
public static function useBootstrapPath($path)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->useBootstrapPath($path);
}
/**
* Get the path to the application configuration files.
*
* @param string $path
* @return string
* @static
*/
public static function configPath($path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->configPath($path);
}
/**
* Set the configuration directory.
*
* @param string $path
* @return \Illuminate\Foundation\Application
* @static
*/
public static function useConfigPath($path)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->useConfigPath($path);
}
/**
* Get the path to the database directory.
*
* @param string $path
* @return string
* @static
*/
public static function databasePath($path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->databasePath($path);
}
/**
* Set the database directory.
*
* @param string $path
* @return \Illuminate\Foundation\Application
* @static
*/
public static function useDatabasePath($path)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->useDatabasePath($path);
}
/**
* Get the path to the language files.
*
* @param string $path
* @return string
* @static
*/
public static function langPath($path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->langPath($path);
}
/**
* Set the language file directory.
*
* @param string $path
* @return \Illuminate\Foundation\Application
* @static
*/
public static function useLangPath($path)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->useLangPath($path);
}
/**
* Get the path to the public / web directory.
*
* @param string $path
* @return string
* @static
*/
public static function publicPath($path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->publicPath($path);
}
/**
* Set the public / web directory.
*
* @param string $path
* @return \Illuminate\Foundation\Application
* @static
*/
public static function usePublicPath($path)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->usePublicPath($path);
}
/**
* Get the path to the storage directory.
*
* @param string $path
* @return string
* @static
*/
public static function storagePath($path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->storagePath($path);
}
/**
* Set the storage directory.
*
* @param string $path
* @return \Illuminate\Foundation\Application
* @static
*/
public static function useStoragePath($path)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->useStoragePath($path);
}
/**
* Get the path to the resources directory.
*
* @param string $path
* @return string
* @static
*/
public static function resourcePath($path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->resourcePath($path);
}
/**
* Get the path to the views directory.
*
* This method returns the first configured path in the array of view paths.
*
* @param string $path
* @return string
* @static
*/
public static function viewPath($path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->viewPath($path);
}
/**
* Join the given paths together.
*
* @param string $basePath
* @param string $path
* @return string
* @static
*/
public static function joinPaths($basePath, $path = '')
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->joinPaths($basePath, $path);
}
/**
* Get the path to the environment file directory.
*
* @return string
* @static
*/
public static function environmentPath()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->environmentPath();
}
/**
* Set the directory for the environment file.
*
* @param string $path
* @return \Illuminate\Foundation\Application
* @static
*/
public static function useEnvironmentPath($path)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->useEnvironmentPath($path);
}
/**
* Set the environment file to be loaded during bootstrapping.
*
* @param string $file
* @return \Illuminate\Foundation\Application
* @static
*/
public static function loadEnvironmentFrom($file)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->loadEnvironmentFrom($file);
}
/**
* Get the environment file the application is using.
*
* @return string
* @static
*/
public static function environmentFile()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->environmentFile();
}
/**
* Get the fully qualified path to the environment file.
*
* @return string
* @static
*/
public static function environmentFilePath()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->environmentFilePath();
}
/**
* Get or check the current application environment.
*
* @param string|array $environments
* @return string|bool
* @static
*/
public static function environment(...$environments)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->environment(...$environments);
}
/**
* Determine if the application is in the local environment.
*
* @return bool
* @static
*/
public static function isLocal()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->isLocal();
}
/**
* Determine if the application is in the production environment.
*
* @return bool
* @static
*/
public static function isProduction()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->isProduction();
}
/**
* Detect the application's current environment.
*
* @param \Closure $callback
* @return string
* @static
*/
public static function detectEnvironment($callback)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->detectEnvironment($callback);
}
/**
* Determine if the application is running in the console.
*
* @return bool
* @static
*/
public static function runningInConsole()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->runningInConsole();
}
/**
* Determine if the application is running any of the given console commands.
*
* @param string|array $commands
* @return bool
* @static
*/
public static function runningConsoleCommand(...$commands)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->runningConsoleCommand(...$commands);
}
/**
* Determine if the application is running unit tests.
*
* @return bool
* @static
*/
public static function runningUnitTests()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->runningUnitTests();
}
/**
* Determine if the application is running with debug mode enabled.
*
* @return bool
* @static
*/
public static function hasDebugModeEnabled()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->hasDebugModeEnabled();
}
/**
* Register a new registered listener.
*
* @param callable $callback
* @return void
* @static
*/
public static function registered($callback)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->registered($callback);
}
/**
* Register all of the configured providers.
*
* @return void
* @static
*/
public static function registerConfiguredProviders()
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->registerConfiguredProviders();
}
/**
* Register a service provider with the application.
*
* @param \Illuminate\Support\ServiceProvider|string $provider
* @param bool $force
* @return \Illuminate\Support\ServiceProvider
* @static
*/
public static function register($provider, $force = false)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->register($provider, $force);
}
/**
* Get the registered service provider instance if it exists.
*
* @param \Illuminate\Support\ServiceProvider|string $provider
* @return \Illuminate\Support\ServiceProvider|null
* @static
*/
public static function getProvider($provider)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getProvider($provider);
}
/**
* Get the registered service provider instances if any exist.
*
* @param \Illuminate\Support\ServiceProvider|string $provider
* @return array
* @static
*/
public static function getProviders($provider)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getProviders($provider);
}
/**
* Resolve a service provider instance from the class name.
*
* @param string $provider
* @return \Illuminate\Support\ServiceProvider
* @static
*/
public static function resolveProvider($provider)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->resolveProvider($provider);
}
/**
* Load and boot all of the remaining deferred providers.
*
* @return void
* @static
*/
public static function loadDeferredProviders()
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->loadDeferredProviders();
}
/**
* Load the provider for a deferred service.
*
* @param string $service
* @return void
* @static
*/
public static function loadDeferredProvider($service)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->loadDeferredProvider($service);
}
/**
* Register a deferred provider and service.
*
* @param string $provider
* @param string|null $service
* @return void
* @static
*/
public static function registerDeferredProvider($provider, $service = null)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->registerDeferredProvider($provider, $service);
}
/**
* Resolve the given type from the container.
*
* @template TClass of object
* @param string|class-string<TClass> $abstract
* @param array $parameters
* @return ($abstract is class-string<TClass> ? TClass : mixed)
* @throws \Illuminate\Contracts\Container\BindingResolutionException
* @static
*/
public static function make($abstract, $parameters = [])
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->make($abstract, $parameters);
}
/**
* Determine if the given abstract type has been bound.
*
* @param string $abstract
* @return bool
* @static
*/
public static function bound($abstract)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->bound($abstract);
}
/**
* Determine if the application has booted.
*
* @return bool
* @static
*/
public static function isBooted()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->isBooted();
}
/**
* Boot the application's service providers.
*
* @return void
* @static
*/
public static function boot()
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->boot();
}
/**
* Register a new boot listener.
*
* @param callable $callback
* @return void
* @static
*/
public static function booting($callback)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->booting($callback);
}
/**
* Register a new "booted" listener.
*
* @param callable $callback
* @return void
* @static
*/
public static function booted($callback)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->booted($callback);
}
/**
* {@inheritdoc}
*
* @return \Symfony\Component\HttpFoundation\Response
* @static
*/
public static function handle($request, $type = 1, $catch = true)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->handle($request, $type, $catch);
}
/**
* Handle the incoming HTTP request and send the response to the browser.
*
* @param \Illuminate\Http\Request $request
* @return void
* @static
*/
public static function handleRequest($request)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->handleRequest($request);
}
/**
* Handle the incoming Artisan command.
*
* @param \Symfony\Component\Console\Input\InputInterface $input
* @return int
* @static
*/
public static function handleCommand($input)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->handleCommand($input);
}
/**
* Determine if the framework's base configuration should be merged.
*
* @return bool
* @static
*/
public static function shouldMergeFrameworkConfiguration()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->shouldMergeFrameworkConfiguration();
}
/**
* Indicate that the framework's base configuration should not be merged.
*
* @return \Illuminate\Foundation\Application
* @static
*/
public static function dontMergeFrameworkConfiguration()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->dontMergeFrameworkConfiguration();
}
/**
* Determine if middleware has been disabled for the application.
*
* @return bool
* @static
*/
public static function shouldSkipMiddleware()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->shouldSkipMiddleware();
}
/**
* Get the path to the cached services.php file.
*
* @return string
* @static
*/
public static function getCachedServicesPath()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getCachedServicesPath();
}
/**
* Get the path to the cached packages.php file.
*
* @return string
* @static
*/
public static function getCachedPackagesPath()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getCachedPackagesPath();
}
/**
* Determine if the application configuration is cached.
*
* @return bool
* @static
*/
public static function configurationIsCached()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->configurationIsCached();
}
/**
* Get the path to the configuration cache file.
*
* @return string
* @static
*/
public static function getCachedConfigPath()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getCachedConfigPath();
}
/**
* Determine if the application routes are cached.
*
* @return bool
* @static
*/
public static function routesAreCached()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->routesAreCached();
}
/**
* Get the path to the routes cache file.
*
* @return string
* @static
*/
public static function getCachedRoutesPath()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getCachedRoutesPath();
}
/**
* Determine if the application events are cached.
*
* @return bool
* @static
*/
public static function eventsAreCached()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->eventsAreCached();
}
/**
* Get the path to the events cache file.
*
* @return string
* @static
*/
public static function getCachedEventsPath()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getCachedEventsPath();
}
/**
* Add new prefix to list of absolute path prefixes.
*
* @param string $prefix
* @return \Illuminate\Foundation\Application
* @static
*/
public static function addAbsoluteCachePathPrefix($prefix)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->addAbsoluteCachePathPrefix($prefix);
}
/**
* Get an instance of the maintenance mode manager implementation.
*
* @return \Illuminate\Contracts\Foundation\MaintenanceMode
* @static
*/
public static function maintenanceMode()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->maintenanceMode();
}
/**
* Determine if the application is currently down for maintenance.
*
* @return bool
* @static
*/
public static function isDownForMaintenance()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->isDownForMaintenance();
}
/**
* Throw an HttpException with the given data.
*
* @param int $code
* @param string $message
* @param array $headers
* @return never
* @throws \Symfony\Component\HttpKernel\Exception\HttpException
* @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
* @static
*/
public static function abort($code, $message = '', $headers = [])
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->abort($code, $message, $headers);
}
/**
* Register a terminating callback with the application.
*
* @param callable|string $callback
* @return \Illuminate\Foundation\Application
* @static
*/
public static function terminating($callback)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->terminating($callback);
}
/**
* Terminate the application.
*
* @return void
* @static
*/
public static function terminate()
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->terminate();
}
/**
* Get the service providers that have been loaded.
*
* @return array<string, bool>
* @static
*/
public static function getLoadedProviders()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getLoadedProviders();
}
/**
* Determine if the given service provider is loaded.
*
* @param string $provider
* @return bool
* @static
*/
public static function providerIsLoaded($provider)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->providerIsLoaded($provider);
}
/**
* Get the application's deferred services.
*
* @return array
* @static
*/
public static function getDeferredServices()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getDeferredServices();
}
/**
* Set the application's deferred services.
*
* @param array $services
* @return void
* @static
*/
public static function setDeferredServices($services)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->setDeferredServices($services);
}
/**
* Determine if the given service is a deferred service.
*
* @param string $service
* @return bool
* @static
*/
public static function isDeferredService($service)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->isDeferredService($service);
}
/**
* Add an array of services to the application's deferred services.
*
* @param array $services
* @return void
* @static
*/
public static function addDeferredServices($services)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->addDeferredServices($services);
}
/**
* Remove an array of services from the application's deferred services.
*
* @param array $services
* @return void
* @static
*/
public static function removeDeferredServices($services)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->removeDeferredServices($services);
}
/**
* Configure the real-time facade namespace.
*
* @param string $namespace
* @return void
* @static
*/
public static function provideFacades($namespace)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->provideFacades($namespace);
}
/**
* Get the current application locale.
*
* @return string
* @static
*/
public static function getLocale()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getLocale();
}
/**
* Get the current application locale.
*
* @return string
* @static
*/
public static function currentLocale()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->currentLocale();
}
/**
* Get the current application fallback locale.
*
* @return string
* @static
*/
public static function getFallbackLocale()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getFallbackLocale();
}
/**
* Set the current application locale.
*
* @param string $locale
* @return void
* @static
*/
public static function setLocale($locale)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->setLocale($locale);
}
/**
* Set the current application fallback locale.
*
* @param string $fallbackLocale
* @return void
* @static
*/
public static function setFallbackLocale($fallbackLocale)
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->setFallbackLocale($fallbackLocale);
}
/**
* Determine if the application locale is the given locale.
*
* @param string $locale
* @return bool
* @static
*/
public static function isLocale($locale)
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->isLocale($locale);
}
/**
* Register the core class aliases in the container.
*
* @return void
* @static
*/
public static function registerCoreContainerAliases()
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->registerCoreContainerAliases();
}
/**
* Flush the container of all bindings and resolved instances.
*
* @return void
* @static
*/
public static function flush()
{
/** @var \Illuminate\Foundation\Application $instance */
$instance->flush();
}
/**
* Get the application namespace.
*
* @return string
* @throws \RuntimeException
* @static
*/
public static function getNamespace()
{
/** @var \Illuminate\Foundation\Application $instance */
return $instance->getNamespace();
}
/**
* Define a contextual binding.
*
* @param array|string $concrete
* @return \Illuminate\Contracts\Container\ContextualBindingBuilder
* @static
*/
public static function when($concrete)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->when($concrete);
}
/**
* Define a contextual binding based on an attribute.
*
* @param string $attribute
* @param \Closure $handler
* @return void
* @static
*/
public static function whenHasAttribute($attribute, $handler)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->whenHasAttribute($attribute, $handler);
}
/**
* Returns true if the container can return an entry for the given identifier.
*
* Returns false otherwise.
*
* `has($id)` returning true does not mean that `get($id)` will not throw an exception.
* It does however mean that `get($id)` will not throw a `NotFoundExceptionInterface`.
*
* @return bool
* @param string $id Identifier of the entry to look for.
* @return bool
* @static
*/
public static function has($id)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->has($id);
}
/**
* Determine if the given abstract type has been resolved.
*
* @param string $abstract
* @return bool
* @static
*/
public static function resolved($abstract)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->resolved($abstract);
}
/**
* Determine if a given type is shared.
*
* @param string $abstract
* @return bool
* @static
*/
public static function isShared($abstract)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->isShared($abstract);
}
/**
* Determine if a given string is an alias.
*
* @param string $name
* @return bool
* @static
*/
public static function isAlias($name)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->isAlias($name);
}
/**
* Register a binding with the container.
*
* @param \Closure|string $abstract
* @param \Closure|string|null $concrete
* @param bool $shared
* @return void
* @throws \TypeError
* @throws ReflectionException
* @static
*/
public static function bind($abstract, $concrete = null, $shared = false)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->bind($abstract, $concrete, $shared);
}
/**
* Determine if the container has a method binding.
*
* @param string $method
* @return bool
* @static
*/
public static function hasMethodBinding($method)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->hasMethodBinding($method);
}
/**
* Bind a callback to resolve with Container::call.
*
* @param array|string $method
* @param \Closure $callback
* @return void
* @static
*/
public static function bindMethod($method, $callback)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->bindMethod($method, $callback);
}
/**
* Get the method binding for the given method.
*
* @param string $method
* @param mixed $instance
* @return mixed
* @static
*/
public static function callMethodBinding($method, $instance)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->callMethodBinding($method, $instance);
}
/**
* Add a contextual binding to the container.
*
* @param string $concrete
* @param \Closure|string $abstract
* @param \Closure|string $implementation
* @return void
* @static
*/
public static function addContextualBinding($concrete, $abstract, $implementation)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->addContextualBinding($concrete, $abstract, $implementation);
}
/**
* Register a binding if it hasn't already been registered.
*
* @param \Closure|string $abstract
* @param \Closure|string|null $concrete
* @param bool $shared
* @return void
* @static
*/
public static function bindIf($abstract, $concrete = null, $shared = false)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->bindIf($abstract, $concrete, $shared);
}
/**
* Register a shared binding in the container.
*
* @param \Closure|string $abstract
* @param \Closure|string|null $concrete
* @return void
* @static
*/
public static function singleton($abstract, $concrete = null)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->singleton($abstract, $concrete);
}
/**
* Register a shared binding if it hasn't already been registered.
*
* @param \Closure|string $abstract
* @param \Closure|string|null $concrete
* @return void
* @static
*/
public static function singletonIf($abstract, $concrete = null)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->singletonIf($abstract, $concrete);
}
/**
* Register a scoped binding in the container.
*
* @param \Closure|string $abstract
* @param \Closure|string|null $concrete
* @return void
* @static
*/
public static function scoped($abstract, $concrete = null)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->scoped($abstract, $concrete);
}
/**
* Register a scoped binding if it hasn't already been registered.
*
* @param \Closure|string $abstract
* @param \Closure|string|null $concrete
* @return void
* @static
*/
public static function scopedIf($abstract, $concrete = null)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->scopedIf($abstract, $concrete);
}
/**
* "Extend" an abstract type in the container.
*
* @param string $abstract
* @param \Closure $closure
* @return void
* @throws \InvalidArgumentException
* @static
*/
public static function extend($abstract, $closure)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->extend($abstract, $closure);
}
/**
* Register an existing instance as shared in the container.
*
* @template TInstance of mixed
* @param string $abstract
* @param TInstance $instance
* @return TInstance
* @static
*/
public static function instance($abstract, $instance)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->instance($abstract, $instance);
}
/**
* Assign a set of tags to a given binding.
*
* @param array|string $abstracts
* @param mixed $tags
* @return void
* @static
*/
public static function tag($abstracts, $tags)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->tag($abstracts, $tags);
}
/**
* Resolve all of the bindings for a given tag.
*
* @param string $tag
* @return iterable
* @static
*/
public static function tagged($tag)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->tagged($tag);
}
/**
* Alias a type to a different name.
*
* @param string $abstract
* @param string $alias
* @return void
* @throws \LogicException
* @static
*/
public static function alias($abstract, $alias)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->alias($abstract, $alias);
}
/**
* Bind a new callback to an abstract's rebind event.
*
* @param string $abstract
* @param \Closure $callback
* @return mixed
* @static
*/
public static function rebinding($abstract, $callback)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->rebinding($abstract, $callback);
}
/**
* Refresh an instance on the given target and method.
*
* @param string $abstract
* @param mixed $target
* @param string $method
* @return mixed
* @static
*/
public static function refresh($abstract, $target, $method)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->refresh($abstract, $target, $method);
}
/**
* Wrap the given closure such that its dependencies will be injected when executed.
*
* @param \Closure $callback
* @param array $parameters
* @return \Closure
* @static
*/
public static function wrap($callback, $parameters = [])
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->wrap($callback, $parameters);
}
/**
* Call the given Closure / class@method and inject its dependencies.
*
* @param callable|string $callback
* @param array<string, mixed> $parameters
* @param string|null $defaultMethod
* @return mixed
* @throws \InvalidArgumentException
* @static
*/
public static function call($callback, $parameters = [], $defaultMethod = null)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->call($callback, $parameters, $defaultMethod);
}
/**
* Get a closure to resolve the given type from the container.
*
* @template TClass of object
* @param string|class-string<TClass> $abstract
* @return ($abstract is class-string<TClass> ? \Closure(): TClass : \Closure(): mixed)
* @static
*/
public static function factory($abstract)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->factory($abstract);
}
/**
* An alias function name for make().
*
* @template TClass of object
* @param string|class-string<TClass>|callable $abstract
* @param array $parameters
* @return ($abstract is class-string<TClass> ? TClass : mixed)
* @throws \Illuminate\Contracts\Container\BindingResolutionException
* @static
*/
public static function makeWith($abstract, $parameters = [])
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
return $instance->makeWith($abstract, $parameters);
}
/**
* {@inheritdoc}
*
* @template TClass of object
* @param string|class-string<TClass> $id
* @return ($id is class-string<TClass> ? TClass : mixed)
* @static
*/
public static function get($id)
{
//Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $i...
|
16364
|
NULL
|
NULL
|
NULL
|
|
25200
|
1057
|
2
|
2026-05-12T10:49:30.355024+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-12/1778 /Users/lukas/.screenpipe/data/data/2026-05-12/1778582970355_m2.jpg...
|
Firefox
|
JY-20725 add HS rate limit handling on activities JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app — Work...
|
True
|
github.com/jiminny/app/pull/12066#discussion_r3225 github.com/jiminny/app/pull/12066#discussion_r3225003426...
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Unnamed Group
TypeError: League\Flysystem\Filesyst Unnamed Group
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
CloudWatch | us-east-2
CloudWatch | us-east-2
Unnamed Group
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
Pipelines - jiminny/app
Pipelines - jiminny/app
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20773] User Pilot not receiving events on report generated - Jira
[JY-20773] User Pilot not receiving events on report generated - Jira
JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app
JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app
[JY-20776] Automated report - sentry - Jira
[JY-20776] Automated report - sentry - Jira
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app
JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app
Data Explorer
Data Explorer
[JY-20776] Automated report - sentry - Jira
[JY-20776] Automated report - sentry - Jira
Jiminny
Jiminny
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
Platform Team - Backlog - Jira
Platform Team - Backlog - Jira
[JY-20773] User Pilot not receiving events on report generated - Jira
[JY-20773] User Pilot not receiving events on report generated - Jira
JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app
JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app
Pipelines - jiminny/app
Pipelines - jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (32)
Pull requests
(
32
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality (1)
Security and quality
(
1
)
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20725 add HS rate limit handling on activities rematching #12066 Edit title
JY-20725 add HS rate limit handling on activities rematching
#
12066
Edit title
Unable to merge
Unable to merge
Code
Code
Open
LakyLak
LakyLak
wants to merge 4 commits into
master
master
from
JY-20725-handle-HS-search-rate-limit
JY-20725-handle-HS-search-rate-limit
Copy head branch name to clipboard
Lines changed: 775 additions & 249 deletions
Conversation (7)
Conversation
(
7
)
Commits (4)
Commits
(
4
)
Checks (6)
Checks
(
6
)
Files changed (12)
Files changed
(
12
)
Open
JY-20725 add HS rate limit handling on activities rematching #12066 LakyLak wants to merge 4 commits into master from JY-20725-handle-HS-search-rate-limit Copy head branch name to clipboard
JY-20725 add HS rate limit handling on activities rematching
JY-20725 add HS rate limit handling on activities rematching
#
12066
LakyLak
LakyLak
wants to merge 4 commits into
master
master
from
JY-20725-handle-HS-search-rate-limit
JY-20725-handle-HS-search-rate-limit
Copy head branch name to clipboard
Conversation
Conversation
@LakyLak
Show options
LakyLak commented yesterday •
LakyLak
LakyLak
commented
yesterday
yesterday
•
edited
edited
JIRA: JY-20725
JIRA:
JY-20725
JY-20725
Changes:
Changes:
The purpose is to handle rate limit on search requests (from getPaginatedData) used during activity rematching.
Adds
HandleHubspotRateLimit
middleware (release jobs with delay)
Adds
executeRequest
wrapper in Hubspot Client. It handles 429 errors and throws
RateLimitException
Add or remove reactions
LakyLak
LakyLak
added
2
commits
yesterday
yesterday
@LakyLak
JY-20725
JY-20725
add HS rate limit handling on activities rematching
add HS rate limit handling on activities rematching
8 / 10 checks OK
44d5678
44d5678
@LakyLak
JY-20725
JY-20725
add tests
add tests
11 / 12 checks OK
cbed2c9
cbed2c9
@LakyLak
Show options
Author
LakyLak commented yesterday
LakyLak
LakyLak
commented
yesterday
yesterday
@claude
@claude
Add or remove reactions
react with eyes
👀
1
@claude
Show options
claude Bot commented yesterday •
claude
claude
Bot
commented
yesterday
yesterday
•
edited
edited
Claude finished
@LakyLak
@LakyLak
's task in 1m 42s
——
View job
View job
Code Review
Code Review
Completed task
Gathering context
Completed task
Reading changed files
Completed task
Analyzing code quality
Completed task
Posting review feedback
Overall this is a well-thought-out implementation. The circuit-breaker pattern using Redis NX, the jitter for thundering-herd prevention, and the log-sampling strategy are all solid. A few issues worth addressing before merge:
Issues
Issues
1. Batch API calls bypass rate-limit handling
batchReadObjects()
in
Client.php
(lines 296–319) calls the HubSpot batch APIs directly without going through
executeRequest()
. If the batch endpoints return 429s, those exceptions will not set the Redis circuit-breaker and will not be wrapped in
RateLimitException
, so the middleware won't catch them.
// batchReadObjects — no executeRequest() wrapping
$
response
=
$
batchConfig
[
'
api
'
]->
read
(
$
batchReadRequest
);
Copy code to clipboard
Given the search endpoints can also hit rate limits during pagination-heavy rematching, the batch calls could too. Consider wrapping the batch call similarly, or at least catching 429 from batch APIs and converting them to
RateLimitException
.
Fix this →
Fix this →
2. Circuit-breaker key is scoped to CRM config ID, not HubSpot portal
getRateLimitCacheKey()
(
Client.php:120
) returns
hubspot:ratelimit:portal:{configId}
, but
$this->config->getId()
is the CRM
configuration
record ID, not the HubSpot portal/account ID. If multiple CRM configuration records share the same HubSpot portal (e.g. re-connections), each will have its own independent circuit-breaker. A 429 received via config A will not suppress requests from config B even though they share the same quota.
If configs are always 1:1 with portals this is fine, but it's worth confirming or renaming the key to avoid misleading future readers:
// If config IDs == portal IDs, rename to make intent clear:
return
sprintf
(
'
hubspot:ratelimit:config:%d
'
,
$
this
->
config
->
getId
());
Copy code to clipboard
3.
isHubspotRateLimit()
and
parseRetryAfter()
are
public
but not in the interface
These two methods (...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Unnamed Group","depth":4,"bounds":{"left":0.0028257978,"top":0.057063047,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"TypeError: League\\Flysystem\\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app","depth":4,"bounds":{"left":0.0028257978,"top":0.08060654,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"TypeError: League\\Flysystem\\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app","depth":5,"bounds":{"left":0.015957447,"top":0.09217877,"width":0.40492022,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"bounds":{"left":0.0028257978,"top":0.11332801,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"bounds":{"left":0.015957447,"top":0.12490024,"width":0.04138963,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Unnamed Group","depth":4,"bounds":{"left":0.0028257978,"top":0.15123703,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app","depth":4,"bounds":{"left":0.0028257978,"top":0.17478053,"width":0.07679521,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app","depth":5,"bounds":{"left":0.015957447,"top":0.18635276,"width":0.16888298,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira","depth":4,"bounds":{"left":0.0,"top":0.207502,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.21907422,"width":0.16140293,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.24022347,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.25179568,"width":0.18816489,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.27294493,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pipelines - jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.28451717,"width":0.039228722,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.3056664,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.31723863,"width":0.04537899,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20773] User Pilot not receiving events on report generated - Jira","depth":4,"bounds":{"left":0.0,"top":0.33838788,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20773] User Pilot not receiving events on report generated - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.3499601,"width":0.1200133,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.37110934,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.38268158,"width":0.1931516,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20776] Automated report - sentry - Jira","depth":4,"bounds":{"left":0.0,"top":0.4038308,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20776] Automated report - sentry - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.41540304,"width":0.07646277,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.0,"top":0.4365523,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.4481245,"width":0.10106383,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.46927375,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.48084596,"width":0.15159574,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Data Explorer","depth":4,"bounds":{"left":0.0,"top":0.5019952,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Data Explorer","depth":5,"bounds":{"left":0.013297873,"top":0.51356745,"width":0.0234375,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20776] Automated report - sentry - Jira","depth":4,"bounds":{"left":0.0,"top":0.53471667,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20776] Automated report - sentry - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.5462889,"width":0.07646277,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.0,"top":0.5674381,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.013297873,"top":0.57901037,"width":0.013131649,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.60015965,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.6117318,"width":0.18816489,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":4,"bounds":{"left":0.0,"top":0.6328811,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[SRD-6793] Les Mills activity types not pulling in - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.6444533,"width":0.09524601,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Platform Team - Backlog - Jira","depth":4,"bounds":{"left":0.0,"top":0.66560256,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Team - Backlog - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.6771748,"width":0.053025264,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20773] User Pilot not receiving events on report generated - Jira","depth":4,"bounds":{"left":0.0,"top":0.698324,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20773] User Pilot not receiving events on report generated - Jira","depth":5,"bounds":{"left":0.013297873,"top":0.70989627,"width":0.1200133,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.7310455,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.7426177,"width":0.1931516,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.76376694,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pipelines - jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.7753392,"width":0.039228722,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":4,"bounds":{"left":0.0,"top":0.7964884,"width":0.07962101,"height":0.032721467},"on_screen":true,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app","depth":5,"bounds":{"left":0.013297873,"top":0.80806065,"width":0.18816489,"height":0.010774142},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.06732048,"top":0.8036712,"width":0.007978723,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.0028257978,"top":0.8308061,"width":0.07413564,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.0028257978,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.013796543,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.024933511,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.036070477,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.04720745,"top":0.97007185,"width":0.010638298,"height":0.025538707},"on_screen":true,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to content","depth":6,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Homepage (g then d)","depth":9,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"jiminny","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"jiminny","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"app","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"app","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"on_screen":false,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Create new...","depth":9,"on_screen":false,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"All issues(g then i)","depth":9,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"All pull requests","depth":9,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"All repositories","depth":9,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"You have unread notifications(g then n)","depth":9,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open user navigation menu","depth":9,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (32)","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"32","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Wiki","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Wiki","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality (1)","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Settings","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Settings","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.","depth":10,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"JY-20725 add HS rate limit handling on activities rematching #12066 Edit title","depth":13,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JY-20725 add HS rate limit handling on activities rematching","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"12066","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Edit title","depth":14,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Unable to merge","depth":13,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Unable to merge","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":13,"on_screen":false,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Code","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Open","depth":13,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LakyLak","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LakyLak","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"wants to merge 4 commits into","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"master","depth":15,"on_screen":false,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"master","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"from","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"JY-20725-handle-HS-search-rate-limit","depth":16,"on_screen":false,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy head branch name to clipboard","depth":16,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Lines changed: 775 additions & 249 deletions","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Conversation (7)","depth":16,"on_screen":false,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"Conversation","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"7","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Commits (4)","depth":16,"on_screen":false,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Commits","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Checks (6)","depth":16,"on_screen":false,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Checks","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"6","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Files changed (12)","depth":16,"on_screen":false,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Files changed","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"12","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Open","depth":14,"bounds":{"left":0.34840426,"top":0.0726257,"width":0.011968086,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"JY-20725 add HS rate limit handling on activities rematching #12066 LakyLak wants to merge 4 commits into master from JY-20725-handle-HS-search-rate-limit Copy head branch name to clipboard","depth":14,"bounds":{"left":0.36702126,"top":0.058260176,"width":0.20628324,"height":0.042298485},"on_screen":true,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"JY-20725 add HS rate limit handling on activities rematching","depth":16,"bounds":{"left":0.36702126,"top":0.05865922,"width":0.13646941,"height":0.01915403},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725 add HS rate limit handling on activities rematching","depth":17,"bounds":{"left":0.36702126,"top":0.06304868,"width":0.13646941,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"bounds":{"left":0.50615025,"top":0.06304868,"width":0.0029920214,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"12066","depth":16,"bounds":{"left":0.5091423,"top":0.06304868,"width":0.013464096,"height":0.013567438},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LakyLak","depth":18,"bounds":{"left":0.36702126,"top":0.08339984,"width":0.016123671,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LakyLak","depth":19,"bounds":{"left":0.36702126,"top":0.08339984,"width":0.016123671,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"wants to merge 4 commits into","depth":18,"bounds":{"left":0.38447472,"top":0.08339984,"width":0.05817819,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"master","depth":18,"bounds":{"left":0.44398272,"top":0.08180367,"width":0.018284574,"height":0.015163607},"on_screen":true,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"master","depth":19,"bounds":{"left":0.4459774,"top":0.083798885,"width":0.014295213,"height":0.011572227},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"from","depth":19,"bounds":{"left":0.4635971,"top":0.08339984,"width":0.00880984,"height":0.011971269},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"JY-20725-handle-HS-search-rate-limit","depth":19,"bounds":{"left":0.4737367,"top":0.08180367,"width":0.090259306,"height":0.015163607},"on_screen":true,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit","depth":20,"bounds":{"left":0.47573137,"top":0.083798885,"width":0.086269945,"height":0.011572227},"on_screen":true,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy head branch name to clipboard","depth":19,"bounds":{"left":0.5653258,"top":0.07821229,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Conversation","depth":12,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Conversation","depth":13,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@LakyLak","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Show options","depth":15,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"LakyLak commented yesterday •","depth":14,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"LakyLak","depth":16,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LakyLak","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"commented","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"yesterday","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"yesterday","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"edited","depth":17,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"edited","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"JIRA: JY-20725","depth":16,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"JIRA:","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"JY-20725","depth":17,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Changes:","depth":16,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Changes:","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"The purpose is to handle rate limit on search requests (from getPaginatedData) used during activity rematching.","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Adds","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"HandleHubspotRateLimit","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"middleware (release jobs with delay)","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Adds","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"executeRequest","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"wrapper in Hubspot Client. It handles 429 errors and throws","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"RateLimitException","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add or remove reactions","depth":16,"on_screen":false,"help_text":"","role_description":"summary","subrole":"AXSummary","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"LakyLak","depth":14,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LakyLak","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"added","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"commits","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"yesterday","depth":14,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"yesterday","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@LakyLak","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"JY-20725","depth":14,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"add HS rate limit handling on activities rematching","depth":14,"on_screen":false,"help_text":"JY-20725 add HS rate limit handling on activities rematching","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"add HS rate limit handling on activities rematching","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"8 / 10 checks OK","depth":14,"on_screen":false,"help_text":"","role_description":"summary","subrole":"AXSummary","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"44d5678","depth":14,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"44d5678","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@LakyLak","depth":12,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"JY-20725","depth":14,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20725","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"add tests","depth":14,"on_screen":false,"help_text":"JY-20725 add tests","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"add tests","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"11 / 12 checks OK","depth":14,"on_screen":false,"help_text":"","role_description":"summary","subrole":"AXSummary","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"cbed2c9","depth":14,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"cbed2c9","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@LakyLak","depth":13,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Show options","depth":14,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Author","depth":15,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"LakyLak commented yesterday","depth":13,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"LakyLak","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LakyLak","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"commented","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"yesterday","depth":14,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"yesterday","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@claude","depth":17,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"@claude","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add or remove reactions","depth":15,"on_screen":false,"help_text":"","role_description":"summary","subrole":"AXSummary","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"react with eyes","depth":14,"on_screen":false,"role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"👀","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@claude","depth":13,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Show options","depth":14,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"claude Bot commented yesterday •","depth":13,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"claude","depth":15,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Bot","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"commented","depth":14,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"yesterday","depth":14,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"yesterday","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"•","depth":16,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"edited","depth":16,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"edited","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude finished","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@LakyLak","depth":18,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"@LakyLak","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'s task in 1m 42s","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"——","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"View job","depth":17,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"View job","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Code Review","depth":16,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Code Review","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Completed task","depth":18,"on_screen":false,"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Gathering context","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Completed task","depth":18,"on_screen":false,"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Reading changed files","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Completed task","depth":18,"on_screen":false,"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Analyzing code quality","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Completed task","depth":18,"on_screen":false,"help_text":"","role_description":"checkbox","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Posting review feedback","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Overall this is a well-thought-out implementation. The circuit-breaker pattern using Redis NX, the jitter for thundering-herd prevention, and the log-sampling strategy are all solid. A few issues worth addressing before merge:","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Issues","depth":16,"on_screen":false,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Issues","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"1. Batch API calls bypass rate-limit handling","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"batchReadObjects()","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"in","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Client.php","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(lines 296–319) calls the HubSpot batch APIs directly without going through","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"executeRequest()","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":". If the batch endpoints return 429s, those exceptions will not set the Redis circuit-breaker and will not be wrapped in","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"RateLimitException","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", so the middleware won't catch them.","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"// batchReadObjects — no executeRequest() wrapping","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"response","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"=","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"batchConfig","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"[","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"api","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"]->","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"read","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"batchReadRequest","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":");","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy code to clipboard","depth":17,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Given the search endpoints can also hit rate limits during pagination-heavy rematching, the batch calls could too. Consider wrapping the batch call similarly, or at least catching 429 from batch APIs and converting them to","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"RateLimitException","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix this →","depth":17,"on_screen":false,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix this →","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2. Circuit-breaker key is scoped to CRM config ID, not HubSpot portal","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"getRateLimitCacheKey()","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Client.php:120","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":") returns","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"hubspot:ratelimit:portal:{configId}","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", but","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$this->config->getId()","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"is the CRM","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"configuration","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"record ID, not the HubSpot portal/account ID. If multiple CRM configuration records share the same HubSpot portal (e.g. re-connections), each will have its own independent circuit-breaker. A 429 received via config A will not suppress requests from config B even though they share the same quota.","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"If configs are always 1:1 with portals this is fine, but it's worth confirming or renaming the key to avoid misleading future readers:","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"// If config IDs == portal IDs, rename to make intent clear:","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"return","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"sprintf","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"hubspot:ratelimit:config:%d","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"'","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"$","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"this","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"config","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"->","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"getId","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"());","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy code to clipboard","depth":17,"on_screen":false,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"3.","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"isHubspotRateLimit()","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"parseRetryAfter()","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"are","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"public","depth":19,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"but not in the interface","depth":18,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"These two methods (","depth":17,"on_screen":false,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-6907615763776397077
|
-849136398291406716
|
idle
|
accessibility
|
NULL
|
Unnamed Group
TypeError: League\Flysystem\Filesyst Unnamed Group
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
TypeError: League\Flysystem\Filesystem::has(): Argument #1 ($location) must be of type string, null given, called in /home/jiminny/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php on line 218 — jiminny — app
CloudWatch | us-east-2
CloudWatch | us-east-2
Unnamed Group
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
Jy 20820 es reindex stream model hydration by Vasil-Jiminny · Pull Request #12059 · jiminny/app
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
[JY-20725] [HubSpot] Optimise CRM rematching on delete hubspot accounts/contacts - Jira
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
Pipelines - jiminny/app
Pipelines - jiminny/app
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20773] User Pilot not receiving events on report generated - Jira
[JY-20773] User Pilot not receiving events on report generated - Jira
JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app
JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app
[JY-20776] Automated report - sentry - Jira
[JY-20776] Automated report - sentry - Jira
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 3 Q2 - Platform Team - Scrum Board - Jira
JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app
JY-20625 | JY-20742 | MCP POC by yalokin-jiminny · Pull Request #12036 · jiminny/app
Data Explorer
Data Explorer
[JY-20776] Automated report - sentry - Jira
[JY-20776] Automated report - sentry - Jira
Jiminny
Jiminny
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
[SRD-6793] Les Mills activity types not pulling in - Jira
[SRD-6793] Les Mills activity types not pulling in - Jira
Platform Team - Backlog - Jira
Platform Team - Backlog - Jira
[JY-20773] User Pilot not receiving events on report generated - Jira
[JY-20773] User Pilot not receiving events on report generated - Jira
JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app
JY-20773 fix user pilot tracking for automated report generated by LakyLak · Pull Request #12024 · jiminny/app
Pipelines - jiminny/app
Pipelines - jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
JY-20725 add HS rate limit handling on activities rematching by LakyLak · Pull Request #12066 · jiminny/app
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
jiminny
jiminny
app
app
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
All issues(g then i)
All pull requests
All repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Pull requests (32)
Pull requests
(
32
)
Agents
Agents
Actions
Actions
Wiki
Wiki
Security and quality (1)
Security and quality
(
1
)
Insights
Insights
Settings
Settings
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
JY-20725 add HS rate limit handling on activities rematching #12066 Edit title
JY-20725 add HS rate limit handling on activities rematching
#
12066
Edit title
Unable to merge
Unable to merge
Code
Code
Open
LakyLak
LakyLak
wants to merge 4 commits into
master
master
from
JY-20725-handle-HS-search-rate-limit
JY-20725-handle-HS-search-rate-limit
Copy head branch name to clipboard
Lines changed: 775 additions & 249 deletions
Conversation (7)
Conversation
(
7
)
Commits (4)
Commits
(
4
)
Checks (6)
Checks
(
6
)
Files changed (12)
Files changed
(
12
)
Open
JY-20725 add HS rate limit handling on activities rematching #12066 LakyLak wants to merge 4 commits into master from JY-20725-handle-HS-search-rate-limit Copy head branch name to clipboard
JY-20725 add HS rate limit handling on activities rematching
JY-20725 add HS rate limit handling on activities rematching
#
12066
LakyLak
LakyLak
wants to merge 4 commits into
master
master
from
JY-20725-handle-HS-search-rate-limit
JY-20725-handle-HS-search-rate-limit
Copy head branch name to clipboard
Conversation
Conversation
@LakyLak
Show options
LakyLak commented yesterday •
LakyLak
LakyLak
commented
yesterday
yesterday
•
edited
edited
JIRA: JY-20725
JIRA:
JY-20725
JY-20725
Changes:
Changes:
The purpose is to handle rate limit on search requests (from getPaginatedData) used during activity rematching.
Adds
HandleHubspotRateLimit
middleware (release jobs with delay)
Adds
executeRequest
wrapper in Hubspot Client. It handles 429 errors and throws
RateLimitException
Add or remove reactions
LakyLak
LakyLak
added
2
commits
yesterday
yesterday
@LakyLak
JY-20725
JY-20725
add HS rate limit handling on activities rematching
add HS rate limit handling on activities rematching
8 / 10 checks OK
44d5678
44d5678
@LakyLak
JY-20725
JY-20725
add tests
add tests
11 / 12 checks OK
cbed2c9
cbed2c9
@LakyLak
Show options
Author
LakyLak commented yesterday
LakyLak
LakyLak
commented
yesterday
yesterday
@claude
@claude
Add or remove reactions
react with eyes
👀
1
@claude
Show options
claude Bot commented yesterday •
claude
claude
Bot
commented
yesterday
yesterday
•
edited
edited
Claude finished
@LakyLak
@LakyLak
's task in 1m 42s
——
View job
View job
Code Review
Code Review
Completed task
Gathering context
Completed task
Reading changed files
Completed task
Analyzing code quality
Completed task
Posting review feedback
Overall this is a well-thought-out implementation. The circuit-breaker pattern using Redis NX, the jitter for thundering-herd prevention, and the log-sampling strategy are all solid. A few issues worth addressing before merge:
Issues
Issues
1. Batch API calls bypass rate-limit handling
batchReadObjects()
in
Client.php
(lines 296–319) calls the HubSpot batch APIs directly without going through
executeRequest()
. If the batch endpoints return 429s, those exceptions will not set the Redis circuit-breaker and will not be wrapped in
RateLimitException
, so the middleware won't catch them.
// batchReadObjects — no executeRequest() wrapping
$
response
=
$
batchConfig
[
'
api
'
]->
read
(
$
batchReadRequest
);
Copy code to clipboard
Given the search endpoints can also hit rate limits during pagination-heavy rematching, the batch calls could too. Consider wrapping the batch call similarly, or at least catching 429 from batch APIs and converting them to
RateLimitException
.
Fix this →
Fix this →
2. Circuit-breaker key is scoped to CRM config ID, not HubSpot portal
getRateLimitCacheKey()
(
Client.php:120
) returns
hubspot:ratelimit:portal:{configId}
, but
$this->config->getId()
is the CRM
configuration
record ID, not the HubSpot portal/account ID. If multiple CRM configuration records share the same HubSpot portal (e.g. re-connections), each will have its own independent circuit-breaker. A 429 received via config A will not suppress requests from config B even though they share the same quota.
If configs are always 1:1 with portals this is fine, but it's worth confirming or renaming the key to avoid misleading future readers:
// If config IDs == portal IDs, rename to make intent clear:
return
sprintf
(
'
hubspot:ratelimit:config:%d
'
,
$
this
->
config
->
getId
());
Copy code to clipboard
3.
isHubspotRateLimit()
and
parseRetryAfter()
are
public
but not in the interface
These two methods (...
|
25198
|
NULL
|
NULL
|
NULL
|