Compare commits

..

2 Commits

Author SHA1 Message Date
185da1edbb Fix validación en hero() y CORS para ngrok
- SupplierController: corregir respuesta de error del validador, bank_account acepta numeric, rfc/bank/bank_account required al crear
- Cors: permitir header ngrok-skip-browser-warning

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 09:46:47 -06:00
47f211e4ab Fix validación en hero() y CORS para ngrok
- SupplierController: corregir respuesta de error del validador, bank_account acepta numeric, rfc/bank/bank_account required al crear
- Cors: permitir header ngrok-skip-browser-warning

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 09:45:50 -06:00
5 changed files with 306 additions and 29 deletions

BIN
.rnd

Binary file not shown.

View File

@@ -101,7 +101,7 @@ class SupplierController extends Controller
'company_name' => 'required|string', 'company_name' => 'required|string',
'cover_photo' => 'mimetypes:image/jpeg,image/png,image/jpg|max:2048', 'cover_photo' => 'mimetypes:image/jpeg,image/png,image/jpg|max:2048',
'categories' => 'required|string', 'categories' => 'required|string',
'tags' => 'required|string', 'tags' => 'nullable|string',
'CURP' => 'unique:suppliers|nullable|string|size:18', 'CURP' => 'unique:suppliers|nullable|string|size:18',
'RFC' => 'string|size:14|nullable', 'RFC' => 'string|size:14|nullable',
'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/', 'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/',
@@ -117,7 +117,7 @@ class SupplierController extends Controller
'company_name' => 'required|string', 'company_name' => 'required|string',
'cover_photo' => 'mimetypes:image/jpeg,image/png,image/jpg|max:2048', 'cover_photo' => 'mimetypes:image/jpeg,image/png,image/jpg|max:2048',
'categories' => 'required|string', 'categories' => 'required|string',
'tags' => 'required|string', 'tags' => 'nullable|string',
'CURP' => 'string|size:18|nullable', 'CURP' => 'string|size:18|nullable',
'RFC' => 'unique:suppliers|nullable|string|size:13', 'RFC' => 'unique:suppliers|nullable|string|size:13',
'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/', 'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/',
@@ -148,7 +148,7 @@ class SupplierController extends Controller
'company_name' => 'required|string', 'company_name' => 'required|string',
'cover_photo' => 'required|mimetypes:image/jpeg,image/png,image/jpg|max:2048', 'cover_photo' => 'required|mimetypes:image/jpeg,image/png,image/jpg|max:2048',
'categories' => 'required|string', 'categories' => 'required|string',
'tags' => 'required|string', 'tags' => 'nullable|string',
'CURP' => 'unique:suppliers|nullable|string|size:18', 'CURP' => 'unique:suppliers|nullable|string|size:18',
'RFC' => 'string|size:14|nullable', 'RFC' => 'string|size:14|nullable',
'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/', 'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/',
@@ -164,7 +164,7 @@ class SupplierController extends Controller
'company_name' => 'required|string', 'company_name' => 'required|string',
'cover_photo' => 'required|mimetypes:image/jpeg,image/png,image/jpg|max:2048', 'cover_photo' => 'required|mimetypes:image/jpeg,image/png,image/jpg|max:2048',
'categories' => 'required|string', 'categories' => 'required|string',
'tags' => 'required|string', 'tags' => 'nullable|string',
'CURP' => 'string|size:18|nullable', 'CURP' => 'string|size:18|nullable',
'RFC' => 'unique:suppliers|nullable|string|size:13', 'RFC' => 'unique:suppliers|nullable|string|size:13',
'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/', 'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/',
@@ -182,7 +182,7 @@ class SupplierController extends Controller
'company_name.required' => 'Se requiere el nombre de la empresa', 'company_name.required' => 'Se requiere el nombre de la empresa',
'cover_photo.required' => 'Se requiere una foto de portada', 'cover_photo.required' => 'Se requiere una foto de portada',
'categories.required' => 'Se requiere una categoría', 'categories.required' => 'Se requiere una categoría',
'tags.required' => 'Se requiere un tag', //'tags.required' => 'Se requiere un tag',
'RFC.required' => 'Se requiere un RFC', 'RFC.required' => 'Se requiere un RFC',
'CURP.required' => 'Se requiere un CURP', 'CURP.required' => 'Se requiere un CURP',
'RFC.unique' => 'RFC ya registrado', 'RFC.unique' => 'RFC ya registrado',
@@ -371,7 +371,7 @@ class SupplierController extends Controller
'categories' => 'required|string', 'categories' => 'required|string',
'tags' => 'nullable|string', 'tags' => 'nullable|string',
'bank' => 'nullable|numeric', 'bank' => 'nullable|numeric',
'bank_account' => 'nullable|string', 'bank_account' => 'nullable|numeric',
'fee' => 'nullable|numeric', 'fee' => 'nullable|numeric',
'address' => 'string', 'address' => 'string',
'lat' => 'numeric|nullable', 'lat' => 'numeric|nullable',
@@ -419,7 +419,7 @@ class SupplierController extends Controller
'categories' => 'required|string', 'categories' => 'required|string',
'tags' => 'nullable|string', 'tags' => 'nullable|string',
'bank' => 'nullable|numeric', 'bank' => 'nullable|numeric',
'bank_account' => 'nullable|string', 'bank_account' => 'nullable|numeric',
'fee' => 'nullable|numeric', 'fee' => 'nullable|numeric',
'address' => 'required|string', 'address' => 'required|string',
'lat' => 'required|numeric', 'lat' => 'required|numeric',
@@ -431,11 +431,11 @@ class SupplierController extends Controller
} else { } else {
$rules = [ $rules = [
'name' => 'required|string', 'name' => 'required|string',
'rfc' => 'nullable|string', 'rfc' => 'required|string',
'categories' => 'required|string', 'categories' => 'required|string',
'tags' => 'nullable|string', 'tags' => 'nullable|string',
'bank' => 'nullable|numeric', 'bank' => 'required|numeric',
'bank_account' => 'nullable|string', 'bank_account' => 'required|numeric',
'fee' => 'nullable|numeric', 'fee' => 'nullable|numeric',
'address' => 'required|string', 'address' => 'required|string',
'lat' => 'required|numeric', 'lat' => 'required|numeric',
@@ -482,16 +482,16 @@ class SupplierController extends Controller
$messages = [ $messages = [
'name.required' => 'Se requiere el nombre de la empresa', 'name.required' => 'Se requiere el nombre de la empresa',
'categories.required' => 'Se requiere una categoría', 'categories.required' => 'Se requiere una categoría',
'tags.required' => 'Se requiere un tag', //'tags.required' => 'Se requiere un tag',
//'RFC.required' => 'Se requiere un RFC', 'RFC.required' => 'Se requiere un RFC',
//'CURP.required' => 'Se requiere un CURP', //'CURP.required' => 'Se requiere un CURP',
//'RFC.unique' => 'RFC ya registrado', 'RFC.unique' => 'RFC ya registrado',
//'CURP.unique' => 'CURP ya registrado', //'CURP.unique' => 'CURP ya registrado',
//'RFC.size' => 'RFC no valido', 'RFC.size' => 'RFC no valido',
//'CURP.size' => 'CURP no valido', //'CURP.size' => 'CURP no valido',
//'taxes_id.required' => 'Se requiere un regimen fiscal', //'taxes_id.required' => 'Se requiere un regimen fiscal',
//'clabe.required' => 'Se requiere una CLABE interbancaria', //'clabe.required' => 'Se requiere una CLABE interbancaria',
//'minimun_fee.required' => 'Se requiere un monto mínimo a cobrar', 'minimun_fee.required' => 'Se requiere un monto mínimo a cobrar',
'address.required' => 'Se requiere una dirección', 'address.required' => 'Se requiere una dirección',
'lat.required' => 'Se requiere una dirección válida, si ya hay una dirección escrita, favor de volverla a escribir', 'lat.required' => 'Se requiere una dirección válida, si ya hay una dirección escrita, favor de volverla a escribir',
'lng.required' => 'Se requiere una dirección válida, si ya hay una dirección escrita, favor de volverla a escribir', 'lng.required' => 'Se requiere una dirección válida, si ya hay una dirección escrita, favor de volverla a escribir',
@@ -499,7 +499,7 @@ class SupplierController extends Controller
$validator = Validator::make($request->all(), $rules, $messages); $validator = Validator::make($request->all(), $rules, $messages);
if ($validator->fails()) { if ($validator->fails()) {
return response()->json($validator); return response()->json($validator->errors(), 422);
} }
$supplier = Suppliers::where('user_id', $user->id)->first(); $supplier = Suppliers::where('user_id', $user->id)->first();
@@ -550,7 +550,7 @@ class SupplierController extends Controller
*/ */
$supplier->RFC = strip_tags($request->rfc); $supplier->RFC = strip_tags($request->rfc);
$supplier->clabe = strip_tags($request->bank_account); $supplier->clabe = (string) $request->bank_account;
$supplier->bank_id = $request->bank; $supplier->bank_id = $request->bank;
$supplier->minimun_fee = $request->fee ?? 150; $supplier->minimun_fee = $request->fee ?? 150;
$supplier->address = strip_tags($request->address); $supplier->address = strip_tags($request->address);
@@ -611,7 +611,7 @@ class SupplierController extends Controller
*/ */
$supplier->RFC = strip_tags($request->rfc); $supplier->RFC = strip_tags($request->rfc);
$supplier->clabe = strip_tags($request->bank_account); $supplier->clabe = (string) $request->bank_account;
$supplier->bank_id = $request->bank; $supplier->bank_id = $request->bank;
$supplier->minimun_fee = $request->fee ?? 150; $supplier->minimun_fee = $request->fee ?? 150;
$supplier->address = strip_tags($request->address); $supplier->address = strip_tags($request->address);
@@ -674,7 +674,7 @@ class SupplierController extends Controller
'company_name' => 'required|string', 'company_name' => 'required|string',
'cover_photo' => 'mimetypes:image/jpeg,image/png,image/jpg|max:2048', 'cover_photo' => 'mimetypes:image/jpeg,image/png,image/jpg|max:2048',
'categories' => 'required|string', 'categories' => 'required|string',
'tags' => 'required|string', 'tags' => 'nullable|string',
'CURP' => 'unique:suppliers|nullable|string|size:18', 'CURP' => 'unique:suppliers|nullable|string|size:18',
'RFC' => 'string|size:14|nullable', 'RFC' => 'string|size:14|nullable',
'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/', 'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/',
@@ -690,7 +690,7 @@ class SupplierController extends Controller
'company_name' => 'required|string', 'company_name' => 'required|string',
'cover_photo' => 'mimetypes:image/jpeg,image/png,image/jpg|max:2048', 'cover_photo' => 'mimetypes:image/jpeg,image/png,image/jpg|max:2048',
'categories' => 'required|string', 'categories' => 'required|string',
'tags' => 'required|string', 'tags' => 'nullable|string',
'CURP' => 'string|size:18|nullable', 'CURP' => 'string|size:18|nullable',
'RFC' => 'unique:suppliers|nullable|string|size:13', 'RFC' => 'unique:suppliers|nullable|string|size:13',
'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/', 'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/',
@@ -721,7 +721,7 @@ class SupplierController extends Controller
'company_name' => 'required|string', 'company_name' => 'required|string',
'cover_photo' => 'required|mimetypes:image/jpeg,image/png,image/jpg|max:2048', 'cover_photo' => 'required|mimetypes:image/jpeg,image/png,image/jpg|max:2048',
'categories' => 'required|string', 'categories' => 'required|string',
'tags' => 'required|string', 'tags' => 'nullable|string',
'CURP' => 'unique:suppliers|nullable|string|size:18', 'CURP' => 'unique:suppliers|nullable|string|size:18',
'RFC' => 'string|size:14|nullable', 'RFC' => 'string|size:14|nullable',
'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/', 'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/',
@@ -737,7 +737,7 @@ class SupplierController extends Controller
'company_name' => 'required|string', 'company_name' => 'required|string',
'cover_photo' => 'required|mimetypes:image/jpeg,image/png,image/jpg|max:2048', 'cover_photo' => 'required|mimetypes:image/jpeg,image/png,image/jpg|max:2048',
'categories' => 'required|string', 'categories' => 'required|string',
'tags' => 'required|string', 'tags' => 'nullable|string',
'CURP' => 'string|size:18|nullable', 'CURP' => 'string|size:18|nullable',
'RFC' => 'unique:suppliers|nullable|string|size:13', 'RFC' => 'unique:suppliers|nullable|string|size:13',
'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/', 'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/',
@@ -755,7 +755,7 @@ class SupplierController extends Controller
'company_name.required' => 'Se requiere el nombre de la empresa', 'company_name.required' => 'Se requiere el nombre de la empresa',
'cover_photo.required' => 'Se requiere una foto de portada', 'cover_photo.required' => 'Se requiere una foto de portada',
'categories.required' => 'Se requiere una categoría', 'categories.required' => 'Se requiere una categoría',
'tags.required' => 'Se requiere un tag', //'tags.required' => 'Se requiere un tag',
'RFC.required' => 'Se requiere un RFC', 'RFC.required' => 'Se requiere un RFC',
'CURP.required' => 'Se requiere un CURP', 'CURP.required' => 'Se requiere un CURP',
'RFC.unique' => 'RFC ya registrado', 'RFC.unique' => 'RFC ya registrado',
@@ -997,7 +997,7 @@ class SupplierController extends Controller
'company_name' => 'required|string', 'company_name' => 'required|string',
'cover_photo' => 'mimetypes:image/jpeg,image/png,image/jpg|max:2048', 'cover_photo' => 'mimetypes:image/jpeg,image/png,image/jpg|max:2048',
'categories' => 'required|string', 'categories' => 'required|string',
'tags' => 'required|string', 'tags' => 'nullable|string',
'CURP' => 'unique:suppliers|nullable|string|size:18', 'CURP' => 'unique:suppliers|nullable|string|size:18',
'RFC' => 'string|size:14|nullable', 'RFC' => 'string|size:14|nullable',
'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/', 'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/',
@@ -1013,7 +1013,7 @@ class SupplierController extends Controller
'company_name' => 'required|string', 'company_name' => 'required|string',
'cover_photo' => 'mimetypes:image/jpeg,image/png,image/jpg|max:2048', 'cover_photo' => 'mimetypes:image/jpeg,image/png,image/jpg|max:2048',
'categories' => 'required|string', 'categories' => 'required|string',
'tags' => 'required|string', 'tags' => 'nullable|string',
'CURP' => 'string|size:18|nullable', 'CURP' => 'string|size:18|nullable',
'RFC' => 'unique:suppliers|nullable|string|size:13', 'RFC' => 'unique:suppliers|nullable|string|size:13',
'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/', 'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/',
@@ -1044,7 +1044,7 @@ class SupplierController extends Controller
'company_name' => 'required|string', 'company_name' => 'required|string',
'cover_photo' => 'required|mimetypes:image/jpeg,image/png,image/jpg|max:2048', 'cover_photo' => 'required|mimetypes:image/jpeg,image/png,image/jpg|max:2048',
'categories' => 'required|string', 'categories' => 'required|string',
'tags' => 'required|string', 'tags' => 'nullable|string',
'CURP' => 'unique:suppliers|nullable|string|size:18', 'CURP' => 'unique:suppliers|nullable|string|size:18',
'RFC' => 'string|size:14|nullable', 'RFC' => 'string|size:14|nullable',
'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/', 'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/',
@@ -1060,7 +1060,7 @@ class SupplierController extends Controller
'company_name' => 'required|string', 'company_name' => 'required|string',
'cover_photo' => 'required|mimetypes:image/jpeg,image/png,image/jpg|max:2048', 'cover_photo' => 'required|mimetypes:image/jpeg,image/png,image/jpg|max:2048',
'categories' => 'required|string', 'categories' => 'required|string',
'tags' => 'required|string', 'tags' => 'nullable|string',
'CURP' => 'string|size:18|nullable', 'CURP' => 'string|size:18|nullable',
'RFC' => 'unique:suppliers|nullable|string|size:13', 'RFC' => 'unique:suppliers|nullable|string|size:13',
'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/', 'clabe' => 'string|nullable|regex:/(^[0-9 ]+$)+/',
@@ -1078,7 +1078,7 @@ class SupplierController extends Controller
'company_name.required' => 'Se requiere el nombre de la empresa', 'company_name.required' => 'Se requiere el nombre de la empresa',
'cover_photo.required' => 'Se requiere una foto de portada', 'cover_photo.required' => 'Se requiere una foto de portada',
'categories.required' => 'Se requiere una categoría', 'categories.required' => 'Se requiere una categoría',
'tags.required' => 'Se requiere un tag', //'tags.required' => 'Se requiere un tag',
'RFC.required' => 'Se requiere un RFC', 'RFC.required' => 'Se requiere un RFC',
'CURP.required' => 'Se requiere un CURP', 'CURP.required' => 'Se requiere un CURP',
'RFC.unique' => 'RFC ya registrado', 'RFC.unique' => 'RFC ya registrado',

View File

@@ -31,7 +31,7 @@ class Cors
return $response return $response
->header('Access-Control-Allow-Origin', $allowOrigin) ->header('Access-Control-Allow-Origin', $allowOrigin)
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH, DELETE, OPTIONS') ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH, DELETE, OPTIONS')
->header('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Requested-With, X-XSRF-TOKEN'); ->header('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Requested-With, X-XSRF-TOKEN, ngrok-skip-browser-warning');
} }
return $next($request); return $next($request);

View File

@@ -0,0 +1,65 @@
<?php
namespace App\Providers;
use App\Models\User;
use Illuminate\Support\Facades\Gate;
use Laravel\Telescope\IncomingEntry;
use Laravel\Telescope\Telescope;
use Laravel\Telescope\TelescopeApplicationServiceProvider;
class TelescopeServiceProvider extends TelescopeApplicationServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
// Telescope::night();
$this->hideSensitiveRequestDetails();
$isLocal = $this->app->environment('local');
Telescope::filter(function (IncomingEntry $entry) use ($isLocal) {
return $isLocal ||
$entry->isReportableException() ||
$entry->isFailedRequest() ||
$entry->isFailedJob() ||
$entry->isScheduledTask() ||
$entry->hasMonitoredTag();
});
}
/**
* Prevent sensitive request details from being logged by Telescope.
*/
protected function hideSensitiveRequestDetails(): void
{
if ($this->app->environment('local')) {
return;
}
Telescope::hideRequestParameters(['_token']);
Telescope::hideRequestHeaders([
'cookie',
'x-csrf-token',
'x-xsrf-token',
]);
}
/**
* Register the Telescope gate.
*
* This gate determines who can access Telescope in non-local environments.
*/
protected function gate(): void
{
Gate::define('viewTelescope', function (User $user) {
return in_array($user->email, [
//
]);
});
}
}

212
config/telescope.php Normal file
View File

@@ -0,0 +1,212 @@
<?php
use Laravel\Telescope\Http\Middleware\Authorize;
use Laravel\Telescope\Watchers;
return [
/*
|--------------------------------------------------------------------------
| Telescope Master Switch
|--------------------------------------------------------------------------
|
| This option may be used to disable all Telescope watchers regardless
| of their individual configuration, which simply provides a single
| and convenient way to enable or disable Telescope data storage.
|
*/
'enabled' => env('TELESCOPE_ENABLED', true),
/*
|--------------------------------------------------------------------------
| Telescope Domain
|--------------------------------------------------------------------------
|
| This is the subdomain where Telescope will be accessible from. If the
| setting is null, Telescope will reside under the same domain as the
| application. Otherwise, this value will be used as the subdomain.
|
*/
'domain' => env('TELESCOPE_DOMAIN'),
/*
|--------------------------------------------------------------------------
| Telescope Path
|--------------------------------------------------------------------------
|
| This is the URI path where Telescope will be accessible from. Feel free
| to change this path to anything you like. Note that the URI will not
| affect the paths of its internal API that aren't exposed to users.
|
*/
'path' => env('TELESCOPE_PATH', 'telescope'),
/*
|--------------------------------------------------------------------------
| Telescope Storage Driver
|--------------------------------------------------------------------------
|
| This configuration options determines the storage driver that will
| be used to store Telescope's data. In addition, you may set any
| custom options as needed by the particular driver you choose.
|
*/
'driver' => env('TELESCOPE_DRIVER', 'database'),
'storage' => [
'database' => [
'connection' => env('DB_CONNECTION', 'mysql'),
'chunk' => 1000,
],
],
/*
|--------------------------------------------------------------------------
| Telescope Queue
|--------------------------------------------------------------------------
|
| This configuration options determines the queue connection and queue
| which will be used to process ProcessPendingUpdate jobs. This can
| be changed if you would prefer to use a non-default connection.
|
*/
'queue' => [
'connection' => env('TELESCOPE_QUEUE_CONNECTION'),
'queue' => env('TELESCOPE_QUEUE'),
'delay' => env('TELESCOPE_QUEUE_DELAY', 10),
],
/*
|--------------------------------------------------------------------------
| Telescope Route Middleware
|--------------------------------------------------------------------------
|
| These middleware will be assigned to every Telescope route, giving you
| the chance to add your own middleware to this list or change any of
| the existing middleware. Or, you can simply stick with this list.
|
*/
'middleware' => [
'web',
Authorize::class,
],
/*
|--------------------------------------------------------------------------
| Allowed / Ignored Paths & Commands
|--------------------------------------------------------------------------
|
| The following array lists the URI paths and Artisan commands that will
| not be watched by Telescope. In addition to this list, some Laravel
| commands, like migrations and queue commands, are always ignored.
|
*/
'only_paths' => [
// 'api/*'
],
'ignore_paths' => [
'livewire*',
'nova-api*',
'pulse*',
'_boost*',
'.well-known*',
],
'ignore_commands' => [
//
],
/*
|--------------------------------------------------------------------------
| Telescope Watchers
|--------------------------------------------------------------------------
|
| The following array lists the "watchers" that will be registered with
| Telescope. The watchers gather the application's profile data when
| a request or task is executed. Feel free to customize this list.
|
*/
'watchers' => [
Watchers\BatchWatcher::class => env('TELESCOPE_BATCH_WATCHER', true),
Watchers\CacheWatcher::class => [
'enabled' => env('TELESCOPE_CACHE_WATCHER', true),
'hidden' => [],
'ignore' => [],
],
Watchers\ClientRequestWatcher::class => [
'enabled' => env('TELESCOPE_CLIENT_REQUEST_WATCHER', true),
'ignore_hosts' => [],
],
Watchers\CommandWatcher::class => [
'enabled' => env('TELESCOPE_COMMAND_WATCHER', true),
'ignore' => [],
],
Watchers\DumpWatcher::class => [
'enabled' => env('TELESCOPE_DUMP_WATCHER', true),
'always' => env('TELESCOPE_DUMP_WATCHER_ALWAYS', false),
],
Watchers\EventWatcher::class => [
'enabled' => env('TELESCOPE_EVENT_WATCHER', true),
'ignore' => [],
],
Watchers\ExceptionWatcher::class => env('TELESCOPE_EXCEPTION_WATCHER', true),
Watchers\GateWatcher::class => [
'enabled' => env('TELESCOPE_GATE_WATCHER', true),
'ignore_abilities' => [],
'ignore_packages' => true,
'ignore_paths' => [],
],
Watchers\JobWatcher::class => env('TELESCOPE_JOB_WATCHER', true),
Watchers\LogWatcher::class => [
'enabled' => env('TELESCOPE_LOG_WATCHER', true),
'level' => 'error',
],
Watchers\MailWatcher::class => env('TELESCOPE_MAIL_WATCHER', true),
Watchers\ModelWatcher::class => [
'enabled' => env('TELESCOPE_MODEL_WATCHER', true),
'events' => ['eloquent.*'],
'hydrations' => true,
],
Watchers\NotificationWatcher::class => env('TELESCOPE_NOTIFICATION_WATCHER', true),
Watchers\QueryWatcher::class => [
'enabled' => env('TELESCOPE_QUERY_WATCHER', true),
'ignore_packages' => true,
'ignore_paths' => [],
'slow' => 100,
],
Watchers\RedisWatcher::class => env('TELESCOPE_REDIS_WATCHER', true),
Watchers\RequestWatcher::class => [
'enabled' => env('TELESCOPE_REQUEST_WATCHER', true),
'size_limit' => env('TELESCOPE_RESPONSE_SIZE_LIMIT', 64),
'ignore_http_methods' => [],
'ignore_status_codes' => [],
],
Watchers\ScheduleWatcher::class => env('TELESCOPE_SCHEDULE_WATCHER', true),
Watchers\ViewWatcher::class => env('TELESCOPE_VIEW_WATCHER', true),
],
];