This commit is contained in:
Sampanna Rimal 2024-09-04 12:22:04 +05:45
parent 53c0140f58
commit 82fab174dc
203 changed files with 4255 additions and 1343 deletions

2
.env
View File

@ -1,4 +1,4 @@
APP_NAME=OMIS
APP_NAME=StocksNew
APP_ENV=local
APP_KEY=base64:VoHTBVxg0gnGqmljdwxqtxkcqVUq+9nYYYtHGX4APKU=
APP_DEBUG=true

View File

@ -0,0 +1,67 @@
<?php
namespace Modules\Settings\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class SettingsController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('settings::index');
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('settings::create');
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request): RedirectResponse
{
//
}
/**
* Show the specified resource.
*/
public function show($id)
{
return view('settings::show');
}
/**
* Show the form for editing the specified resource.
*/
public function edit($id)
{
return view('settings::edit');
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, $id): RedirectResponse
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy($id)
{
//
}
}

View File

View File

@ -0,0 +1,15 @@
<?php
namespace Modules\Settings\Models;
use App\Traits\StatusTrait;
use Illuminate\Database\Eloquent\Model;
class Setting extends Model
{
use StatusTrait;
protected $table = 'tbl_settings';
protected $guarded = [];
protected $appends = ['status_name'];
}

View File

View File

View File

@ -0,0 +1,32 @@
<?php
namespace Modules\Settings\Providers;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
class EventServiceProvider extends ServiceProvider
{
/**
* The event handler mappings for the application.
*
* @var array<string, array<int, string>>
*/
protected $listen = [];
/**
* Indicates if events should be discovered.
*
* @var bool
*/
protected static $shouldDiscoverEvents = true;
/**
* Configure the proper event listeners for email verification.
*
* @return void
*/
protected function configureEmailVerification(): void
{
}
}

View File

@ -0,0 +1,49 @@
<?php
namespace Modules\Settings\Providers;
use Illuminate\Support\Facades\Route;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
class RouteServiceProvider extends ServiceProvider
{
/**
* Called before routes are registered.
*
* Register any model bindings or pattern based filters.
*/
public function boot(): void
{
parent::boot();
}
/**
* Define the routes for the application.
*/
public function map(): void
{
$this->mapApiRoutes();
$this->mapWebRoutes();
}
/**
* Define the "web" routes for the application.
*
* These routes all receive session state, CSRF protection, etc.
*/
protected function mapWebRoutes(): void
{
Route::middleware('web')->group(module_path('Settings', '/routes/web.php'));
}
/**
* Define the "api" routes for the application.
*
* These routes are typically stateless.
*/
protected function mapApiRoutes(): void
{
Route::middleware('api')->prefix('api')->name('api.')->group(module_path('Settings', '/routes/api.php'));
}
}

View File

@ -0,0 +1,120 @@
<?php
namespace Modules\Settings\Providers;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;
class SettingsServiceProvider extends ServiceProvider
{
protected string $moduleName = 'Settings';
protected string $moduleNameLower = 'settings';
/**
* Boot the application events.
*/
public function boot(): void
{
$this->registerCommands();
$this->registerCommandSchedules();
$this->registerTranslations();
$this->registerConfig();
$this->registerViews();
$this->loadMigrationsFrom(module_path($this->moduleName, 'database/migrations'));
}
/**
* Register the service provider.
*/
public function register(): void
{
$this->app->register(EventServiceProvider::class);
$this->app->register(RouteServiceProvider::class);
}
/**
* Register commands in the format of Command::class
*/
protected function registerCommands(): void
{
// $this->commands([]);
}
/**
* Register command Schedules.
*/
protected function registerCommandSchedules(): void
{
// $this->app->booted(function () {
// $schedule = $this->app->make(Schedule::class);
// $schedule->command('inspire')->hourly();
// });
}
/**
* Register translations.
*/
public function registerTranslations(): void
{
$langPath = resource_path('lang/modules/'.$this->moduleNameLower);
if (is_dir($langPath)) {
$this->loadTranslationsFrom($langPath, $this->moduleNameLower);
$this->loadJsonTranslationsFrom($langPath);
} else {
$this->loadTranslationsFrom(module_path($this->moduleName, 'lang'), $this->moduleNameLower);
$this->loadJsonTranslationsFrom(module_path($this->moduleName, 'lang'));
}
}
/**
* Register config.
*/
protected function registerConfig(): void
{
$this->publishes([module_path($this->moduleName, 'config/config.php') => config_path($this->moduleNameLower.'.php')], 'config');
$this->mergeConfigFrom(module_path($this->moduleName, 'config/config.php'), $this->moduleNameLower);
}
/**
* Register views.
*/
public function registerViews(): void
{
$viewPath = resource_path('views/modules/'.$this->moduleNameLower);
$sourcePath = module_path($this->moduleName, 'resources/views');
$this->publishes([$sourcePath => $viewPath], ['views', $this->moduleNameLower.'-module-views']);
$this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$sourcePath]), $this->moduleNameLower);
$componentNamespace = str_replace('/', '\\', config('modules.namespace').'\\'.$this->moduleName.'\\'.ltrim(config('modules.paths.generator.component-class.path'), config('modules.paths.app_folder', '')));
Blade::componentNamespace($componentNamespace, $this->moduleNameLower);
}
/**
* Get the services provided by the provider.
*
* @return array<string>
*/
public function provides(): array
{
return [];
}
/**
* @return array<string>
*/
private function getPublishableViewPaths(): array
{
$paths = [];
foreach (config('view.paths') as $path) {
if (is_dir($path.'/modules/'.$this->moduleNameLower)) {
$paths[] = $path.'/modules/'.$this->moduleNameLower;
}
}
return $paths;
}
}

View File

@ -0,0 +1,30 @@
{
"name": "nwidart/settings",
"description": "",
"authors": [
{
"name": "Nicolas Widart",
"email": "n.widart@gmail.com"
}
],
"extra": {
"laravel": {
"providers": [],
"aliases": {
}
}
},
"autoload": {
"psr-4": {
"Modules\\Settings\\": "app/",
"Modules\\Settings\\Database\\Factories\\": "database/factories/",
"Modules\\Settings\\Database\\Seeders\\": "database/seeders/"
}
},
"autoload-dev": {
"psr-4": {
"Modules\\Settings\\Tests\\": "tests/"
}
}
}

View File

View File

@ -0,0 +1,5 @@
<?php
return [
'name' => 'Settings',
];

View File

@ -0,0 +1,16 @@
<?php
namespace Modules\Settings\Database\Seeders;
use Illuminate\Database\Seeder;
class SettingsDatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
// $this->call([]);
}
}

View File

@ -0,0 +1,11 @@
{
"name": "Settings",
"alias": "settings",
"description": "",
"keywords": [],
"priority": 0,
"providers": [
"Modules\\Settings\\Providers\\SettingsServiceProvider"
],
"files": []
}

View File

@ -0,0 +1,15 @@
{
"private": true,
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build"
},
"devDependencies": {
"axios": "^1.1.2",
"laravel-vite-plugin": "^0.7.5",
"sass": "^1.69.5",
"postcss": "^8.3.7",
"vite": "^4.0.0"
}
}

View File

@ -0,0 +1,7 @@
@extends('settings::layouts.master')
@section('content')
<h1>Hello World</h1>
<p>Module: {!! config('settings.name') !!}</p>
@endsection

View File

@ -0,0 +1,29 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Settings Module - {{ config('app.name', 'Laravel') }}</title>
<meta name="description" content="{{ $description ?? '' }}">
<meta name="keywords" content="{{ $keywords ?? '' }}">
<meta name="author" content="{{ $author ?? '' }}">
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" rel="stylesheet" />
{{-- Vite CSS --}}
{{-- {{ module_vite('build-settings', 'resources/assets/sass/app.scss') }} --}}
</head>
<body>
@yield('content')
{{-- Vite JS --}}
{{-- {{ module_vite('build-settings', 'resources/assets/js/app.js') }} --}}
</body>

View File

View File

@ -0,0 +1,19 @@
<?php
use Illuminate\Support\Facades\Route;
use Modules\Settings\Http\Controllers\SettingsController;
/*
*--------------------------------------------------------------------------
* API Routes
*--------------------------------------------------------------------------
*
* Here is where you can register API routes for your application. These
* routes are loaded by the RouteServiceProvider within a group which
* is assigned the "api" middleware group. Enjoy building your API!
*
*/
Route::middleware(['auth:sanctum'])->prefix('v1')->group(function () {
Route::apiResource('settings', SettingsController::class)->names('settings');
});

View File

@ -0,0 +1,19 @@
<?php
use Illuminate\Support\Facades\Route;
use Modules\Settings\Http\Controllers\SettingsController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::group([], function () {
Route::resource('settings', SettingsController::class)->names('settings');
});

View File

@ -0,0 +1,26 @@
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
export default defineConfig({
build: {
outDir: '../../public/build-settings',
emptyOutDir: true,
manifest: true,
},
plugins: [
laravel({
publicDirectory: '../../public',
buildDirectory: 'build-settings',
input: [
__dirname + '/resources/assets/sass/app.scss',
__dirname + '/resources/assets/js/app.js'
],
refresh: true,
}),
],
});
//export const paths = [
// 'Modules/Settings/resources/assets/sass/app.scss',
// 'Modules/Settings/resources/assets/js/app.js',
//];

View File

@ -0,0 +1,67 @@
<?php
namespace Modules\Stocks\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class StocksController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('stocks::index');
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('stocks::create');
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request): RedirectResponse
{
//
}
/**
* Show the specified resource.
*/
public function show($id)
{
return view('stocks::show');
}
/**
* Show the form for editing the specified resource.
*/
public function edit($id)
{
return view('stocks::edit');
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, $id): RedirectResponse
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy($id)
{
//
}
}

View File

View File

@ -0,0 +1,15 @@
<?php
namespace Modules\Stocks\Models;
use App\Traits\StatusTrait;
use Illuminate\Database\Eloquent\Model;
class PaymentMode extends Model
{
use StatusTrait;
protected $table = 'tbl_paymentmodes';
protected $guarded = [];
protected $appends = ['status_name'];
}

View File

@ -0,0 +1,15 @@
<?php
namespace Modules\Stocks\Models;
use App\Traits\StatusTrait;
use Illuminate\Database\Eloquent\Model;
class Stock extends Model
{
use StatusTrait;
protected $table = 'tbl_stocks';
protected $guarded = [];
protected $appends = ['status_name'];
}

View File

View File

View File

@ -0,0 +1,32 @@
<?php
namespace Modules\Stocks\Providers;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
class EventServiceProvider extends ServiceProvider
{
/**
* The event handler mappings for the application.
*
* @var array<string, array<int, string>>
*/
protected $listen = [];
/**
* Indicates if events should be discovered.
*
* @var bool
*/
protected static $shouldDiscoverEvents = true;
/**
* Configure the proper event listeners for email verification.
*
* @return void
*/
protected function configureEmailVerification(): void
{
}
}

View File

@ -0,0 +1,49 @@
<?php
namespace Modules\Stocks\Providers;
use Illuminate\Support\Facades\Route;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
class RouteServiceProvider extends ServiceProvider
{
/**
* Called before routes are registered.
*
* Register any model bindings or pattern based filters.
*/
public function boot(): void
{
parent::boot();
}
/**
* Define the routes for the application.
*/
public function map(): void
{
$this->mapApiRoutes();
$this->mapWebRoutes();
}
/**
* Define the "web" routes for the application.
*
* These routes all receive session state, CSRF protection, etc.
*/
protected function mapWebRoutes(): void
{
Route::middleware('web')->group(module_path('Stocks', '/routes/web.php'));
}
/**
* Define the "api" routes for the application.
*
* These routes are typically stateless.
*/
protected function mapApiRoutes(): void
{
Route::middleware('api')->prefix('api')->name('api.')->group(module_path('Stocks', '/routes/api.php'));
}
}

View File

@ -0,0 +1,120 @@
<?php
namespace Modules\Stocks\Providers;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;
class StocksServiceProvider extends ServiceProvider
{
protected string $moduleName = 'Stocks';
protected string $moduleNameLower = 'stocks';
/**
* Boot the application events.
*/
public function boot(): void
{
$this->registerCommands();
$this->registerCommandSchedules();
$this->registerTranslations();
$this->registerConfig();
$this->registerViews();
$this->loadMigrationsFrom(module_path($this->moduleName, 'database/migrations'));
}
/**
* Register the service provider.
*/
public function register(): void
{
$this->app->register(EventServiceProvider::class);
$this->app->register(RouteServiceProvider::class);
}
/**
* Register commands in the format of Command::class
*/
protected function registerCommands(): void
{
// $this->commands([]);
}
/**
* Register command Schedules.
*/
protected function registerCommandSchedules(): void
{
// $this->app->booted(function () {
// $schedule = $this->app->make(Schedule::class);
// $schedule->command('inspire')->hourly();
// });
}
/**
* Register translations.
*/
public function registerTranslations(): void
{
$langPath = resource_path('lang/modules/'.$this->moduleNameLower);
if (is_dir($langPath)) {
$this->loadTranslationsFrom($langPath, $this->moduleNameLower);
$this->loadJsonTranslationsFrom($langPath);
} else {
$this->loadTranslationsFrom(module_path($this->moduleName, 'lang'), $this->moduleNameLower);
$this->loadJsonTranslationsFrom(module_path($this->moduleName, 'lang'));
}
}
/**
* Register config.
*/
protected function registerConfig(): void
{
$this->publishes([module_path($this->moduleName, 'config/config.php') => config_path($this->moduleNameLower.'.php')], 'config');
$this->mergeConfigFrom(module_path($this->moduleName, 'config/config.php'), $this->moduleNameLower);
}
/**
* Register views.
*/
public function registerViews(): void
{
$viewPath = resource_path('views/modules/'.$this->moduleNameLower);
$sourcePath = module_path($this->moduleName, 'resources/views');
$this->publishes([$sourcePath => $viewPath], ['views', $this->moduleNameLower.'-module-views']);
$this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$sourcePath]), $this->moduleNameLower);
$componentNamespace = str_replace('/', '\\', config('modules.namespace').'\\'.$this->moduleName.'\\'.ltrim(config('modules.paths.generator.component-class.path'), config('modules.paths.app_folder', '')));
Blade::componentNamespace($componentNamespace, $this->moduleNameLower);
}
/**
* Get the services provided by the provider.
*
* @return array<string>
*/
public function provides(): array
{
return [];
}
/**
* @return array<string>
*/
private function getPublishableViewPaths(): array
{
$paths = [];
foreach (config('view.paths') as $path) {
if (is_dir($path.'/modules/'.$this->moduleNameLower)) {
$paths[] = $path.'/modules/'.$this->moduleNameLower;
}
}
return $paths;
}
}

View File

View File

@ -0,0 +1,30 @@
{
"name": "nwidart/stocks",
"description": "",
"authors": [
{
"name": "Nicolas Widart",
"email": "n.widart@gmail.com"
}
],
"extra": {
"laravel": {
"providers": [],
"aliases": {
}
}
},
"autoload": {
"psr-4": {
"Modules\\Stocks\\": "app/",
"Modules\\Stocks\\Database\\Factories\\": "database/factories/",
"Modules\\Stocks\\Database\\Seeders\\": "database/seeders/"
}
},
"autoload-dev": {
"psr-4": {
"Modules\\Stocks\\Tests\\": "tests/"
}
}
}

View File

View File

@ -0,0 +1,5 @@
<?php
return [
'name' => 'Stocks',
];

View File

View File

@ -0,0 +1,16 @@
<?php
namespace Modules\Stocks\Database\Seeders;
use Illuminate\Database\Seeder;
class StocksDatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
// $this->call([]);
}
}

View File

@ -0,0 +1,11 @@
{
"name": "Stocks",
"alias": "stocks",
"description": "",
"keywords": [],
"priority": 0,
"providers": [
"Modules\\Stocks\\Providers\\StocksServiceProvider"
],
"files": []
}

View File

@ -0,0 +1,15 @@
{
"private": true,
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build"
},
"devDependencies": {
"axios": "^1.1.2",
"laravel-vite-plugin": "^0.7.5",
"sass": "^1.69.5",
"postcss": "^8.3.7",
"vite": "^4.0.0"
}
}

View File

View File

View File

@ -0,0 +1,7 @@
@extends('stocks::layouts.master')
@section('content')
<h1>Hello World</h1>
<p>Module: {!! config('stocks.name') !!}</p>
@endsection

View File

@ -0,0 +1,29 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Stocks Module - {{ config('app.name', 'Laravel') }}</title>
<meta name="description" content="{{ $description ?? '' }}">
<meta name="keywords" content="{{ $keywords ?? '' }}">
<meta name="author" content="{{ $author ?? '' }}">
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" rel="stylesheet" />
{{-- Vite CSS --}}
{{-- {{ module_vite('build-stocks', 'resources/assets/sass/app.scss') }} --}}
</head>
<body>
@yield('content')
{{-- Vite JS --}}
{{-- {{ module_vite('build-stocks', 'resources/assets/js/app.js') }} --}}
</body>

View File

View File

@ -0,0 +1,19 @@
<?php
use Illuminate\Support\Facades\Route;
use Modules\Stocks\Http\Controllers\StocksController;
/*
*--------------------------------------------------------------------------
* API Routes
*--------------------------------------------------------------------------
*
* Here is where you can register API routes for your application. These
* routes are loaded by the RouteServiceProvider within a group which
* is assigned the "api" middleware group. Enjoy building your API!
*
*/
Route::middleware(['auth:sanctum'])->prefix('v1')->group(function () {
Route::apiResource('stocks', StocksController::class)->names('stocks');
});

View File

@ -0,0 +1,19 @@
<?php
use Illuminate\Support\Facades\Route;
use Modules\Stocks\Http\Controllers\StocksController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::group([], function () {
Route::resource('stocks', StocksController::class)->names('stocks');
});

View File

@ -0,0 +1,26 @@
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
export default defineConfig({
build: {
outDir: '../../public/build-stocks',
emptyOutDir: true,
manifest: true,
},
plugins: [
laravel({
publicDirectory: '../../public',
buildDirectory: 'build-stocks',
input: [
__dirname + '/resources/assets/sass/app.scss',
__dirname + '/resources/assets/js/app.js'
],
refresh: true,
}),
],
});
//export const paths = [
// 'Modules/Stocks/resources/assets/sass/app.scss',
// 'Modules/Stocks/resources/assets/js/app.js',
//];

View File

@ -3,13 +3,13 @@
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
class OMIS
class BIBStocks
{
// public function __construct()
// {
// $this->initDB();
// $this->seedPermissions();
// }
public function __construct()
{
$this->initDB();
$this->seedPermissions();
}
public static function sendSMSWithCurl($destination, $message)
{
@ -74,7 +74,7 @@ class OMIS
return "Error: Form (ID/Alias: $formID) not found.";
}
$csrfToken = csrf_token();
if (session('success')) {
if (session('success')) {
echo '<div class="alert alert-success" role="alert">';
echo session('success');
echo '</div>';

View File

@ -0,0 +1,62 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateTblSettingsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('tbl_settings', function (Blueprint $table) {
$table->id('setting_id');
$table->string('title')->nullable();
$table->text('description')->nullable();
$table->string('url1')->nullable();
$table->string('url2')->nullable();
$table->string('email')->nullable();
$table->string('phone')->nullable();
$table->string('secondary_phone')->nullable();
$table->text('google_map')->nullable();
$table->string('fb')->nullable();
$table->string('insta')->nullable();
$table->string('twitter')->nullable();
$table->string('tiktok')->nullable();
$table->string('primary_logo')->nullable();
$table->string('secondary_logo')->nullable();
$table->string('thumb')->nullable();
$table->string('icon')->nullable();
$table->string('og_image')->nullable();
$table->string('no_image', 250)->nullable();
$table->string('copyright_text', 250)->nullable();
$table->text('content1')->nullable();
$table->text('content2')->nullable();
$table->text('content3')->nullable();
$table->string('seo_title')->nullable();
$table->text('seo_description')->nullable();
$table->text('seo_keywords')->nullable();
$table->text('og_tags')->nullable();
$table->integer('display_order')->default(0);
$table->integer('status')->default(0);
$table->timestamps();
$table->integer('createdby');
$table->integer('updatedby');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('tbl_settings');
}
}

View File

@ -0,0 +1,41 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateTblFabriccategoriesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('tbl_fabriccategories', function (Blueprint $table) {
$table->id('febriccategory_id');
$table->string('title')->nullable();
$table->string('alias')->nullable();
$table->text('description')->nullable();
$table->string('color')->nullable();
$table->integer('display_order')->nullable();
$table->integer('status')->nullable();
$table->text('remarks')->nullable();
$table->dateTime('created_at')->nullable();
$table->integer('createdby')->nullable();
$table->dateTime('updated_at')->nullable();
$table->integer('updatedby')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('tbl_fabriccategories');
}
}

View File

@ -0,0 +1,39 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateTblMasterunitsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('tbl_masterunits', function (Blueprint $table) {
$table->id('masterunit_id');
$table->string('title')->nullable();
$table->string('alias')->nullable();
$table->text('description')->nullable();
$table->integer('display_order')->nullable();
$table->integer('status')->nullable();
$table->text('remarks')->nullable();
$table->dateTime('created_at')->nullable();
$table->integer('createdby')->nullable();
$table->dateTime('updated_at')->nullable();
$table->integer('updatedby')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('tbl_masterunits');
}
}

View File

@ -0,0 +1,48 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateTblStocksTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('tbl_stocks', function (Blueprint $table) {
$table->id('stock_id');
$table->integer('stocklocations_id')->nullable();
$table->string('title')->nullable();
$table->string('alias')->nullable();
$table->integer('products_id')->nullable();
$table->string('s')->nullable();
$table->string('m')->nullable();
$table->string('l')->nullable();
$table->string('xl')->nullable();
$table->string('xxl')->nullable();
$table->string('xxxl')->nullable();
$table->string('fs')->nullable();
$table->integer('display_order')->nullable();
$table->integer('status')->nullable();
$table->text('remarks')->nullable();
$table->dateTime('created_at')->nullable();
$table->integer('createdby')->nullable();
$table->dateTime('updated_at')->nullable();
$table->integer('updatedby')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('tbl_stocks');
}
}

View File

@ -0,0 +1,40 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateTblPaymentmodesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('tbl_paymentmodes', function (Blueprint $table) {
$table->id('paymentmode_id');
$table->string('title')->nullable();
$table->string('alias')->nullable();
$table->text('description')->nullable();
$table->integer('display_order')->nullable();
$table->integer('status')->nullable();
$table->text('remarks')->nullable();
$table->dateTime('created_at')->nullable();
$table->integer('createdby')->nullable();
$table->dateTime('updated_at')->nullable();
$table->integer('updatedby')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('tbl_paymentmodes');
}
}

View File

@ -11,5 +11,11 @@
"Payroll": true,
"Office": true,
"Meeting": true,
"Training": true
"Training": true,
"Customer": true,
"Order": true,
"Product": true,
"Supplier": true,
"Settings": true,
"Stocks": true
}

View File

@ -34,7 +34,7 @@
<a href="{{ route('home') }}" class="nav-link"> <i class="ri-home-line"></i>Dashboard </a>
</li>
@role('admin')
{{-- @role('admin')
<li class="nav-item">
<a class="nav-link menu-link" href="#MenuCompany" data-bs-toggle="collapse" role="button"
aria-expanded="false" aria-controls="MenuCompany">
@ -56,282 +56,23 @@
</ul>
</div>
</li>
@endrole
@endrole --}}
@can('employee.index')
{{-- @can('employee.index')
<li class="nav-item">
<a class="nav-link menu-link @if (\Request::is('employee') || \Request::is('employee/*')) active @endif"
href="{{ route('employee.index') }}">
<i class="ri-team-line"></i> <span data-key="t-widgets">Employee</span>
</a>
</li>
@endcan
<!--- HR Start-->
<li class="nav-item">
<a class="nav-link menu-link" href="#MenuHr" data-bs-toggle="collapse" role="button" aria-expanded="false"
aria-controls="MenuHr">
<i class="ri-dashboard-2-line"></i> <span data-key="t-hrs">HR</span>
</a>
<div class="menu-dropdown collapse" id="MenuHr">
<ul class="nav nav-sm flex-column">
@can('department.index')
<li class="nav-item">
<a href="{{ route('department.index') }}"
class="nav-link @if (\Request::is('department') || \Request::is('department/*')) active @endif">Departments</a>
</li>
@endcan
@can('designation.index')
<li class="nav-item">
<a href="{{ route('designation.index') }}"
class="nav-link @if (\Request::is('desgination') || \Request::is('desgination/*')) active @endif">Designations</a>
</li>
@endcan
@can('promotionDemotion.index')
<li class="nav-item">
<a href="{{ route('promotionDemotion.index') }}"
class="nav-link @if (\Request::is('promotion-demotion') || \Request::is('promotion-demotion/*')) active @endif">Promotion/ Demotions</a>
</li>
@endcan
@can('appreciation.index')
<li class="nav-item">
<a href="{{ route('appreciation.index') }}"
class="nav-link @if (\Request::is('appreciation') || \Request::is('appreciation/*')) active @endif">Appreciations</a>
</li>
@endcan
@can('complaint.index')
<li class="nav-item">
<a href="{{ route('complaint.index') }}"
class="nav-link @if (\Request::is('complaint') || \Request::is('complaint/*')) active @endif">Complaints</a>
</li>
@endcan
@can('resignation.index')
<li class="nav-item">
<a href="{{ route('resignation.index') }}"
class="nav-link @if (\Request::is('resignation') || \Request::is('resignation/*')) active @endif">Resignations</a>
</li>
@endcan
@can('transfer.index')
<li class="nav-item">
<a href="{{ route('transfer.index') }}"
class="nav-link @if (\Request::is('transfer') || \Request::is('transfer/*')) active @endif">Transfers</a>
</li>
@endcan
@can('warning.index')
<li class="nav-item">
<a href="{{ route('warning.index') }}"
class="nav-link @if (\Request::is('warning') || \Request::is('warning/*')) active @endif">Warnings</a>
</li>
@endcan
@can('workShift.index')
<li class="nav-item">
<a href="{{ route('workShift.index') }}"
class="nav-link @if (\Request::is('work-shift') || \Request::is('work-shift/*')) active @endif">Shifts</a>
</li>
@endcan
@endcan --}}
</ul>
</div>
</li>
<!--- HR End-->
@can('attendance.index')
<li class="nav-item">
<a class="nav-link menu-link" href="#MenuAttendance" data-bs-toggle="collapse" role="button"
aria-expanded="false" aria-controls="MenuAttendance">
<i class="ri-profile-line"></i> <span data-key="t-attendances">Attendance</span>
</a>
<div class="menu-dropdown collapse" id="MenuAttendance">
<ul class="nav nav-sm flex-column">
@can('attendance.index')
<li class="nav-item">
<a href="{{ route('attendance.index') }}"
class="nav-link @if (\Request::is('attendance') || \Request::is('attendance/*')) active @endif">Attendance</a>
</li>
@endcan
@can('attendanceReport.monthly')
<li class="nav-item">
<a href="{{ route('attendanceReport.monthly') }}"
class="nav-link @if (\Request::is('attendanceReport') || \Request::is('attendanceReport/*')) active @endif">Monthly</a>
</li>
@endcan
</ul>
</div>
</li>
@endcan
@can('leave.index')
<li class="nav-item">
<a class="nav-link menu-link" href="#leave" data-bs-toggle="collapse" role="button"
aria-expanded="false" aria-controls="leave">
<i class="ri-shopping-cart-2-line"></i> <span data-key="t-vendors">Leave</span>
</a>
<div class="menu-dropdown collapse" id="leave">
<ul class="nav nav-sm flex-column">
@can('leaveType.index')
<li class="nav-item">
<a href="{{ route('leaveType.index') }}"
class="nav-link @if (\Request::is('leavetype') || \Request::is('leavetype/*')) active @endif">Leave Type</a>
</li>
@endcan
@can('leave.index')
<li class="nav-item">
<a href="{{ route('leave.index') }}"
class="nav-link @if (\Request::is('leave') || \Request::is('leave/*')) active @endif">Apply Leave</a>
</li>
@endcan
<li class="nav-item">
<a href="" class="nav-link @if (\Request::is('leaveReport') || \Request::is('leaveReport/*')) active @endif">Leave Report</a>
</li>
</ul>
</div>
</li>
@endcan
<!--- Generator Start-->
<li class="nav-item">
<a class="nav-link menu-link" href="#MenuEvents" data-bs-toggle="collapse" role="button"
aria-expanded="false" aria-controls="MenuEvents">
<i class="ri-calendar-2-line"></i> <span data-key="t-office">Event & Holidays</span>
</a>
<div class="menu-dropdown collapse" id="MenuEvents">
<ul class="nav nav-sm flex-column">
@can('event.index')
<li class="nav-item">
<a href="{{ route('event.index') }}"
class="nav-link @if (\Request::is('event') || \Request::is('event/*')) active @endif">Events</a>
</li>
@endcan
@can('holiday.index')
<li class="nav-item">
<a href="{{ route('holiday.index') }}"
class="nav-link @if (\Request::is('holiday') || \Request::is('holiday/*')) active @endif">Holiday</a>
</li>
@endcan
@can('meeting.index')
<li class="nav-item">
<a href="{{ route('meeting.index') }}"
class="nav-link @if (\Request::is('meeting') || \Request::is('meeting/*')) active @endif">Meeting</a>
</li>
@endcan
</ul>
</div>
</li>
<!--- Generator End-->
@can('calendar.index')
<li class="nav-item">
<a class="nav-link menu-link @if (\Request::is('calendar') || \Request::is('calendar/*')) active @endif"
href="{{ route('calendar.index') }}">
<i class="ri-calendar-line"></i> <span data-key="t-widgets">Calendar</span>
</a>
</li>
@endcan
@can(['client.index', 'project.index'])
<!--- PMS Start-->
<li class="nav-item">
<a class="nav-link menu-link {{ \Request::is('client') || \Request::is('project') || \Request::is('task') ? 'active' : '' }}"
href="#PMS" data-bs-toggle="collapse" role="button" aria-expanded="false" aria-controls="PMS">
<i class="ri-calendar-todo-fill"></i> <span data-key="t-vendors">PMS</span>
</a>
<div
class="menu-dropdown {{ \Request::is('client') || \Request::is('project') || \Request::is('task') ? 'show' : '' }} collapse"
id="PMS">
<ul class="nav nav-sm flex-column">
@can('client.index')
<li class="nav-item">
<a href="{{ route('client.index') }}"
class="nav-link @if (\Request::is('client') || \Request::is('client/*')) active @endif">Client</a>
</li>
@endcan
@can('project.index')
<li class="nav-item">
<a href="{{ route('project.index') }}"
class="nav-link @if (\Request::is('project') || \Request::is('project/*')) active @endif">Projects</a>
</li>
@endcan
@can('task.index')
<li class="nav-item">
<a href="{{ route('task.index') }}"
class="nav-link @if (\Request::is('task') || \Request::is('task/*')) active @endif">Tasks</a>
</li>
@endcan
<li class="nav-item">
<a href="{{ route('ticket.index') }}"
class="nav-link @if (\Request::is('ticket') || \Request::is('ticket/*')) active @endif">Ticket</a>
</li>
</ul>
</div>
</li>
<!--- PMS End-->
@endcan
@role('admin')
<!--- Recruit Start-->
<li class="nav-item">
<a class="nav-link menu-link" href="#MenuRecruit" data-bs-toggle="collapse" role="button"
aria-expanded="false" aria-controls="MenuRecruit">
<i class="ri-dashboard-2-line"></i> <span data-key="t-recruits">Recruit</span>
</a>
<div class="menu-dropdown collapse" id="MenuRecruit">
<ul class="nav nav-sm flex-column">
<li class="nav-item">
<a href="{{ route('jobPost.index') }}"
class="nav-link @if (\Request::is('job-post') || \Request::is('job-post/*')) active @endif">Job Posts</a>
</li>
<li class="nav-item">
<a href="{{ route('jobApplication.index') }}"
class="nav-link @if (\Request::is('job-application') || \Request::is('job-application/*')) active @endif">Job Applications</a>
</li>
<li class="nav-item">
<a href="{{ route('interviewSchedule.index') }}"
class="nav-link @if (\Request::is('interview-schedule') || \Request::is('interview-schedule/*')) active @endif">Interview Schedules</a>
</li>
<li class="nav-item">
<a href="{{ route('offerLetter.index') }}"
class="nav-link @if (\Request::is('offer-letter') || \Request::is('offer-letter/*')) active @endif">Offer Letters</a>
</li>
</ul>
</div>
</li>
<!--- Recruit End-->
@endrole
@can(['asset.index'])
{{-- @can(['asset.index'])
<!--- Asset Start-->
<li class="nav-item">
@ -367,81 +108,47 @@
</div>
</li>
<!--- Asset End-->
@endcan
@endcan --}}
@can(['payment.index'])
<!--- Payment Start-->
<li class="nav-item">
<a class="nav-link menu-link" href="#MenuPayrolls" data-bs-toggle="collapse" role="button"
aria-expanded="false" aria-controls="MenuPayrolls">
<i class="ri-dashboard-2-line"></i> <span data-key="t-payrolls">Payrolls</span>
</a>
<div class="menu-dropdown collapse" id="MenuPayrolls">
<ul class="nav nav-sm flex-column">
<li class="nav-item">
<a href="{{ route('customer.index') }}" class="nav-link @if (\Request::is('customer') || \Request::is('customer/*')) active @endif"><i
class="ri-team-line"></i>Customers</a>
</li>
@can('payment.index')
<li class="nav-item">
<a href="{{ route('payment.index') }}"
class="nav-link @if (\Request::is('payment') || \Request::is('payment/*')) active @endif">Payments</a>
</li>
@endcan
</ul>
</div>
</li>
<!--- Payment End-->
@endcan
@role('admin')
<!--- Generator Start-->
<li class="nav-item">
<a class="nav-link menu-link" href="#MenuOffices" data-bs-toggle="collapse" role="button"
aria-expanded="false" aria-controls="MenuOffices">
<i class="ri-dashboard-2-line"></i> <span data-key="t-office">Office Management</span>
</a>
<div class="menu-dropdown collapse" id="MenuOffices">
<ul class="nav nav-sm flex-column">
@can('generator.index')
<li class="nav-item">
<a href="{{ route('generator.index') }}"
class="nav-link @if (\Request::is('generator') || \Request::is('generator/*')) active @endif">Generators</a>
</li>
@endcan
@can('generatorLogBook.index')
<li class="nav-item">
<a href="{{ route('generatorLogBook.index') }}"
class="nav-link @if (\Request::is('generator-log-book') || \Request::is('generator-log-book/*')) active @endif">Generator LogBook</a>
</li>
@endcan
@can('contract.index')
<li class="nav-item">
<a href="{{ route('contract.index') }}"
class="nav-link @if (\Request::is('contract') || \Request::is('contract/*')) active @endif">Contract</a>
</li>
@endcan
@can('deposit.index')
<li class="nav-item">
<a href="{{ route('deposit.index') }}"
class="nav-link @if (\Request::is('deposit') || \Request::is('deposit/*')) active @endif">Deposit</a>
</li>
@endcan
@can('purchaseService.index')
<li class="nav-item">
<a href="{{ route('purchaseService.index') }}"
class="nav-link @if (\Request::is('purchase-service') || \Request::is('purchase-service/*')) active @endif">Purchased Services</a>
</li>
@endcan
<li class="nav-item">
<a href="{{ route('supplier.index') }}" class="nav-link @if (\Request::is('supplier') || \Request::is('supplier/*')) active @endif"><i
class="ri-team-line"></i>Suppliers</a>
</li>
</ul>
</div>
</li>
<!--- Generator End-->
@endrole
<li class="menu-title"><i class="ri-more-fill"></i> <span data-key="t-pages">Inventory</span></li>
<li class="nav-item">
<a class="nav-link @if (\Request::is('product') || \Request::is('product/*')) active @endif"
href="{{ route('product.index') }}">Products</a>
</li>
<li class="nav-item">
<a href="{{ route('category.index') }}"
class="nav-link @if (\Request::is('category') || \Request::is('category/*')) active @endif">Category</a>
</li>
<li class="nav-item">
<a href="{{ route('subCategory.index') }}"
class="nav-link @if (\Request::is('subCategory') || \Request::is('subCategory/*')) active @endif">Sub Category</a>
</li>
<li class="nav-item">
<a href="{{ route('warehouse.index') }}"
class="nav-link @if (\Request::is('warehouse') || \Request::is('warehouse/*')) active @endif">Warehouses</a>
</li>
<li class="nav-item">
<a href="{{ route('order.index') }}"
class="nav-link @if (\Request::is('order') || \Request::is('order/*')) active @endif">Order</a>
</li>
{{-- <li class="nav-item">
<a href="{{ route('product.index') }}"
class="nav-link @if (\Request::is('attendance') || \Request::is('attendance/*')) active @endif">Order</a>
</li> --}}
{{-- <li class="nav-item">
<a class="nav-link menu-link" href="#taxation" data-bs-toggle="collapse" role="button" aria-expanded="false"
@ -458,32 +165,17 @@
</ul>
</div>
</li>
<li class="nav-item">
<a class="nav-link menu-link" href="#MenuTwo" data-bs-toggle="collapse" role="button" aria-expanded="false"
aria-controls="MenuTwo">
<i class="ri-shopping-cart-2-line"></i> <span data-key="t-vendors">Vendor Setup</span>
</a>
<div class="menu-dropdown collapse" id="MenuTwo">
<ul class="nav nav-sm flex-column">
<li class="nav-item">
<a href="{{ route('vendors.index') }}"
class="nav-link @if (\Request::is('vendors') || \Request::is('vendors/*')) active @endif">Vendor</a>
</li>
</ul>
</div>
</li> --}}
--}}
{{-- <li class="nav-item">
<a href="#" class="nav-link"> <i class="ri-settings-2-line"></i>Setting</a>
</li> --}}
<li class="menu-title"><i class="ri-more-fill"></i> <span data-key="t-pages">Setting</span></li>
@role('admin')
<li class="menu-title"><i class="ri-more-fill"></i> <span data-key="t-pages">Setting</span></li>
<li class="nav-item">
<a class="nav-link menu-link" href="#MenuUser" data-bs-toggle="collapse" role="button"
aria-expanded="false" aria-controls="MenuUser">
<a class="nav-link menu-link" href="#MenuUser" data-bs-toggle="collapse" role="button" aria-expanded="false"
aria-controls="MenuUser">
<i class="ri-user-2-line"></i> <span data-key="t-Users">User Management</span>
</a>
<div class="menu-dropdown collapse" id="MenuUser">
@ -555,7 +247,6 @@
@endrole
</ul>
</div>
<!-- Sidebar -->

View File

@ -843,7 +843,7 @@ class LaravelDebugbar extends DebugBar
*/
protected function isDebugbarRequest()
{
return $this->app['request']->segment(1) == $this->app['config']->get('debugbar.route_prefix');
return $this->app['request']->is($this->app['config']->get('debugbar.route_prefix') . '*');
}
/**

View File

@ -554,6 +554,9 @@ ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item {
border: none;
font-family: inherit;
overflow: visible;
}
ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item .phpdebugbar-widgets-sql {
line-height: 20px;
}

View File

@ -2,6 +2,24 @@
All notable changes to this project will be documented in this file.
## [0.12.1](https://github.com/brick/math/releases/tag/0.12.1) - 2023-11-29
⚡️ **Performance improvements**
- `BigNumber::of()` is now faster, thanks to [@SebastienDug](https://github.com/SebastienDug) in [#77](https://github.com/brick/math/pull/77).
## [0.12.0](https://github.com/brick/math/releases/tag/0.12.0) - 2023-11-26
💥 **Breaking changes**
- Minimum PHP version is now 8.1
- `RoundingMode` is now an `enum`; if you're type-hinting rounding modes, you need to type-hint against `RoundingMode` instead of `int` now
- `BigNumber` classes do not implement the `Serializable` interface anymore (they use the [new custom object serialization mechanism](https://wiki.php.net/rfc/custom_object_serialization))
- The following breaking changes only affect you if you're creating your own `BigNumber` subclasses:
- the return type of `BigNumber::of()` is now `static`
- `BigNumber` has a new abstract method `from()`
- all `public` and `protected` functions of `BigNumber` are now `final`
## [0.11.0](https://github.com/brick/math/releases/tag/0.11.0) - 2023-01-16
💥 **Breaking changes**

View File

@ -5,21 +5,26 @@
"keywords": [
"Brick",
"Math",
"Mathematics",
"Arbitrary-precision",
"Arithmetic",
"BigInteger",
"BigDecimal",
"BigRational",
"Bignum"
"BigNumber",
"Bignum",
"Decimal",
"Rational",
"Integer"
],
"license": "MIT",
"require": {
"php": "^8.0"
"php": "^8.1"
},
"require-dev": {
"phpunit/phpunit": "^9.0",
"phpunit/phpunit": "^10.1",
"php-coveralls/php-coveralls": "^2.2",
"vimeo/psalm": "5.0.0"
"vimeo/psalm": "5.16.0"
},
"autoload": {
"psr-4": {

View File

@ -23,14 +23,14 @@ final class BigDecimal extends BigNumber
* No leading zero must be present.
* No leading minus sign must be present if the value is 0.
*/
private string $value;
private readonly string $value;
/**
* The scale (number of digits after the decimal point) of this decimal number.
*
* This must be zero or more.
*/
private int $scale;
private readonly int $scale;
/**
* Protected constructor. Use a factory method to obtain an instance.
@ -45,15 +45,11 @@ final class BigDecimal extends BigNumber
}
/**
* Creates a BigDecimal of the given value.
*
* @throws MathException If the value cannot be converted to a BigDecimal.
*
* @psalm-pure
*/
public static function of(BigNumber|int|float|string $value) : BigDecimal
protected static function from(BigNumber $number): static
{
return parent::of($value)->toBigDecimal();
return $number->toBigDecimal();
}
/**
@ -223,12 +219,12 @@ final class BigDecimal extends BigNumber
*
* @param BigNumber|int|float|string $that The divisor.
* @param int|null $scale The desired scale, or null to use the scale of this number.
* @param int $roundingMode An optional rounding mode.
* @param RoundingMode $roundingMode An optional rounding mode, defaults to UNNECESSARY.
*
* @throws \InvalidArgumentException If the scale or rounding mode is invalid.
* @throws MathException If the number is invalid, is zero, or rounding was necessary.
*/
public function dividedBy(BigNumber|int|float|string $that, ?int $scale = null, int $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
public function dividedBy(BigNumber|int|float|string $that, ?int $scale = null, RoundingMode $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
{
$that = BigDecimal::of($that);
@ -324,7 +320,7 @@ final class BigDecimal extends BigNumber
}
/**
* Returns the quotient of the division of this number by this given one.
* Returns the quotient of the division of this number by the given one.
*
* The quotient has a scale of `0`.
*
@ -349,7 +345,7 @@ final class BigDecimal extends BigNumber
}
/**
* Returns the remainder of the division of this number by this given one.
* Returns the remainder of the division of this number by the given one.
*
* The remainder has a scale of `max($this->scale, $that->scale)`.
*
@ -384,6 +380,8 @@ final class BigDecimal extends BigNumber
*
* @return BigDecimal[] An array containing the quotient and the remainder.
*
* @psalm-return array{BigDecimal, BigDecimal}
*
* @throws MathException If the divisor is not a valid decimal number, or is zero.
*/
public function quotientAndRemainder(BigNumber|int|float|string $that) : array
@ -631,7 +629,7 @@ final class BigDecimal extends BigNumber
return self::newBigRational($numerator, $denominator, false);
}
public function toScale(int $scale, int $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
public function toScale(int $scale, RoundingMode $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
{
if ($scale === $this->scale) {
return $this;
@ -693,36 +691,6 @@ final class BigDecimal extends BigNumber
$this->scale = $data['scale'];
}
/**
* This method is required by interface Serializable and SHOULD NOT be accessed directly.
*
* @internal
*/
public function serialize() : string
{
return $this->value . ':' . $this->scale;
}
/**
* This method is only here to implement interface Serializable and cannot be accessed directly.
*
* @internal
* @psalm-suppress RedundantPropertyInitializationCheck
*
* @throws \LogicException
*/
public function unserialize($value) : void
{
if (isset($this->value)) {
throw new \LogicException('unserialize() is an internal function, it must not be called directly.');
}
[$value, $scale] = \explode(':', $value);
$this->value = $value;
$this->scale = (int) $scale;
}
/**
* Puts the internal values of the given decimal numbers on the same scale.
*

View File

@ -27,7 +27,7 @@ final class BigInteger extends BigNumber
* No leading zeros must be present.
* No leading minus sign must be present if the number is zero.
*/
private string $value;
private readonly string $value;
/**
* Protected constructor. Use a factory method to obtain an instance.
@ -40,15 +40,11 @@ final class BigInteger extends BigNumber
}
/**
* Creates a BigInteger of the given value.
*
* @throws MathException If the value cannot be converted to a BigInteger.
*
* @psalm-pure
*/
public static function of(BigNumber|int|float|string $value) : BigInteger
protected static function from(BigNumber $number): static
{
return parent::of($value)->toBigInteger();
return $number->toBigInteger();
}
/**
@ -225,9 +221,10 @@ final class BigInteger extends BigNumber
}
if ($randomBytesGenerator === null) {
$randomBytesGenerator = 'random_bytes';
$randomBytesGenerator = random_bytes(...);
}
/** @var int<1, max> $byteLength */
$byteLength = \intdiv($numBits - 1, 8) + 1;
$extraBits = ($byteLength * 8 - $numBits);
@ -429,12 +426,12 @@ final class BigInteger extends BigNumber
* Returns the result of the division of this number by the given one.
*
* @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigInteger.
* @param int $roundingMode An optional rounding mode.
* @param RoundingMode $roundingMode An optional rounding mode, defaults to UNNECESSARY.
*
* @throws MathException If the divisor is not a valid number, is not convertible to a BigInteger, is zero,
* or RoundingMode::UNNECESSARY is used and the remainder is not zero.
*/
public function dividedBy(BigNumber|int|float|string $that, int $roundingMode = RoundingMode::UNNECESSARY) : BigInteger
public function dividedBy(BigNumber|int|float|string $that, RoundingMode $roundingMode = RoundingMode::UNNECESSARY) : BigInteger
{
$that = BigInteger::of($that);
@ -534,6 +531,8 @@ final class BigInteger extends BigNumber
*
* @return BigInteger[] An array containing the quotient and the remainder.
*
* @psalm-return array{BigInteger, BigInteger}
*
* @throws DivisionByZeroException If the divisor is zero.
*/
public function quotientAndRemainder(BigNumber|int|float|string $that) : array
@ -888,7 +887,7 @@ final class BigInteger extends BigNumber
return self::newBigRational($this, BigInteger::one(), false);
}
public function toScale(int $scale, int $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
public function toScale(int $scale, RoundingMode $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
{
return $this->toBigDecimal()->toScale($scale, $roundingMode);
}
@ -1049,31 +1048,4 @@ final class BigInteger extends BigNumber
$this->value = $data['value'];
}
/**
* This method is required by interface Serializable and SHOULD NOT be accessed directly.
*
* @internal
*/
public function serialize() : string
{
return $this->value;
}
/**
* This method is only here to implement interface Serializable and cannot be accessed directly.
*
* @internal
* @psalm-suppress RedundantPropertyInitializationCheck
*
* @throws \LogicException
*/
public function unserialize($value) : void
{
if (isset($this->value)) {
throw new \LogicException('unserialize() is an internal function, it must not be called directly.');
}
$this->value = $value;
}
}

View File

@ -14,26 +14,29 @@ use Brick\Math\Exception\RoundingNecessaryException;
*
* @psalm-immutable
*/
abstract class BigNumber implements \Serializable, \JsonSerializable
abstract class BigNumber implements \JsonSerializable
{
/**
* The regular expression used to parse integer, decimal and rational numbers.
* The regular expression used to parse integer or decimal numbers.
*/
private const PARSE_REGEXP =
private const PARSE_REGEXP_NUMERICAL =
'/^' .
'(?<sign>[\-\+])?' .
'(?:' .
'(?:' .
'(?<integral>[0-9]+)?' .
'(?<point>\.)?' .
'(?<fractional>[0-9]+)?' .
'(?:[eE](?<exponent>[\-\+]?[0-9]+))?' .
')|(?:' .
'(?<numerator>[0-9]+)' .
'\/?' .
'(?<denominator>[0-9]+)' .
')' .
')' .
'(?<integral>[0-9]+)?' .
'(?<point>\.)?' .
'(?<fractional>[0-9]+)?' .
'(?:[eE](?<exponent>[\-\+]?[0-9]+))?' .
'$/';
/**
* The regular expression used to parse rational numbers.
*/
private const PARSE_REGEXP_RATIONAL =
'/^' .
'(?<sign>[\-\+])?' .
'(?<numerator>[0-9]+)' .
'\/?' .
'(?<denominator>[0-9]+)' .
'$/';
/**
@ -53,7 +56,24 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
*
* @psalm-pure
*/
public static function of(BigNumber|int|float|string $value) : BigNumber
final public static function of(BigNumber|int|float|string $value) : static
{
$value = self::_of($value);
if (static::class === BigNumber::class) {
// https://github.com/vimeo/psalm/issues/10309
assert($value instanceof static);
return $value;
}
return static::from($value);
}
/**
* @psalm-pure
*/
private static function _of(BigNumber|int|float|string $value) : BigNumber
{
if ($value instanceof BigNumber) {
return $value;
@ -63,34 +83,25 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
return new BigInteger((string) $value);
}
$value = \is_float($value) ? self::floatToString($value) : $value;
$throw = static function() use ($value) : void {
throw new NumberFormatException(\sprintf(
'The given value "%s" does not represent a valid number.',
$value
));
};
if (\preg_match(self::PARSE_REGEXP, $value, $matches) !== 1) {
$throw();
if (is_float($value)) {
$value = (string) $value;
}
$getMatch = static fn(string $value): ?string => (($matches[$value] ?? '') !== '') ? $matches[$value] : null;
$sign = $getMatch('sign');
$numerator = $getMatch('numerator');
$denominator = $getMatch('denominator');
if ($numerator !== null) {
assert($denominator !== null);
if ($sign !== null) {
$numerator = $sign . $numerator;
if (str_contains($value, '/')) {
// Rational number
if (\preg_match(self::PARSE_REGEXP_RATIONAL, $value, $matches, PREG_UNMATCHED_AS_NULL) !== 1) {
throw NumberFormatException::invalidFormat($value);
}
$numerator = self::cleanUp($numerator);
$denominator = self::cleanUp($denominator);
$sign = $matches['sign'];
$numerator = $matches['numerator'];
$denominator = $matches['denominator'];
assert($numerator !== null);
assert($denominator !== null);
$numerator = self::cleanUp($sign, $numerator);
$denominator = self::cleanUp(null, $denominator);
if ($denominator === '0') {
throw DivisionByZeroException::denominatorMustNotBeZero();
@ -101,67 +112,62 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
new BigInteger($denominator),
false
);
}
$point = $getMatch('point');
$integral = $getMatch('integral');
$fractional = $getMatch('fractional');
$exponent = $getMatch('exponent');
if ($integral === null && $fractional === null) {
$throw();
}
if ($integral === null) {
$integral = '0';
}
if ($point !== null || $exponent !== null) {
$fractional = ($fractional ?? '');
$exponent = ($exponent !== null) ? (int) $exponent : 0;
if ($exponent === PHP_INT_MIN || $exponent === PHP_INT_MAX) {
throw new NumberFormatException('Exponent too large.');
} else {
// Integer or decimal number
if (\preg_match(self::PARSE_REGEXP_NUMERICAL, $value, $matches, PREG_UNMATCHED_AS_NULL) !== 1) {
throw NumberFormatException::invalidFormat($value);
}
$unscaledValue = self::cleanUp(($sign ?? ''). $integral . $fractional);
$sign = $matches['sign'];
$point = $matches['point'];
$integral = $matches['integral'];
$fractional = $matches['fractional'];
$exponent = $matches['exponent'];
$scale = \strlen($fractional) - $exponent;
if ($integral === null && $fractional === null) {
throw NumberFormatException::invalidFormat($value);
}
if ($scale < 0) {
if ($unscaledValue !== '0') {
$unscaledValue .= \str_repeat('0', - $scale);
if ($integral === null) {
$integral = '0';
}
if ($point !== null || $exponent !== null) {
$fractional = ($fractional ?? '');
$exponent = ($exponent !== null) ? (int)$exponent : 0;
if ($exponent === PHP_INT_MIN || $exponent === PHP_INT_MAX) {
throw new NumberFormatException('Exponent too large.');
}
$scale = 0;
$unscaledValue = self::cleanUp($sign, $integral . $fractional);
$scale = \strlen($fractional) - $exponent;
if ($scale < 0) {
if ($unscaledValue !== '0') {
$unscaledValue .= \str_repeat('0', -$scale);
}
$scale = 0;
}
return new BigDecimal($unscaledValue, $scale);
}
return new BigDecimal($unscaledValue, $scale);
$integral = self::cleanUp($sign, $integral);
return new BigInteger($integral);
}
$integral = self::cleanUp(($sign ?? '') . $integral);
return new BigInteger($integral);
}
/**
* Safely converts float to string, avoiding locale-dependent issues.
* Overridden by subclasses to convert a BigNumber to an instance of the subclass.
*
* @see https://github.com/brick/math/pull/20
* @throws MathException If the value cannot be converted.
*
* @psalm-pure
* @psalm-suppress ImpureFunctionCall
*/
private static function floatToString(float $float) : string
{
$currentLocale = \setlocale(LC_NUMERIC, '0');
\setlocale(LC_NUMERIC, 'C');
$result = (string) $float;
\setlocale(LC_NUMERIC, $currentLocale);
return $result;
}
abstract protected static function from(BigNumber $number): static;
/**
* Proxy method to access BigInteger's protected constructor from sibling classes.
@ -169,7 +175,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
* @internal
* @psalm-pure
*/
protected function newBigInteger(string $value) : BigInteger
final protected function newBigInteger(string $value) : BigInteger
{
return new BigInteger($value);
}
@ -180,7 +186,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
* @internal
* @psalm-pure
*/
protected function newBigDecimal(string $value, int $scale = 0) : BigDecimal
final protected function newBigDecimal(string $value, int $scale = 0) : BigDecimal
{
return new BigDecimal($value, $scale);
}
@ -191,7 +197,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
* @internal
* @psalm-pure
*/
protected function newBigRational(BigInteger $numerator, BigInteger $denominator, bool $checkDenominator) : BigRational
final protected function newBigRational(BigInteger $numerator, BigInteger $denominator, bool $checkDenominator) : BigRational
{
return new BigRational($numerator, $denominator, $checkDenominator);
}
@ -205,11 +211,9 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
* @throws \InvalidArgumentException If no values are given.
* @throws MathException If an argument is not valid.
*
* @psalm-suppress LessSpecificReturnStatement
* @psalm-suppress MoreSpecificReturnType
* @psalm-pure
*/
public static function min(BigNumber|int|float|string ...$values) : static
final public static function min(BigNumber|int|float|string ...$values) : static
{
$min = null;
@ -237,11 +241,9 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
* @throws \InvalidArgumentException If no values are given.
* @throws MathException If an argument is not valid.
*
* @psalm-suppress LessSpecificReturnStatement
* @psalm-suppress MoreSpecificReturnType
* @psalm-pure
*/
public static function max(BigNumber|int|float|string ...$values) : static
final public static function max(BigNumber|int|float|string ...$values) : static
{
$max = null;
@ -271,7 +273,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
*
* @psalm-pure
*/
public static function sum(BigNumber|int|float|string ...$values) : static
final public static function sum(BigNumber|int|float|string ...$values) : static
{
/** @var static|null $sum */
$sum = null;
@ -323,37 +325,28 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
}
/**
* Removes optional leading zeros and + sign from the given number.
* Removes optional leading zeros and applies sign.
*
* @param string $number The number, validated as a non-empty string of digits with optional leading sign.
* @param string|null $sign The sign, '+' or '-', optional. Null is allowed for convenience and treated as '+'.
* @param string $number The number, validated as a non-empty string of digits.
*
* @psalm-pure
*/
private static function cleanUp(string $number) : string
private static function cleanUp(string|null $sign, string $number) : string
{
$firstChar = $number[0];
if ($firstChar === '+' || $firstChar === '-') {
$number = \substr($number, 1);
}
$number = \ltrim($number, '0');
if ($number === '') {
return '0';
}
if ($firstChar === '-') {
return '-' . $number;
}
return $number;
return $sign === '-' ? '-' . $number : $number;
}
/**
* Checks if this number is equal to the given one.
*/
public function isEqualTo(BigNumber|int|float|string $that) : bool
final public function isEqualTo(BigNumber|int|float|string $that) : bool
{
return $this->compareTo($that) === 0;
}
@ -361,7 +354,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
/**
* Checks if this number is strictly lower than the given one.
*/
public function isLessThan(BigNumber|int|float|string $that) : bool
final public function isLessThan(BigNumber|int|float|string $that) : bool
{
return $this->compareTo($that) < 0;
}
@ -369,7 +362,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
/**
* Checks if this number is lower than or equal to the given one.
*/
public function isLessThanOrEqualTo(BigNumber|int|float|string $that) : bool
final public function isLessThanOrEqualTo(BigNumber|int|float|string $that) : bool
{
return $this->compareTo($that) <= 0;
}
@ -377,7 +370,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
/**
* Checks if this number is strictly greater than the given one.
*/
public function isGreaterThan(BigNumber|int|float|string $that) : bool
final public function isGreaterThan(BigNumber|int|float|string $that) : bool
{
return $this->compareTo($that) > 0;
}
@ -385,7 +378,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
/**
* Checks if this number is greater than or equal to the given one.
*/
public function isGreaterThanOrEqualTo(BigNumber|int|float|string $that) : bool
final public function isGreaterThanOrEqualTo(BigNumber|int|float|string $that) : bool
{
return $this->compareTo($that) >= 0;
}
@ -393,7 +386,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
/**
* Checks if this number equals zero.
*/
public function isZero() : bool
final public function isZero() : bool
{
return $this->getSign() === 0;
}
@ -401,7 +394,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
/**
* Checks if this number is strictly negative.
*/
public function isNegative() : bool
final public function isNegative() : bool
{
return $this->getSign() < 0;
}
@ -409,7 +402,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
/**
* Checks if this number is negative or zero.
*/
public function isNegativeOrZero() : bool
final public function isNegativeOrZero() : bool
{
return $this->getSign() <= 0;
}
@ -417,7 +410,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
/**
* Checks if this number is strictly positive.
*/
public function isPositive() : bool
final public function isPositive() : bool
{
return $this->getSign() > 0;
}
@ -425,7 +418,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
/**
* Checks if this number is positive or zero.
*/
public function isPositiveOrZero() : bool
final public function isPositiveOrZero() : bool
{
return $this->getSign() >= 0;
}
@ -433,6 +426,8 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
/**
* Returns the sign of this number.
*
* @psalm-return -1|0|1
*
* @return int -1 if the number is negative, 0 if zero, 1 if positive.
*/
abstract public function getSign() : int;
@ -440,7 +435,9 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
/**
* Compares this number to the given one.
*
* @return int [-1,0,1] If `$this` is lower than, equal to, or greater than `$that`.
* @psalm-return -1|0|1
*
* @return int -1 if `$this` is lower than, 0 if equal to, 1 if greater than `$that`.
*
* @throws MathException If the number is not valid.
*/
@ -468,13 +465,13 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
/**
* Converts this number to a BigDecimal with the given scale, using rounding if necessary.
*
* @param int $scale The scale of the resulting `BigDecimal`.
* @param int $roundingMode A `RoundingMode` constant.
* @param int $scale The scale of the resulting `BigDecimal`.
* @param RoundingMode $roundingMode An optional rounding mode, defaults to UNNECESSARY.
*
* @throws RoundingNecessaryException If this number cannot be converted to the given scale without rounding.
* This only applies when RoundingMode::UNNECESSARY is used.
*/
abstract public function toScale(int $scale, int $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal;
abstract public function toScale(int $scale, RoundingMode $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal;
/**
* Returns the exact value of this number as a native integer.
@ -505,7 +502,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
*/
abstract public function __toString() : string;
public function jsonSerialize() : string
final public function jsonSerialize() : string
{
return $this->__toString();
}

View File

@ -21,12 +21,12 @@ final class BigRational extends BigNumber
/**
* The numerator.
*/
private BigInteger $numerator;
private readonly BigInteger $numerator;
/**
* The denominator. Always strictly positive.
*/
private BigInteger $denominator;
private readonly BigInteger $denominator;
/**
* Protected constructor. Use a factory method to obtain an instance.
@ -55,15 +55,11 @@ final class BigRational extends BigNumber
}
/**
* Creates a BigRational of the given value.
*
* @throws MathException If the value cannot be converted to a BigRational.
*
* @psalm-pure
*/
public static function of(BigNumber|int|float|string $value) : BigRational
protected static function from(BigNumber $number): static
{
return parent::of($value)->toBigRational();
return $number->toBigRational();
}
/**
@ -181,6 +177,8 @@ final class BigRational extends BigNumber
* Returns the quotient and remainder of the division of the numerator by the denominator.
*
* @return BigInteger[]
*
* @psalm-return array{BigInteger, BigInteger}
*/
public function quotientAndRemainder() : array
{
@ -353,7 +351,7 @@ final class BigRational extends BigNumber
return $this;
}
public function toScale(int $scale, int $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
public function toScale(int $scale, RoundingMode $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
{
return $this->numerator->toBigDecimal()->dividedBy($this->denominator, $scale, $roundingMode);
}
@ -412,34 +410,4 @@ final class BigRational extends BigNumber
$this->numerator = $data['numerator'];
$this->denominator = $data['denominator'];
}
/**
* This method is required by interface Serializable and SHOULD NOT be accessed directly.
*
* @internal
*/
public function serialize() : string
{
return $this->numerator . '/' . $this->denominator;
}
/**
* This method is only here to implement interface Serializable and cannot be accessed directly.
*
* @internal
* @psalm-suppress RedundantPropertyInitializationCheck
*
* @throws \LogicException
*/
public function unserialize($value) : void
{
if (isset($this->numerator)) {
throw new \LogicException('unserialize() is an internal function, it must not be called directly.');
}
[$numerator, $denominator] = \explode('/', $value);
$this->numerator = BigInteger::of($numerator);
$this->denominator = BigInteger::of($denominator);
}
}

View File

@ -9,6 +9,14 @@ namespace Brick\Math\Exception;
*/
class NumberFormatException extends MathException
{
public static function invalidFormat(string $value) : self
{
return new self(\sprintf(
'The given value "%s" does not represent a valid number.',
$value,
));
}
/**
* @param string $char The failing character.
*
@ -28,6 +36,6 @@ class NumberFormatException extends MathException
$char = '"' . $char . '"';
}
return new self(sprintf('Char %s is not a valid character in the given alphabet.', $char));
return new self(\sprintf('Char %s is not a valid character in the given alphabet.', $char));
}
}

View File

@ -25,7 +25,7 @@ abstract class Calculator
/**
* The maximum exponent value allowed for the pow() method.
*/
public const MAX_POWER = 1000000;
public const MAX_POWER = 1_000_000;
/**
* The alphabet for converting from and to base 2 to 36, lowercase.
@ -128,7 +128,9 @@ abstract class Calculator
/**
* Compares two numbers.
*
* @return int [-1, 0, 1] If the first number is less than, equal to, or greater than the second number.
* @psalm-return -1|0|1
*
* @return int -1 if the first number is less than, 0 if equal to, 1 if greater than the second number.
*/
final public function cmp(string $a, string $b) : int
{
@ -428,16 +430,16 @@ abstract class Calculator
*
* Rounding is performed when the remainder of the division is not zero.
*
* @param string $a The dividend.
* @param string $b The divisor, must not be zero.
* @param int $roundingMode The rounding mode.
* @param string $a The dividend.
* @param string $b The divisor, must not be zero.
* @param RoundingMode $roundingMode The rounding mode.
*
* @throws \InvalidArgumentException If the rounding mode is invalid.
* @throws RoundingNecessaryException If RoundingMode::UNNECESSARY is provided but rounding is necessary.
*
* @psalm-suppress ImpureFunctionCall
*/
final public function divRound(string $a, string $b, int $roundingMode) : string
final public function divRound(string $a, string $b, RoundingMode $roundingMode) : string
{
[$quotient, $remainder] = $this->divQR($a, $b);
@ -571,27 +573,17 @@ abstract class Calculator
$bBin = $this->twosComplement($bBin);
}
switch ($operator) {
case 'and':
$value = $aBin & $bBin;
$negative = ($aNeg and $bNeg);
break;
$value = match ($operator) {
'and' => $aBin & $bBin,
'or' => $aBin | $bBin,
'xor' => $aBin ^ $bBin,
};
case 'or':
$value = $aBin | $bBin;
$negative = ($aNeg or $bNeg);
break;
case 'xor':
$value = $aBin ^ $bBin;
$negative = ($aNeg xor $bNeg);
break;
// @codeCoverageIgnoreStart
default:
throw new \InvalidArgumentException('Invalid bitwise operator.');
// @codeCoverageIgnoreEnd
}
$negative = match ($operator) {
'and' => $aNeg and $bNeg,
'or' => $aNeg or $bNeg,
'xor' => $aNeg xor $bNeg,
};
if ($negative) {
$value = $this->twosComplement($value);

View File

@ -35,10 +35,6 @@ class BcMathCalculator extends Calculator
return \bcdiv($a, $b, 0);
}
/**
* @psalm-suppress InvalidNullableReturnType
* @psalm-suppress NullableReturnStatement
*/
public function divR(string $a, string $b) : string
{
return \bcmod($a, $b, 0);
@ -49,8 +45,6 @@ class BcMathCalculator extends Calculator
$q = \bcdiv($a, $b, 0);
$r = \bcmod($a, $b, 0);
assert($r !== null);
return [$q, $r];
}
@ -64,10 +58,6 @@ class BcMathCalculator extends Calculator
return \bcpowmod($base, $exp, $mod, 0);
}
/**
* @psalm-suppress InvalidNullableReturnType
* @psalm-suppress NullableReturnStatement
*/
public function sqrt(string $n) : string
{
return \bcsqrt($n, 0);

View File

@ -23,25 +23,18 @@ class NativeCalculator extends Calculator
* Example: 32-bit: max number 1,999,999,999 (9 digits + carry)
* 64-bit: max number 1,999,999,999,999,999,999 (18 digits + carry)
*/
private int $maxDigits;
private readonly int $maxDigits;
/**
* @codeCoverageIgnore
*/
public function __construct()
{
switch (PHP_INT_SIZE) {
case 4:
$this->maxDigits = 9;
break;
case 8:
$this->maxDigits = 18;
break;
default:
throw new \RuntimeException('The platform is not 32-bit or 64-bit as expected.');
}
$this->maxDigits = match (PHP_INT_SIZE) {
4 => 9,
8 => 18,
default => throw new \RuntimeException('The platform is not 32-bit or 64-bit as expected.')
};
}
public function add(string $a, string $b) : string
@ -161,10 +154,8 @@ class NativeCalculator extends Calculator
if (is_int($nb)) {
// the only division that may overflow is PHP_INT_MIN / -1,
// which cannot happen here as we've already handled a divisor of -1 above.
$q = intdiv($na, $nb);
$r = $na % $nb;
$q = ($na - $r) / $nb;
assert(is_int($q));
return [
(string) $q,
@ -536,7 +527,7 @@ class NativeCalculator extends Calculator
/**
* Compares two non-signed large numbers.
*
* @return int [-1, 0, 1]
* @psalm-return -1|0|1
*/
private function doCmp(string $a, string $b) : int
{
@ -549,7 +540,7 @@ class NativeCalculator extends Calculator
return $cmp;
}
return \strcmp($a, $b) <=> 0; // enforce [-1, 0, 1]
return \strcmp($a, $b) <=> 0; // enforce -1|0|1
}
/**

View File

@ -13,24 +13,15 @@ namespace Brick\Math;
* regardless the digits' contribution to the value of the number. In other words, considered
* as a numerical value, the discarded fraction could have an absolute value greater than one.
*/
final class RoundingMode
enum RoundingMode
{
/**
* Private constructor. This class is not instantiable.
*
* @codeCoverageIgnore
*/
private function __construct()
{
}
/**
* Asserts that the requested operation has an exact result, hence no rounding is necessary.
*
* If this rounding mode is specified on an operation that yields a result that
* cannot be represented at the requested scale, a RoundingNecessaryException is thrown.
*/
public const UNNECESSARY = 0;
case UNNECESSARY;
/**
* Rounds away from zero.
@ -38,7 +29,7 @@ final class RoundingMode
* Always increments the digit prior to a nonzero discarded fraction.
* Note that this rounding mode never decreases the magnitude of the calculated value.
*/
public const UP = 1;
case UP;
/**
* Rounds towards zero.
@ -46,7 +37,7 @@ final class RoundingMode
* Never increments the digit prior to a discarded fraction (i.e., truncates).
* Note that this rounding mode never increases the magnitude of the calculated value.
*/
public const DOWN = 2;
case DOWN;
/**
* Rounds towards positive infinity.
@ -54,7 +45,7 @@ final class RoundingMode
* If the result is positive, behaves as for UP; if negative, behaves as for DOWN.
* Note that this rounding mode never decreases the calculated value.
*/
public const CEILING = 3;
case CEILING;
/**
* Rounds towards negative infinity.
@ -62,7 +53,7 @@ final class RoundingMode
* If the result is positive, behave as for DOWN; if negative, behave as for UP.
* Note that this rounding mode never increases the calculated value.
*/
public const FLOOR = 4;
case FLOOR;
/**
* Rounds towards "nearest neighbor" unless both neighbors are equidistant, in which case round up.
@ -70,28 +61,28 @@ final class RoundingMode
* Behaves as for UP if the discarded fraction is >= 0.5; otherwise, behaves as for DOWN.
* Note that this is the rounding mode commonly taught at school.
*/
public const HALF_UP = 5;
case HALF_UP;
/**
* Rounds towards "nearest neighbor" unless both neighbors are equidistant, in which case round down.
*
* Behaves as for UP if the discarded fraction is > 0.5; otherwise, behaves as for DOWN.
*/
public const HALF_DOWN = 6;
case HALF_DOWN;
/**
* Rounds towards "nearest neighbor" unless both neighbors are equidistant, in which case round towards positive infinity.
*
* If the result is positive, behaves as for HALF_UP; if negative, behaves as for HALF_DOWN.
*/
public const HALF_CEILING = 7;
case HALF_CEILING;
/**
* Rounds towards "nearest neighbor" unless both neighbors are equidistant, in which case round towards negative infinity.
*
* If the result is positive, behaves as for HALF_DOWN; if negative, behaves as for HALF_UP.
*/
public const HALF_FLOOR = 8;
case HALF_FLOOR;
/**
* Rounds towards the "nearest neighbor" unless both neighbors are equidistant, in which case rounds towards the even neighbor.
@ -103,5 +94,5 @@ final class RoundingMode
* cumulative error when applied repeatedly over a sequence of calculations.
* It is sometimes known as "Banker's rounding", and is chiefly used in the USA.
*/
public const HALF_EVEN = 9;
case HALF_EVEN;
}

View File

@ -43,6 +43,7 @@ return array(
'App\\Notifications\\HrActionNotification' => $baseDir . '/app/Notifications/HrActionNotification.php',
'App\\Notifications\\SendNotification' => $baseDir . '/app/Notifications/SendNotification.php',
'App\\Observers\\AppreciationObserver' => $baseDir . '/app/Observers/AppreciationObserver.php',
'App\\Observers\\InterviewScheduleObserver' => $baseDir . '/app/Observers/InterviewScheduleObserver.php',
'App\\Observers\\PromotionDemotionObserver' => $baseDir . '/app/Observers/PromotionDemotionObserver.php',
'App\\Observers\\WarningObserver' => $baseDir . '/app/Observers/WarningObserver.php',
'App\\Providers\\AppServiceProvider' => $baseDir . '/app/Providers/AppServiceProvider.php',
@ -2538,6 +2539,7 @@ return array(
'Laravel\\Prompts\\Themes\\Contracts\\Scrolling' => $vendorDir . '/laravel/prompts/src/Themes/Contracts/Scrolling.php',
'Laravel\\Prompts\\Themes\\Default\\Concerns\\DrawsBoxes' => $vendorDir . '/laravel/prompts/src/Themes/Default/Concerns/DrawsBoxes.php',
'Laravel\\Prompts\\Themes\\Default\\Concerns\\DrawsScrollbars' => $vendorDir . '/laravel/prompts/src/Themes/Default/Concerns/DrawsScrollbars.php',
'Laravel\\Prompts\\Themes\\Default\\Concerns\\InteractsWithStrings' => $vendorDir . '/laravel/prompts/src/Themes/Default/Concerns/InteractsWithStrings.php',
'Laravel\\Prompts\\Themes\\Default\\ConfirmPromptRenderer' => $vendorDir . '/laravel/prompts/src/Themes/Default/ConfirmPromptRenderer.php',
'Laravel\\Prompts\\Themes\\Default\\MultiSearchPromptRenderer' => $vendorDir . '/laravel/prompts/src/Themes/Default/MultiSearchPromptRenderer.php',
'Laravel\\Prompts\\Themes\\Default\\MultiSelectPromptRenderer' => $vendorDir . '/laravel/prompts/src/Themes/Default/MultiSelectPromptRenderer.php',
@ -3175,6 +3177,13 @@ return array(
'Modules\\Asset\\Repositories\\AssetDemandRepository' => $baseDir . '/Modules/Asset/app/Repositories/AssetDemandRepository.php',
'Modules\\Asset\\Repositories\\AssetInterface' => $baseDir . '/Modules/Asset/app/Repositories/AssetInterface.php',
'Modules\\Asset\\Repositories\\AssetRepository' => $baseDir . '/Modules/Asset/app/Repositories/AssetRepository.php',
'Modules\\Attendance\\Http\\Controllers\\AttendanceController' => $baseDir . '/Modules/Attendance/app/Http/Controllers/AttendanceController.php',
'Modules\\Attendance\\Http\\Controllers\\ReportController' => $baseDir . '/Modules/Attendance/app/Http/Controllers/ReportController.php',
'Modules\\Attendance\\Models\\Attendance' => $baseDir . '/Modules/Attendance/app/Models/Attendance.php',
'Modules\\Attendance\\Providers\\AttendanceServiceProvider' => $baseDir . '/Modules/Attendance/app/Providers/AttendanceServiceProvider.php',
'Modules\\Attendance\\Providers\\RouteServiceProvider' => $baseDir . '/Modules/Attendance/app/Providers/RouteServiceProvider.php',
'Modules\\Attendance\\Repositories\\AttendanceInterface' => $baseDir . '/Modules/Attendance/app/Repositories/AttendanceInterface.php',
'Modules\\Attendance\\Repositories\\AttendanceRepository' => $baseDir . '/Modules/Attendance/app/Repositories/AttendanceRepository.php',
'Modules\\Customer\\Http\\Controllers\\CustomerController' => $baseDir . '/Modules/Customer/app/Http/Controllers/CustomerController.php',
'Modules\\Customer\\Models\\Customer' => $baseDir . '/Modules/Customer/app/Models/Customer.php',
'Modules\\Customer\\Providers\\CustomerServiceProvider' => $baseDir . '/Modules/Customer/app/Providers/CustomerServiceProvider.php',
@ -3187,6 +3196,46 @@ return array(
'Modules\\Employee\\Providers\\RouteServiceProvider' => $baseDir . '/Modules/Employee/app/Providers/RouteServiceProvider.php',
'Modules\\Employee\\Repositories\\EmployeeInterface' => $baseDir . '/Modules/Employee/app/Repositories/EmployeeInterface.php',
'Modules\\Employee\\Repositories\\EmployeeRepository' => $baseDir . '/Modules/Employee/app/Repositories/EmployeeRepository.php',
'Modules\\Leave\\Http\\Controllers\\LeaveController' => $baseDir . '/Modules/Leave/app/Http/Controllers/LeaveController.php',
'Modules\\Leave\\Http\\Controllers\\LeaveTypeController' => $baseDir . '/Modules/Leave/app/Http/Controllers/LeaveTypeController.php',
'Modules\\Leave\\Http\\Requests\\LeaveTypeRequest' => $baseDir . '/Modules/Leave/app/Http/Requests/LeaveTypeRequest.php',
'Modules\\Leave\\Models\\Leave' => $baseDir . '/Modules/Leave/app/Models/Leave.php',
'Modules\\Leave\\Models\\LeaveType' => $baseDir . '/Modules/Leave/app/Models/LeaveType.php',
'Modules\\Leave\\Providers\\LeaveServiceProvider' => $baseDir . '/Modules/Leave/app/Providers/LeaveServiceProvider.php',
'Modules\\Leave\\Providers\\RouteServiceProvider' => $baseDir . '/Modules/Leave/app/Providers/RouteServiceProvider.php',
'Modules\\Leave\\Repositories\\LeaveInterface' => $baseDir . '/Modules/Leave/app/Repositories/LeaveInterface.php',
'Modules\\Leave\\Repositories\\LeaveRepository' => $baseDir . '/Modules/Leave/app/Repositories/LeaveRepository.php',
'Modules\\Leave\\Repositories\\LeaveTypeInterface' => $baseDir . '/Modules/Leave/app/Repositories/LeaveTypeInterface.php',
'Modules\\Leave\\Repositories\\LeaveTypeRepository' => $baseDir . '/Modules/Leave/app/Repositories/LeaveTypeRepository.php',
'Modules\\Meeting\\Http\\Controllers\\MeetingController' => $baseDir . '/Modules/Meeting/app/Http/Controllers/MeetingController.php',
'Modules\\Meeting\\Models\\Meeting' => $baseDir . '/Modules/Meeting/app/Models/Meeting.php',
'Modules\\Meeting\\Providers\\MeetingServiceProvider' => $baseDir . '/Modules/Meeting/app/Providers/MeetingServiceProvider.php',
'Modules\\Meeting\\Providers\\RouteServiceProvider' => $baseDir . '/Modules/Meeting/app/Providers/RouteServiceProvider.php',
'Modules\\Meeting\\Repositories\\MeetingInterface' => $baseDir . '/Modules/Meeting/app/Repositories/MeetingInterface.php',
'Modules\\Meeting\\Repositories\\MeetingRepository' => $baseDir . '/Modules/Meeting/app/Repositories/MeetingRepository.php',
'Modules\\Office\\Http\\Controllers\\ContractController' => $baseDir . '/Modules/Office/app/Http/Controllers/ContractController.php',
'Modules\\Office\\Http\\Controllers\\DepositController' => $baseDir . '/Modules/Office/app/Http/Controllers/DepositController.php',
'Modules\\Office\\Http\\Controllers\\GeneratorController' => $baseDir . '/Modules/Office/app/Http/Controllers/GeneratorController.php',
'Modules\\Office\\Http\\Controllers\\GeneratorLogBookController' => $baseDir . '/Modules/Office/app/Http/Controllers/GeneratorLogBookController.php',
'Modules\\Office\\Http\\Controllers\\OfficeController' => $baseDir . '/Modules/Office/app/Http/Controllers/OfficeController.php',
'Modules\\Office\\Http\\Controllers\\PurchaseServiceController' => $baseDir . '/Modules/Office/app/Http/Controllers/PurchaseServiceController.php',
'Modules\\Office\\Models\\Contract' => $baseDir . '/Modules/Office/app/Models/Contract.php',
'Modules\\Office\\Models\\Deposit' => $baseDir . '/Modules/Office/app/Models/Deposit.php',
'Modules\\Office\\Models\\Generator' => $baseDir . '/Modules/Office/app/Models/Generator.php',
'Modules\\Office\\Models\\GeneratorLogBook' => $baseDir . '/Modules/Office/app/Models/GeneratorLogBook.php',
'Modules\\Office\\Models\\PurchaseService' => $baseDir . '/Modules/Office/app/Models/PurchaseService.php',
'Modules\\Office\\Providers\\OfficeServiceProvider' => $baseDir . '/Modules/Office/app/Providers/OfficeServiceProvider.php',
'Modules\\Office\\Providers\\RouteServiceProvider' => $baseDir . '/Modules/Office/app/Providers/RouteServiceProvider.php',
'Modules\\Office\\Repositories\\ContractInterface' => $baseDir . '/Modules/Office/app/Repositories/ContractInterface.php',
'Modules\\Office\\Repositories\\ContractRepository' => $baseDir . '/Modules/Office/app/Repositories/ContractRepository.php',
'Modules\\Office\\Repositories\\DepositInterface' => $baseDir . '/Modules/Office/app/Repositories/DepositInterface.php',
'Modules\\Office\\Repositories\\DepositRepository' => $baseDir . '/Modules/Office/app/Repositories/DepositRepository.php',
'Modules\\Office\\Repositories\\GeneratorInterface' => $baseDir . '/Modules/Office/app/Repositories/GeneratorInterface.php',
'Modules\\Office\\Repositories\\GeneratorLogBookInterface' => $baseDir . '/Modules/Office/app/Repositories/GeneratorLogBookInterface.php',
'Modules\\Office\\Repositories\\GeneratorLogBookRepository' => $baseDir . '/Modules/Office/app/Repositories/GeneratorLogBookRepository.php',
'Modules\\Office\\Repositories\\GeneratorRepository' => $baseDir . '/Modules/Office/app/Repositories/GeneratorRepository.php',
'Modules\\Office\\Repositories\\PurchaseServiceInterface' => $baseDir . '/Modules/Office/app/Repositories/PurchaseServiceInterface.php',
'Modules\\Office\\Repositories\\PurchaseServiceRepository' => $baseDir . '/Modules/Office/app/Repositories/PurchaseServiceRepository.php',
'Modules\\Order\\Http\\Controllers\\OrderController' => $baseDir . '/Modules/Order/app/Http/Controllers/OrderController.php',
'Modules\\Order\\Models\\Order' => $baseDir . '/Modules/Order/app/Models/Order.php',
'Modules\\Order\\Models\\OrderDetail' => $baseDir . '/Modules/Order/app/Models/OrderDetail.php',
@ -3194,6 +3243,33 @@ return array(
'Modules\\Order\\Providers\\RouteServiceProvider' => $baseDir . '/Modules/Order/app/Providers/RouteServiceProvider.php',
'Modules\\Order\\Repositories\\OrderInterface' => $baseDir . '/Modules/Order/app/Repositories/OrderInterface.php',
'Modules\\Order\\Repositories\\OrderRepository' => $baseDir . '/Modules/Order/app/Repositories/OrderRepository.php',
'Modules\\PMS\\Http\\Controllers\\ClientController' => $baseDir . '/Modules/PMS/app/Http/Controllers/ClientController.php',
'Modules\\PMS\\Http\\Controllers\\PMSController' => $baseDir . '/Modules/PMS/app/Http/Controllers/PMSController.php',
'Modules\\PMS\\Http\\Controllers\\ProjectController' => $baseDir . '/Modules/PMS/app/Http/Controllers/ProjectController.php',
'Modules\\PMS\\Http\\Controllers\\TaskController' => $baseDir . '/Modules/PMS/app/Http/Controllers/TaskController.php',
'Modules\\PMS\\Http\\Controllers\\TicketController' => $baseDir . '/Modules/PMS/app/Http/Controllers/TicketController.php',
'Modules\\PMS\\Http\\Requests\\ClientRequest' => $baseDir . '/Modules/PMS/app/Http/Requests/ClientRequest.php',
'Modules\\PMS\\Models\\Client' => $baseDir . '/Modules/PMS/app/Models/Client.php',
'Modules\\PMS\\Models\\Project' => $baseDir . '/Modules/PMS/app/Models/Project.php',
'Modules\\PMS\\Models\\Task' => $baseDir . '/Modules/PMS/app/Models/Task.php',
'Modules\\PMS\\Models\\Ticket' => $baseDir . '/Modules/PMS/app/Models/Ticket.php',
'Modules\\PMS\\Providers\\PMSServiceProvider' => $baseDir . '/Modules/PMS/app/Providers/PMSServiceProvider.php',
'Modules\\PMS\\Providers\\RouteServiceProvider' => $baseDir . '/Modules/PMS/app/Providers/RouteServiceProvider.php',
'Modules\\PMS\\Repositories\\ClientInterface' => $baseDir . '/Modules/PMS/app/Repositories/ClientInterface.php',
'Modules\\PMS\\Repositories\\ClientRepository' => $baseDir . '/Modules/PMS/app/Repositories/ClientRepository.php',
'Modules\\PMS\\Repositories\\ProjectInterface' => $baseDir . '/Modules/PMS/app/Repositories/ProjectInterface.php',
'Modules\\PMS\\Repositories\\ProjectRepository' => $baseDir . '/Modules/PMS/app/Repositories/ProjectRepository.php',
'Modules\\PMS\\Repositories\\TaskInterface' => $baseDir . '/Modules/PMS/app/Repositories/TaskInterface.php',
'Modules\\PMS\\Repositories\\TaskRepository' => $baseDir . '/Modules/PMS/app/Repositories/TaskRepository.php',
'Modules\\PMS\\Repositories\\TicketInterface' => $baseDir . '/Modules/PMS/app/Repositories/TicketInterface.php',
'Modules\\PMS\\Repositories\\TicketRepository' => $baseDir . '/Modules/PMS/app/Repositories/TicketRepository.php',
'Modules\\Payroll\\Http\\Controllers\\PaymentController' => $baseDir . '/Modules/Payroll/app/Http/Controllers/PaymentController.php',
'Modules\\Payroll\\Http\\Controllers\\PayrollController' => $baseDir . '/Modules/Payroll/app/Http/Controllers/PayrollController.php',
'Modules\\Payroll\\Models\\Payment' => $baseDir . '/Modules/Payroll/app/Models/Payment.php',
'Modules\\Payroll\\Providers\\PayrollServiceProvider' => $baseDir . '/Modules/Payroll/app/Providers/PayrollServiceProvider.php',
'Modules\\Payroll\\Providers\\RouteServiceProvider' => $baseDir . '/Modules/Payroll/app/Providers/RouteServiceProvider.php',
'Modules\\Payroll\\Repositories\\PaymentInterface' => $baseDir . '/Modules/Payroll/app/Repositories/PaymentInterface.php',
'Modules\\Payroll\\Repositories\\PaymentRepository' => $baseDir . '/Modules/Payroll/app/Repositories/PaymentRepository.php',
'Modules\\Product\\Http\\Controllers\\CategoryController' => $baseDir . '/Modules/Product/app/Http/Controllers/CategoryController.php',
'Modules\\Product\\Http\\Controllers\\ProductController' => $baseDir . '/Modules/Product/app/Http/Controllers/ProductController.php',
'Modules\\Product\\Http\\Controllers\\SubCategoryController' => $baseDir . '/Modules/Product/app/Http/Controllers/SubCategoryController.php',
@ -3213,12 +3289,62 @@ return array(
'Modules\\Product\\Repositories\\SubCategoryRepository' => $baseDir . '/Modules/Product/app/Repositories/SubCategoryRepository.php',
'Modules\\Product\\Repositories\\WarehouseInterface' => $baseDir . '/Modules/Product/app/Repositories/WarehouseInterface.php',
'Modules\\Product\\Repositories\\WarehouseRepository' => $baseDir . '/Modules/Product/app/Repositories/WarehouseRepository.php',
'Modules\\Recruit\\Http\\Controllers\\InterviewScheduleController' => $baseDir . '/Modules/Recruit/app/Http/Controllers/InterviewScheduleController.php',
'Modules\\Recruit\\Http\\Controllers\\JobApplicationController' => $baseDir . '/Modules/Recruit/app/Http/Controllers/JobApplicationController.php',
'Modules\\Recruit\\Http\\Controllers\\JobPostController' => $baseDir . '/Modules/Recruit/app/Http/Controllers/JobPostController.php',
'Modules\\Recruit\\Http\\Controllers\\OfferLetterController' => $baseDir . '/Modules/Recruit/app/Http/Controllers/OfferLetterController.php',
'Modules\\Recruit\\Http\\Controllers\\RecruitController' => $baseDir . '/Modules/Recruit/app/Http/Controllers/RecruitController.php',
'Modules\\Recruit\\Models\\InterviewSchedule' => $baseDir . '/Modules/Recruit/app/Models/InterviewSchedule.php',
'Modules\\Recruit\\Models\\JobApplication' => $baseDir . '/Modules/Recruit/app/Models/JobApplication.php',
'Modules\\Recruit\\Models\\JobPost' => $baseDir . '/Modules/Recruit/app/Models/JobPost.php',
'Modules\\Recruit\\Models\\OfferLetter' => $baseDir . '/Modules/Recruit/app/Models/OfferLetter.php',
'Modules\\Recruit\\Providers\\RecruitServiceProvider' => $baseDir . '/Modules/Recruit/app/Providers/RecruitServiceProvider.php',
'Modules\\Recruit\\Providers\\RouteServiceProvider' => $baseDir . '/Modules/Recruit/app/Providers/RouteServiceProvider.php',
'Modules\\Recruit\\Repositories\\InterviewScheduleInterface' => $baseDir . '/Modules/Recruit/app/Repositories/InterviewScheduleInterface.php',
'Modules\\Recruit\\Repositories\\InterviewScheduleRepository' => $baseDir . '/Modules/Recruit/app/Repositories/InterviewScheduleRepository.php',
'Modules\\Recruit\\Repositories\\JobApplicationInterface' => $baseDir . '/Modules/Recruit/app/Repositories/JobApplicationInterface.php',
'Modules\\Recruit\\Repositories\\JobApplicationRepository' => $baseDir . '/Modules/Recruit/app/Repositories/JobApplicationRepository.php',
'Modules\\Recruit\\Repositories\\JobPostInterface' => $baseDir . '/Modules/Recruit/app/Repositories/JobPostInterface.php',
'Modules\\Recruit\\Repositories\\JobPostRepository' => $baseDir . '/Modules/Recruit/app/Repositories/JobPostRepository.php',
'Modules\\Recruit\\Repositories\\OfferLetterInterface' => $baseDir . '/Modules/Recruit/app/Repositories/OfferLetterInterface.php',
'Modules\\Recruit\\Repositories\\OfferLetterRepository' => $baseDir . '/Modules/Recruit/app/Repositories/OfferLetterRepository.php',
'Modules\\Settings\\Database\\Seeders\\SettingsDatabaseSeeder' => $baseDir . '/Modules/Settings/database/seeders/SettingsDatabaseSeeder.php',
'Modules\\Settings\\Http\\Controllers\\SettingsController' => $baseDir . '/Modules/Settings/app/Http/Controllers/SettingsController.php',
'Modules\\Settings\\Models\\Setting' => $baseDir . '/Modules/Settings/app/Models/Setting.php',
'Modules\\Settings\\Providers\\EventServiceProvider' => $baseDir . '/Modules/Settings/app/Providers/EventServiceProvider.php',
'Modules\\Settings\\Providers\\RouteServiceProvider' => $baseDir . '/Modules/Settings/app/Providers/RouteServiceProvider.php',
'Modules\\Settings\\Providers\\SettingsServiceProvider' => $baseDir . '/Modules/Settings/app/Providers/SettingsServiceProvider.php',
'Modules\\Stocks\\Database\\Seeders\\StocksDatabaseSeeder' => $baseDir . '/Modules/Stocks/database/seeders/StocksDatabaseSeeder.php',
'Modules\\Stocks\\Http\\Controllers\\StocksController' => $baseDir . '/Modules/Stocks/app/Http/Controllers/StocksController.php',
'Modules\\Stocks\\Models\\PaymentMode' => $baseDir . '/Modules/Stocks/app/Models/PaymentMode.php',
'Modules\\Stocks\\Models\\Stock' => $baseDir . '/Modules/Stocks/app/Models/Stock.php',
'Modules\\Stocks\\Providers\\EventServiceProvider' => $baseDir . '/Modules/Stocks/app/Providers/EventServiceProvider.php',
'Modules\\Stocks\\Providers\\RouteServiceProvider' => $baseDir . '/Modules/Stocks/app/Providers/RouteServiceProvider.php',
'Modules\\Stocks\\Providers\\StocksServiceProvider' => $baseDir . '/Modules/Stocks/app/Providers/StocksServiceProvider.php',
'Modules\\Supplier\\Http\\Controllers\\SupplierController' => $baseDir . '/Modules/Supplier/app/Http/Controllers/SupplierController.php',
'Modules\\Supplier\\Models\\Supplier' => $baseDir . '/Modules/Supplier/app/Models/Supplier.php',
'Modules\\Supplier\\Providers\\RouteServiceProvider' => $baseDir . '/Modules/Supplier/app/Providers/RouteServiceProvider.php',
'Modules\\Supplier\\Providers\\SupplierServiceProvider' => $baseDir . '/Modules/Supplier/app/Providers/SupplierServiceProvider.php',
'Modules\\Supplier\\Repositories\\SupplierInterface' => $baseDir . '/Modules/Supplier/app/Repositories/SupplierInterface.php',
'Modules\\Supplier\\Repositories\\SupplierRepository' => $baseDir . '/Modules/Supplier/app/Repositories/SupplierRepository.php',
'Modules\\Taxation\\Http\\Controllers\\InvoiceController' => $baseDir . '/Modules/Taxation/app/Http/Controllers/InvoiceController.php',
'Modules\\Taxation\\Http\\Controllers\\TaxationController' => $baseDir . '/Modules/Taxation/app/Http/Controllers/TaxationController.php',
'Modules\\Taxation\\Providers\\RouteServiceProvider' => $baseDir . '/Modules/Taxation/app/Providers/RouteServiceProvider.php',
'Modules\\Taxation\\Providers\\TaxationServiceProvider' => $baseDir . '/Modules/Taxation/app/Providers/TaxationServiceProvider.php',
'Modules\\Training\\Http\\Controllers\\TrainerController' => $baseDir . '/Modules/Training/app/Http/Controllers/TrainerController.php',
'Modules\\Training\\Http\\Controllers\\TrainingListController' => $baseDir . '/Modules/Training/app/Http/Controllers/TrainingListController.php',
'Modules\\Training\\Http\\Controllers\\TrainingTypeController' => $baseDir . '/Modules/Training/app/Http/Controllers/TrainingTypeController.php',
'Modules\\Training\\Models\\Trainer' => $baseDir . '/Modules/Training/app/Models/Trainer.php',
'Modules\\Training\\Models\\TrainingList' => $baseDir . '/Modules/Training/app/Models/TrainingList.php',
'Modules\\Training\\Models\\TrainingType' => $baseDir . '/Modules/Training/app/Models/TrainingType.php',
'Modules\\Training\\Providers\\RouteServiceProvider' => $baseDir . '/Modules/Training/app/Providers/RouteServiceProvider.php',
'Modules\\Training\\Providers\\TrainingServiceProvider' => $baseDir . '/Modules/Training/app/Providers/TrainingServiceProvider.php',
'Modules\\Training\\Repositories\\TrainerInterface' => $baseDir . '/Modules/Training/app/Repositories/TrainerInterface.php',
'Modules\\Training\\Repositories\\TrainerRepository' => $baseDir . '/Modules/Training/app/Repositories/TrainerRepository.php',
'Modules\\Training\\Repositories\\TrainingListInterface' => $baseDir . '/Modules/Training/app/Repositories/TrainingListInterface.php',
'Modules\\Training\\Repositories\\TrainingListRepository' => $baseDir . '/Modules/Training/app/Repositories/TrainingListRepository.php',
'Modules\\Training\\Repositories\\TrainingTypeInterface' => $baseDir . '/Modules/Training/app/Repositories/TrainingTypeInterface.php',
'Modules\\Training\\Repositories\\TrainingTypeRepository' => $baseDir . '/Modules/Training/app/Repositories/TrainingTypeRepository.php',
'Modules\\User\\Http\\Controllers\\PermissionController' => $baseDir . '/Modules/User/app/Http/Controllers/PermissionController.php',
'Modules\\User\\Http\\Controllers\\RoleController' => $baseDir . '/Modules/User/app/Http/Controllers/RoleController.php',
'Modules\\User\\Http\\Controllers\\UserController' => $baseDir . '/Modules/User/app/Http/Controllers/UserController.php',
@ -3461,20 +3587,28 @@ return array(
'Nwidart\\Modules\\Commands\\BaseCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/BaseCommand.php',
'Nwidart\\Modules\\Commands\\ComposerUpdateCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/ComposerUpdateCommand.php',
'Nwidart\\Modules\\Commands\\Database\\MigrateCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Database/MigrateCommand.php',
'Nwidart\\Modules\\Commands\\Database\\MigrateFreshCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Database/MigrateFreshCommand.php',
'Nwidart\\Modules\\Commands\\Database\\MigrateRefreshCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Database/MigrateRefreshCommand.php',
'Nwidart\\Modules\\Commands\\Database\\MigrateResetCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Database/MigrateResetCommand.php',
'Nwidart\\Modules\\Commands\\Database\\MigrateRollbackCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Database/MigrateRollbackCommand.php',
'Nwidart\\Modules\\Commands\\Database\\MigrateStatusCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Database/MigrateStatusCommand.php',
'Nwidart\\Modules\\Commands\\Database\\SeedCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Database/SeedCommand.php',
'Nwidart\\Modules\\Commands\\LaravelModulesV6Migrator' => $vendorDir . '/nwidart/laravel-modules/src/Commands/LaravelModulesV6Migrator.php',
'Nwidart\\Modules\\Commands\\Make\\ActionMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/ActionMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\CastMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/CastMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\ChannelMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/ChannelMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\CommandMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/CommandMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\ComponentClassMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/ComponentClassMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\ComponentViewMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/ComponentViewMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\ControllerMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/ControllerMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\EnumMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/EnumMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\EventMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/EventMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\EventProviderMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/EventProviderMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\ExceptionMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/ExceptionMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\FactoryMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/FactoryMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\GeneratorCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/GeneratorCommand.php',
'Nwidart\\Modules\\Commands\\Make\\HelperMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/HelperMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\InterfaceMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/InterfaceMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\JobMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/JobMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\ListenerMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/ListenerMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\MailMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/MailMakeCommand.php',
@ -3490,11 +3624,12 @@ return array(
'Nwidart\\Modules\\Commands\\Make\\ResourceMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/ResourceMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\RouteProviderMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/RouteProviderMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\RuleMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/RuleMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\ScopeMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/ScopeMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\SeedMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/SeedMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\ServiceMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/ServiceMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\TestMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/TestMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\TraitMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/TraitMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\ViewMakeCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Make/ViewMakeCommand.php',
'Nwidart\\Modules\\Commands\\MigrateFreshCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/MigrateFreshCommand.php',
'Nwidart\\Modules\\Commands\\Publish\\PublishCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Publish/PublishCommand.php',
'Nwidart\\Modules\\Commands\\Publish\\PublishConfigurationCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Publish/PublishConfigurationCommand.php',
'Nwidart\\Modules\\Commands\\Publish\\PublishMigrationCommand' => $vendorDir . '/nwidart/laravel-modules/src/Commands/Publish/PublishMigrationCommand.php',
@ -3543,6 +3678,7 @@ return array(
'Nwidart\\Modules\\Traits\\CanClearModulesCache' => $vendorDir . '/nwidart/laravel-modules/src/Traits/CanClearModulesCache.php',
'Nwidart\\Modules\\Traits\\MigrationLoaderTrait' => $vendorDir . '/nwidart/laravel-modules/src/Traits/MigrationLoaderTrait.php',
'Nwidart\\Modules\\Traits\\ModuleCommandTrait' => $vendorDir . '/nwidart/laravel-modules/src/Traits/ModuleCommandTrait.php',
'Nwidart\\Modules\\Traits\\PathNamespace' => $vendorDir . '/nwidart/laravel-modules/src/Traits/PathNamespace.php',
'Override' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/Override.php',
'PHPUnit\\Event\\Application\\Finished' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Application/Finished.php',
'PHPUnit\\Event\\Application\\FinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Application/FinishedSubscriber.php',
@ -5356,8 +5492,11 @@ return array(
'Spatie\\Backtrace\\Arguments\\Reducers\\StringableArgumentReducer' => $vendorDir . '/spatie/backtrace/src/Arguments/Reducers/StringableArgumentReducer.php',
'Spatie\\Backtrace\\Arguments\\Reducers\\SymphonyRequestArgumentReducer' => $vendorDir . '/spatie/backtrace/src/Arguments/Reducers/SymphonyRequestArgumentReducer.php',
'Spatie\\Backtrace\\Backtrace' => $vendorDir . '/spatie/backtrace/src/Backtrace.php',
'Spatie\\Backtrace\\CodeSnippet' => $vendorDir . '/spatie/backtrace/src/CodeSnippet.php',
'Spatie\\Backtrace\\File' => $vendorDir . '/spatie/backtrace/src/File.php',
'Spatie\\Backtrace\\CodeSnippets\\CodeSnippet' => $vendorDir . '/spatie/backtrace/src/CodeSnippets/CodeSnippet.php',
'Spatie\\Backtrace\\CodeSnippets\\FileSnippetProvider' => $vendorDir . '/spatie/backtrace/src/CodeSnippets/FileSnippetProvider.php',
'Spatie\\Backtrace\\CodeSnippets\\LaravelSerializableClosureSnippetProvider' => $vendorDir . '/spatie/backtrace/src/CodeSnippets/LaravelSerializableClosureSnippetProvider.php',
'Spatie\\Backtrace\\CodeSnippets\\NullSnippetProvider' => $vendorDir . '/spatie/backtrace/src/CodeSnippets/NullSnippetProvider.php',
'Spatie\\Backtrace\\CodeSnippets\\SnippetProvider' => $vendorDir . '/spatie/backtrace/src/CodeSnippets/SnippetProvider.php',
'Spatie\\Backtrace\\Frame' => $vendorDir . '/spatie/backtrace/src/Frame.php',
'Spatie\\FlareClient\\Api' => $vendorDir . '/spatie/flare-client-php/src/Api.php',
'Spatie\\FlareClient\\Concerns\\HasContext' => $vendorDir . '/spatie/flare-client-php/src/Concerns/HasContext.php',
@ -5482,6 +5621,7 @@ return array(
'Spatie\\LaravelIgnition\\FlareMiddleware\\AddContext' => $vendorDir . '/spatie/laravel-ignition/src/FlareMiddleware/AddContext.php',
'Spatie\\LaravelIgnition\\FlareMiddleware\\AddDumps' => $vendorDir . '/spatie/laravel-ignition/src/FlareMiddleware/AddDumps.php',
'Spatie\\LaravelIgnition\\FlareMiddleware\\AddEnvironmentInformation' => $vendorDir . '/spatie/laravel-ignition/src/FlareMiddleware/AddEnvironmentInformation.php',
'Spatie\\LaravelIgnition\\FlareMiddleware\\AddExceptionHandledStatus' => $vendorDir . '/spatie/laravel-ignition/src/FlareMiddleware/AddExceptionHandledStatus.php',
'Spatie\\LaravelIgnition\\FlareMiddleware\\AddExceptionInformation' => $vendorDir . '/spatie/laravel-ignition/src/FlareMiddleware/AddExceptionInformation.php',
'Spatie\\LaravelIgnition\\FlareMiddleware\\AddJobs' => $vendorDir . '/spatie/laravel-ignition/src/FlareMiddleware/AddJobs.php',
'Spatie\\LaravelIgnition\\FlareMiddleware\\AddLogs' => $vendorDir . '/spatie/laravel-ignition/src/FlareMiddleware/AddLogs.php',
@ -6518,7 +6658,9 @@ return array(
'Symfony\\Contracts\\Service\\Attribute\\Required' => $vendorDir . '/symfony/service-contracts/Attribute/Required.php',
'Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => $vendorDir . '/symfony/service-contracts/Attribute/SubscribedService.php',
'Symfony\\Contracts\\Service\\ResetInterface' => $vendorDir . '/symfony/service-contracts/ResetInterface.php',
'Symfony\\Contracts\\Service\\ServiceCollectionInterface' => $vendorDir . '/symfony/service-contracts/ServiceCollectionInterface.php',
'Symfony\\Contracts\\Service\\ServiceLocatorTrait' => $vendorDir . '/symfony/service-contracts/ServiceLocatorTrait.php',
'Symfony\\Contracts\\Service\\ServiceMethodsSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceMethodsSubscriberTrait.php',
'Symfony\\Contracts\\Service\\ServiceProviderInterface' => $vendorDir . '/symfony/service-contracts/ServiceProviderInterface.php',
'Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberInterface.php',
'Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberTrait.php',

View File

@ -6,8 +6,8 @@ $vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
'6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php',
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
'320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',

View File

@ -67,18 +67,58 @@ return array(
'Modules\\User\\Database\\Seeders\\' => array($baseDir . '/Modules/User/database/seeders'),
'Modules\\User\\Database\\Factories\\' => array($baseDir . '/Modules/User/database/factories'),
'Modules\\User\\' => array($baseDir . '/Modules/User/app'),
'Modules\\Training\\Tests\\' => array($baseDir . '/Modules/Training/tests'),
'Modules\\Training\\Database\\Seeders\\' => array($baseDir . '/Modules/Training/database/seeders'),
'Modules\\Training\\Database\\Factories\\' => array($baseDir . '/Modules/Training/database/factories'),
'Modules\\Training\\' => array($baseDir . '/Modules/Training/app'),
'Modules\\Taxation\\Tests\\' => array($baseDir . '/Modules/Taxation/tests'),
'Modules\\Taxation\\Database\\Seeders\\' => array($baseDir . '/Modules/Taxation/database/seeders'),
'Modules\\Taxation\\Database\\Factories\\' => array($baseDir . '/Modules/Taxation/database/factories'),
'Modules\\Taxation\\' => array($baseDir . '/Modules/Taxation/app'),
'Modules\\Supplier\\Tests\\' => array($baseDir . '/Modules/Supplier/tests'),
'Modules\\Supplier\\Database\\Seeders\\' => array($baseDir . '/Modules/Supplier/database/seeders'),
'Modules\\Supplier\\Database\\Factories\\' => array($baseDir . '/Modules/Supplier/database/factories'),
'Modules\\Supplier\\' => array($baseDir . '/Modules/Supplier/app'),
'Modules\\Stocks\\Tests\\' => array($baseDir . '/Modules/Stocks/tests'),
'Modules\\Stocks\\Database\\Seeders\\' => array($baseDir . '/Modules/Stocks/database/seeders'),
'Modules\\Stocks\\Database\\Factories\\' => array($baseDir . '/Modules/Stocks/database/factories'),
'Modules\\Stocks\\' => array($baseDir . '/Modules/Stocks/app'),
'Modules\\Settings\\Tests\\' => array($baseDir . '/Modules/Settings/tests'),
'Modules\\Settings\\Database\\Seeders\\' => array($baseDir . '/Modules/Settings/database/seeders'),
'Modules\\Settings\\Database\\Factories\\' => array($baseDir . '/Modules/Settings/database/factories'),
'Modules\\Settings\\' => array($baseDir . '/Modules/Settings/app'),
'Modules\\Recruit\\Tests\\' => array($baseDir . '/Modules/Recruit/tests'),
'Modules\\Recruit\\Database\\Seeders\\' => array($baseDir . '/Modules/Recruit/database/seeders'),
'Modules\\Recruit\\Database\\Factories\\' => array($baseDir . '/Modules/Recruit/database/factories'),
'Modules\\Recruit\\' => array($baseDir . '/Modules/Recruit/app'),
'Modules\\Product\\Tests\\' => array($baseDir . '/Modules/Product/tests'),
'Modules\\Product\\Database\\Seeders\\' => array($baseDir . '/Modules/Product/database/seeders'),
'Modules\\Product\\Database\\Factories\\' => array($baseDir . '/Modules/Product/database/factories'),
'Modules\\Product\\' => array($baseDir . '/Modules/Product/app'),
'Modules\\Payroll\\Tests\\' => array($baseDir . '/Modules/Payroll/tests'),
'Modules\\Payroll\\Database\\Seeders\\' => array($baseDir . '/Modules/Payroll/database/seeders'),
'Modules\\Payroll\\Database\\Factories\\' => array($baseDir . '/Modules/Payroll/database/factories'),
'Modules\\Payroll\\' => array($baseDir . '/Modules/Payroll/app'),
'Modules\\PMS\\Tests\\' => array($baseDir . '/Modules/PMS/tests'),
'Modules\\PMS\\Database\\Seeders\\' => array($baseDir . '/Modules/PMS/database/seeders'),
'Modules\\PMS\\Database\\Factories\\' => array($baseDir . '/Modules/PMS/database/factories'),
'Modules\\PMS\\' => array($baseDir . '/Modules/PMS/app'),
'Modules\\Order\\Tests\\' => array($baseDir . '/Modules/Order/tests'),
'Modules\\Order\\Database\\Seeders\\' => array($baseDir . '/Modules/Order/database/seeders'),
'Modules\\Order\\Database\\Factories\\' => array($baseDir . '/Modules/Order/database/factories'),
'Modules\\Order\\' => array($baseDir . '/Modules/Order/app'),
'Modules\\Office\\Tests\\' => array($baseDir . '/Modules/Office/tests'),
'Modules\\Office\\Database\\Seeders\\' => array($baseDir . '/Modules/Office/database/seeders'),
'Modules\\Office\\Database\\Factories\\' => array($baseDir . '/Modules/Office/database/factories'),
'Modules\\Office\\' => array($baseDir . '/Modules/Office/app'),
'Modules\\Meeting\\Tests\\' => array($baseDir . '/Modules/Meeting/tests'),
'Modules\\Meeting\\Database\\Seeders\\' => array($baseDir . '/Modules/Meeting/database/seeders'),
'Modules\\Meeting\\Database\\Factories\\' => array($baseDir . '/Modules/Meeting/database/factories'),
'Modules\\Meeting\\' => array($baseDir . '/Modules/Meeting/app'),
'Modules\\Leave\\Tests\\' => array($baseDir . '/Modules/Leave/tests'),
'Modules\\Leave\\Database\\Seeders\\' => array($baseDir . '/Modules/Leave/database/seeders'),
'Modules\\Leave\\Database\\Factories\\' => array($baseDir . '/Modules/Leave/database/factories'),
'Modules\\Leave\\' => array($baseDir . '/Modules/Leave/app'),
'Modules\\Employee\\Tests\\' => array($baseDir . '/Modules/Employee/tests'),
'Modules\\Employee\\Database\\Seeders\\' => array($baseDir . '/Modules/Employee/database/seeders'),
'Modules\\Employee\\Database\\Factories\\' => array($baseDir . '/Modules/Employee/database/factories'),
@ -87,6 +127,10 @@ return array(
'Modules\\Customer\\Database\\Seeders\\' => array($baseDir . '/Modules/Customer/database/seeders'),
'Modules\\Customer\\Database\\Factories\\' => array($baseDir . '/Modules/Customer/database/factories'),
'Modules\\Customer\\' => array($baseDir . '/Modules/Customer/app'),
'Modules\\Attendance\\Tests\\' => array($baseDir . '/Modules/Attendance/tests'),
'Modules\\Attendance\\Database\\Seeders\\' => array($baseDir . '/Modules/Attendance/database/seeders'),
'Modules\\Attendance\\Database\\Factories\\' => array($baseDir . '/Modules/Attendance/database/factories'),
'Modules\\Attendance\\' => array($baseDir . '/Modules/Attendance/app'),
'Modules\\Asset\\Tests\\' => array($baseDir . '/Modules/Asset/tests'),
'Modules\\Asset\\Database\\Seeders\\' => array($baseDir . '/Modules/Asset/database/seeders'),
'Modules\\Asset\\Database\\Factories\\' => array($baseDir . '/Modules/Asset/database/factories'),

View File

@ -7,8 +7,8 @@ namespace Composer\Autoload;
class ComposerStaticInit6dc3e011b2ee18ecf5f0987aba384f2b
{
public static $files = array (
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
'6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
'320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
@ -136,18 +136,58 @@ class ComposerStaticInit6dc3e011b2ee18ecf5f0987aba384f2b
'Modules\\User\\Database\\Seeders\\' => 30,
'Modules\\User\\Database\\Factories\\' => 32,
'Modules\\User\\' => 13,
'Modules\\Training\\Tests\\' => 23,
'Modules\\Training\\Database\\Seeders\\' => 34,
'Modules\\Training\\Database\\Factories\\' => 36,
'Modules\\Training\\' => 17,
'Modules\\Taxation\\Tests\\' => 23,
'Modules\\Taxation\\Database\\Seeders\\' => 34,
'Modules\\Taxation\\Database\\Factories\\' => 36,
'Modules\\Taxation\\' => 17,
'Modules\\Supplier\\Tests\\' => 23,
'Modules\\Supplier\\Database\\Seeders\\' => 34,
'Modules\\Supplier\\Database\\Factories\\' => 36,
'Modules\\Supplier\\' => 17,
'Modules\\Stocks\\Tests\\' => 21,
'Modules\\Stocks\\Database\\Seeders\\' => 32,
'Modules\\Stocks\\Database\\Factories\\' => 34,
'Modules\\Stocks\\' => 15,
'Modules\\Settings\\Tests\\' => 23,
'Modules\\Settings\\Database\\Seeders\\' => 34,
'Modules\\Settings\\Database\\Factories\\' => 36,
'Modules\\Settings\\' => 17,
'Modules\\Recruit\\Tests\\' => 22,
'Modules\\Recruit\\Database\\Seeders\\' => 33,
'Modules\\Recruit\\Database\\Factories\\' => 35,
'Modules\\Recruit\\' => 16,
'Modules\\Product\\Tests\\' => 22,
'Modules\\Product\\Database\\Seeders\\' => 33,
'Modules\\Product\\Database\\Factories\\' => 35,
'Modules\\Product\\' => 16,
'Modules\\Payroll\\Tests\\' => 22,
'Modules\\Payroll\\Database\\Seeders\\' => 33,
'Modules\\Payroll\\Database\\Factories\\' => 35,
'Modules\\Payroll\\' => 16,
'Modules\\PMS\\Tests\\' => 18,
'Modules\\PMS\\Database\\Seeders\\' => 29,
'Modules\\PMS\\Database\\Factories\\' => 31,
'Modules\\PMS\\' => 12,
'Modules\\Order\\Tests\\' => 20,
'Modules\\Order\\Database\\Seeders\\' => 31,
'Modules\\Order\\Database\\Factories\\' => 33,
'Modules\\Order\\' => 14,
'Modules\\Office\\Tests\\' => 21,
'Modules\\Office\\Database\\Seeders\\' => 32,
'Modules\\Office\\Database\\Factories\\' => 34,
'Modules\\Office\\' => 15,
'Modules\\Meeting\\Tests\\' => 22,
'Modules\\Meeting\\Database\\Seeders\\' => 33,
'Modules\\Meeting\\Database\\Factories\\' => 35,
'Modules\\Meeting\\' => 16,
'Modules\\Leave\\Tests\\' => 20,
'Modules\\Leave\\Database\\Seeders\\' => 31,
'Modules\\Leave\\Database\\Factories\\' => 33,
'Modules\\Leave\\' => 14,
'Modules\\Employee\\Tests\\' => 23,
'Modules\\Employee\\Database\\Seeders\\' => 34,
'Modules\\Employee\\Database\\Factories\\' => 36,
@ -156,6 +196,10 @@ class ComposerStaticInit6dc3e011b2ee18ecf5f0987aba384f2b
'Modules\\Customer\\Database\\Seeders\\' => 34,
'Modules\\Customer\\Database\\Factories\\' => 36,
'Modules\\Customer\\' => 17,
'Modules\\Attendance\\Tests\\' => 25,
'Modules\\Attendance\\Database\\Seeders\\' => 36,
'Modules\\Attendance\\Database\\Factories\\' => 38,
'Modules\\Attendance\\' => 19,
'Modules\\Asset\\Tests\\' => 20,
'Modules\\Asset\\Database\\Seeders\\' => 31,
'Modules\\Asset\\Database\\Factories\\' => 33,
@ -479,6 +523,38 @@ class ComposerStaticInit6dc3e011b2ee18ecf5f0987aba384f2b
array (
0 => __DIR__ . '/../..' . '/Modules/User/app',
),
'Modules\\Training\\Tests\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Training/tests',
),
'Modules\\Training\\Database\\Seeders\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Training/database/seeders',
),
'Modules\\Training\\Database\\Factories\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Training/database/factories',
),
'Modules\\Training\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Training/app',
),
'Modules\\Taxation\\Tests\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Taxation/tests',
),
'Modules\\Taxation\\Database\\Seeders\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Taxation/database/seeders',
),
'Modules\\Taxation\\Database\\Factories\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Taxation/database/factories',
),
'Modules\\Taxation\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Taxation/app',
),
'Modules\\Supplier\\Tests\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Supplier/tests',
@ -495,6 +571,54 @@ class ComposerStaticInit6dc3e011b2ee18ecf5f0987aba384f2b
array (
0 => __DIR__ . '/../..' . '/Modules/Supplier/app',
),
'Modules\\Stocks\\Tests\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Stocks/tests',
),
'Modules\\Stocks\\Database\\Seeders\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Stocks/database/seeders',
),
'Modules\\Stocks\\Database\\Factories\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Stocks/database/factories',
),
'Modules\\Stocks\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Stocks/app',
),
'Modules\\Settings\\Tests\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Settings/tests',
),
'Modules\\Settings\\Database\\Seeders\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Settings/database/seeders',
),
'Modules\\Settings\\Database\\Factories\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Settings/database/factories',
),
'Modules\\Settings\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Settings/app',
),
'Modules\\Recruit\\Tests\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Recruit/tests',
),
'Modules\\Recruit\\Database\\Seeders\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Recruit/database/seeders',
),
'Modules\\Recruit\\Database\\Factories\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Recruit/database/factories',
),
'Modules\\Recruit\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Recruit/app',
),
'Modules\\Product\\Tests\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Product/tests',
@ -511,6 +635,38 @@ class ComposerStaticInit6dc3e011b2ee18ecf5f0987aba384f2b
array (
0 => __DIR__ . '/../..' . '/Modules/Product/app',
),
'Modules\\Payroll\\Tests\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Payroll/tests',
),
'Modules\\Payroll\\Database\\Seeders\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Payroll/database/seeders',
),
'Modules\\Payroll\\Database\\Factories\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Payroll/database/factories',
),
'Modules\\Payroll\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Payroll/app',
),
'Modules\\PMS\\Tests\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/PMS/tests',
),
'Modules\\PMS\\Database\\Seeders\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/PMS/database/seeders',
),
'Modules\\PMS\\Database\\Factories\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/PMS/database/factories',
),
'Modules\\PMS\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/PMS/app',
),
'Modules\\Order\\Tests\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Order/tests',
@ -527,6 +683,54 @@ class ComposerStaticInit6dc3e011b2ee18ecf5f0987aba384f2b
array (
0 => __DIR__ . '/../..' . '/Modules/Order/app',
),
'Modules\\Office\\Tests\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Office/tests',
),
'Modules\\Office\\Database\\Seeders\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Office/database/seeders',
),
'Modules\\Office\\Database\\Factories\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Office/database/factories',
),
'Modules\\Office\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Office/app',
),
'Modules\\Meeting\\Tests\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Meeting/tests',
),
'Modules\\Meeting\\Database\\Seeders\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Meeting/database/seeders',
),
'Modules\\Meeting\\Database\\Factories\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Meeting/database/factories',
),
'Modules\\Meeting\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Meeting/app',
),
'Modules\\Leave\\Tests\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Leave/tests',
),
'Modules\\Leave\\Database\\Seeders\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Leave/database/seeders',
),
'Modules\\Leave\\Database\\Factories\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Leave/database/factories',
),
'Modules\\Leave\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Leave/app',
),
'Modules\\Employee\\Tests\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Employee/tests',
@ -559,6 +763,22 @@ class ComposerStaticInit6dc3e011b2ee18ecf5f0987aba384f2b
array (
0 => __DIR__ . '/../..' . '/Modules/Customer/app',
),
'Modules\\Attendance\\Tests\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Attendance/tests',
),
'Modules\\Attendance\\Database\\Seeders\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Attendance/database/seeders',
),
'Modules\\Attendance\\Database\\Factories\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Attendance/database/factories',
),
'Modules\\Attendance\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Attendance/app',
),
'Modules\\Asset\\Tests\\' =>
array (
0 => __DIR__ . '/../..' . '/Modules/Asset/tests',
@ -792,6 +1012,7 @@ class ComposerStaticInit6dc3e011b2ee18ecf5f0987aba384f2b
'App\\Notifications\\HrActionNotification' => __DIR__ . '/../..' . '/app/Notifications/HrActionNotification.php',
'App\\Notifications\\SendNotification' => __DIR__ . '/../..' . '/app/Notifications/SendNotification.php',
'App\\Observers\\AppreciationObserver' => __DIR__ . '/../..' . '/app/Observers/AppreciationObserver.php',
'App\\Observers\\InterviewScheduleObserver' => __DIR__ . '/../..' . '/app/Observers/InterviewScheduleObserver.php',
'App\\Observers\\PromotionDemotionObserver' => __DIR__ . '/../..' . '/app/Observers/PromotionDemotionObserver.php',
'App\\Observers\\WarningObserver' => __DIR__ . '/../..' . '/app/Observers/WarningObserver.php',
'App\\Providers\\AppServiceProvider' => __DIR__ . '/../..' . '/app/Providers/AppServiceProvider.php',
@ -3287,6 +3508,7 @@ class ComposerStaticInit6dc3e011b2ee18ecf5f0987aba384f2b
'Laravel\\Prompts\\Themes\\Contracts\\Scrolling' => __DIR__ . '/..' . '/laravel/prompts/src/Themes/Contracts/Scrolling.php',
'Laravel\\Prompts\\Themes\\Default\\Concerns\\DrawsBoxes' => __DIR__ . '/..' . '/laravel/prompts/src/Themes/Default/Concerns/DrawsBoxes.php',
'Laravel\\Prompts\\Themes\\Default\\Concerns\\DrawsScrollbars' => __DIR__ . '/..' . '/laravel/prompts/src/Themes/Default/Concerns/DrawsScrollbars.php',
'Laravel\\Prompts\\Themes\\Default\\Concerns\\InteractsWithStrings' => __DIR__ . '/..' . '/laravel/prompts/src/Themes/Default/Concerns/InteractsWithStrings.php',
'Laravel\\Prompts\\Themes\\Default\\ConfirmPromptRenderer' => __DIR__ . '/..' . '/laravel/prompts/src/Themes/Default/ConfirmPromptRenderer.php',
'Laravel\\Prompts\\Themes\\Default\\MultiSearchPromptRenderer' => __DIR__ . '/..' . '/laravel/prompts/src/Themes/Default/MultiSearchPromptRenderer.php',
'Laravel\\Prompts\\Themes\\Default\\MultiSelectPromptRenderer' => __DIR__ . '/..' . '/laravel/prompts/src/Themes/Default/MultiSelectPromptRenderer.php',
@ -3924,6 +4146,13 @@ class ComposerStaticInit6dc3e011b2ee18ecf5f0987aba384f2b
'Modules\\Asset\\Repositories\\AssetDemandRepository' => __DIR__ . '/../..' . '/Modules/Asset/app/Repositories/AssetDemandRepository.php',
'Modules\\Asset\\Repositories\\AssetInterface' => __DIR__ . '/../..' . '/Modules/Asset/app/Repositories/AssetInterface.php',
'Modules\\Asset\\Repositories\\AssetRepository' => __DIR__ . '/../..' . '/Modules/Asset/app/Repositories/AssetRepository.php',
'Modules\\Attendance\\Http\\Controllers\\AttendanceController' => __DIR__ . '/../..' . '/Modules/Attendance/app/Http/Controllers/AttendanceController.php',
'Modules\\Attendance\\Http\\Controllers\\ReportController' => __DIR__ . '/../..' . '/Modules/Attendance/app/Http/Controllers/ReportController.php',
'Modules\\Attendance\\Models\\Attendance' => __DIR__ . '/../..' . '/Modules/Attendance/app/Models/Attendance.php',
'Modules\\Attendance\\Providers\\AttendanceServiceProvider' => __DIR__ . '/../..' . '/Modules/Attendance/app/Providers/AttendanceServiceProvider.php',
'Modules\\Attendance\\Providers\\RouteServiceProvider' => __DIR__ . '/../..' . '/Modules/Attendance/app/Providers/RouteServiceProvider.php',
'Modules\\Attendance\\Repositories\\AttendanceInterface' => __DIR__ . '/../..' . '/Modules/Attendance/app/Repositories/AttendanceInterface.php',
'Modules\\Attendance\\Repositories\\AttendanceRepository' => __DIR__ . '/../..' . '/Modules/Attendance/app/Repositories/AttendanceRepository.php',
'Modules\\Customer\\Http\\Controllers\\CustomerController' => __DIR__ . '/../..' . '/Modules/Customer/app/Http/Controllers/CustomerController.php',
'Modules\\Customer\\Models\\Customer' => __DIR__ . '/../..' . '/Modules/Customer/app/Models/Customer.php',
'Modules\\Customer\\Providers\\CustomerServiceProvider' => __DIR__ . '/../..' . '/Modules/Customer/app/Providers/CustomerServiceProvider.php',
@ -3936,6 +4165,46 @@ class ComposerStaticInit6dc3e011b2ee18ecf5f0987aba384f2b
'Modules\\Employee\\Providers\\RouteServiceProvider' => __DIR__ . '/../..' . '/Modules/Employee/app/Providers/RouteServiceProvider.php',
'Modules\\Employee\\Repositories\\EmployeeInterface' => __DIR__ . '/../..' . '/Modules/Employee/app/Repositories/EmployeeInterface.php',
'Modules\\Employee\\Repositories\\EmployeeRepository' => __DIR__ . '/../..' . '/Modules/Employee/app/Repositories/EmployeeRepository.php',
'Modules\\Leave\\Http\\Controllers\\LeaveController' => __DIR__ . '/../..' . '/Modules/Leave/app/Http/Controllers/LeaveController.php',
'Modules\\Leave\\Http\\Controllers\\LeaveTypeController' => __DIR__ . '/../..' . '/Modules/Leave/app/Http/Controllers/LeaveTypeController.php',
'Modules\\Leave\\Http\\Requests\\LeaveTypeRequest' => __DIR__ . '/../..' . '/Modules/Leave/app/Http/Requests/LeaveTypeRequest.php',
'Modules\\Leave\\Models\\Leave' => __DIR__ . '/../..' . '/Modules/Leave/app/Models/Leave.php',
'Modules\\Leave\\Models\\LeaveType' => __DIR__ . '/../..' . '/Modules/Leave/app/Models/LeaveType.php',
'Modules\\Leave\\Providers\\LeaveServiceProvider' => __DIR__ . '/../..' . '/Modules/Leave/app/Providers/LeaveServiceProvider.php',
'Modules\\Leave\\Providers\\RouteServiceProvider' => __DIR__ . '/../..' . '/Modules/Leave/app/Providers/RouteServiceProvider.php',
'Modules\\Leave\\Repositories\\LeaveInterface' => __DIR__ . '/../..' . '/Modules/Leave/app/Repositories/LeaveInterface.php',
'Modules\\Leave\\Repositories\\LeaveRepository' => __DIR__ . '/../..' . '/Modules/Leave/app/Repositories/LeaveRepository.php',
'Modules\\Leave\\Repositories\\LeaveTypeInterface' => __DIR__ . '/../..' . '/Modules/Leave/app/Repositories/LeaveTypeInterface.php',
'Modules\\Leave\\Repositories\\LeaveTypeRepository' => __DIR__ . '/../..' . '/Modules/Leave/app/Repositories/LeaveTypeRepository.php',
'Modules\\Meeting\\Http\\Controllers\\MeetingController' => __DIR__ . '/../..' . '/Modules/Meeting/app/Http/Controllers/MeetingController.php',
'Modules\\Meeting\\Models\\Meeting' => __DIR__ . '/../..' . '/Modules/Meeting/app/Models/Meeting.php',
'Modules\\Meeting\\Providers\\MeetingServiceProvider' => __DIR__ . '/../..' . '/Modules/Meeting/app/Providers/MeetingServiceProvider.php',
'Modules\\Meeting\\Providers\\RouteServiceProvider' => __DIR__ . '/../..' . '/Modules/Meeting/app/Providers/RouteServiceProvider.php',
'Modules\\Meeting\\Repositories\\MeetingInterface' => __DIR__ . '/../..' . '/Modules/Meeting/app/Repositories/MeetingInterface.php',
'Modules\\Meeting\\Repositories\\MeetingRepository' => __DIR__ . '/../..' . '/Modules/Meeting/app/Repositories/MeetingRepository.php',
'Modules\\Office\\Http\\Controllers\\ContractController' => __DIR__ . '/../..' . '/Modules/Office/app/Http/Controllers/ContractController.php',
'Modules\\Office\\Http\\Controllers\\DepositController' => __DIR__ . '/../..' . '/Modules/Office/app/Http/Controllers/DepositController.php',
'Modules\\Office\\Http\\Controllers\\GeneratorController' => __DIR__ . '/../..' . '/Modules/Office/app/Http/Controllers/GeneratorController.php',
'Modules\\Office\\Http\\Controllers\\GeneratorLogBookController' => __DIR__ . '/../..' . '/Modules/Office/app/Http/Controllers/GeneratorLogBookController.php',
'Modules\\Office\\Http\\Controllers\\OfficeController' => __DIR__ . '/../..' . '/Modules/Office/app/Http/Controllers/OfficeController.php',
'Modules\\Office\\Http\\Controllers\\PurchaseServiceController' => __DIR__ . '/../..' . '/Modules/Office/app/Http/Controllers/PurchaseServiceController.php',
'Modules\\Office\\Models\\Contract' => __DIR__ . '/../..' . '/Modules/Office/app/Models/Contract.php',
'Modules\\Office\\Models\\Deposit' => __DIR__ . '/../..' . '/Modules/Office/app/Models/Deposit.php',
'Modules\\Office\\Models\\Generator' => __DIR__ . '/../..' . '/Modules/Office/app/Models/Generator.php',
'Modules\\Office\\Models\\GeneratorLogBook' => __DIR__ . '/../..' . '/Modules/Office/app/Models/GeneratorLogBook.php',
'Modules\\Office\\Models\\PurchaseService' => __DIR__ . '/../..' . '/Modules/Office/app/Models/PurchaseService.php',
'Modules\\Office\\Providers\\OfficeServiceProvider' => __DIR__ . '/../..' . '/Modules/Office/app/Providers/OfficeServiceProvider.php',
'Modules\\Office\\Providers\\RouteServiceProvider' => __DIR__ . '/../..' . '/Modules/Office/app/Providers/RouteServiceProvider.php',
'Modules\\Office\\Repositories\\ContractInterface' => __DIR__ . '/../..' . '/Modules/Office/app/Repositories/ContractInterface.php',
'Modules\\Office\\Repositories\\ContractRepository' => __DIR__ . '/../..' . '/Modules/Office/app/Repositories/ContractRepository.php',
'Modules\\Office\\Repositories\\DepositInterface' => __DIR__ . '/../..' . '/Modules/Office/app/Repositories/DepositInterface.php',
'Modules\\Office\\Repositories\\DepositRepository' => __DIR__ . '/../..' . '/Modules/Office/app/Repositories/DepositRepository.php',
'Modules\\Office\\Repositories\\GeneratorInterface' => __DIR__ . '/../..' . '/Modules/Office/app/Repositories/GeneratorInterface.php',
'Modules\\Office\\Repositories\\GeneratorLogBookInterface' => __DIR__ . '/../..' . '/Modules/Office/app/Repositories/GeneratorLogBookInterface.php',
'Modules\\Office\\Repositories\\GeneratorLogBookRepository' => __DIR__ . '/../..' . '/Modules/Office/app/Repositories/GeneratorLogBookRepository.php',
'Modules\\Office\\Repositories\\GeneratorRepository' => __DIR__ . '/../..' . '/Modules/Office/app/Repositories/GeneratorRepository.php',
'Modules\\Office\\Repositories\\PurchaseServiceInterface' => __DIR__ . '/../..' . '/Modules/Office/app/Repositories/PurchaseServiceInterface.php',
'Modules\\Office\\Repositories\\PurchaseServiceRepository' => __DIR__ . '/../..' . '/Modules/Office/app/Repositories/PurchaseServiceRepository.php',
'Modules\\Order\\Http\\Controllers\\OrderController' => __DIR__ . '/../..' . '/Modules/Order/app/Http/Controllers/OrderController.php',
'Modules\\Order\\Models\\Order' => __DIR__ . '/../..' . '/Modules/Order/app/Models/Order.php',
'Modules\\Order\\Models\\OrderDetail' => __DIR__ . '/../..' . '/Modules/Order/app/Models/OrderDetail.php',
@ -3943,6 +4212,33 @@ class ComposerStaticInit6dc3e011b2ee18ecf5f0987aba384f2b
'Modules\\Order\\Providers\\RouteServiceProvider' => __DIR__ . '/../..' . '/Modules/Order/app/Providers/RouteServiceProvider.php',
'Modules\\Order\\Repositories\\OrderInterface' => __DIR__ . '/../..' . '/Modules/Order/app/Repositories/OrderInterface.php',
'Modules\\Order\\Repositories\\OrderRepository' => __DIR__ . '/../..' . '/Modules/Order/app/Repositories/OrderRepository.php',
'Modules\\PMS\\Http\\Controllers\\ClientController' => __DIR__ . '/../..' . '/Modules/PMS/app/Http/Controllers/ClientController.php',
'Modules\\PMS\\Http\\Controllers\\PMSController' => __DIR__ . '/../..' . '/Modules/PMS/app/Http/Controllers/PMSController.php',
'Modules\\PMS\\Http\\Controllers\\ProjectController' => __DIR__ . '/../..' . '/Modules/PMS/app/Http/Controllers/ProjectController.php',
'Modules\\PMS\\Http\\Controllers\\TaskController' => __DIR__ . '/../..' . '/Modules/PMS/app/Http/Controllers/TaskController.php',
'Modules\\PMS\\Http\\Controllers\\TicketController' => __DIR__ . '/../..' . '/Modules/PMS/app/Http/Controllers/TicketController.php',
'Modules\\PMS\\Http\\Requests\\ClientRequest' => __DIR__ . '/../..' . '/Modules/PMS/app/Http/Requests/ClientRequest.php',
'Modules\\PMS\\Models\\Client' => __DIR__ . '/../..' . '/Modules/PMS/app/Models/Client.php',
'Modules\\PMS\\Models\\Project' => __DIR__ . '/../..' . '/Modules/PMS/app/Models/Project.php',
'Modules\\PMS\\Models\\Task' => __DIR__ . '/../..' . '/Modules/PMS/app/Models/Task.php',
'Modules\\PMS\\Models\\Ticket' => __DIR__ . '/../..' . '/Modules/PMS/app/Models/Ticket.php',
'Modules\\PMS\\Providers\\PMSServiceProvider' => __DIR__ . '/../..' . '/Modules/PMS/app/Providers/PMSServiceProvider.php',
'Modules\\PMS\\Providers\\RouteServiceProvider' => __DIR__ . '/../..' . '/Modules/PMS/app/Providers/RouteServiceProvider.php',
'Modules\\PMS\\Repositories\\ClientInterface' => __DIR__ . '/../..' . '/Modules/PMS/app/Repositories/ClientInterface.php',
'Modules\\PMS\\Repositories\\ClientRepository' => __DIR__ . '/../..' . '/Modules/PMS/app/Repositories/ClientRepository.php',
'Modules\\PMS\\Repositories\\ProjectInterface' => __DIR__ . '/../..' . '/Modules/PMS/app/Repositories/ProjectInterface.php',
'Modules\\PMS\\Repositories\\ProjectRepository' => __DIR__ . '/../..' . '/Modules/PMS/app/Repositories/ProjectRepository.php',
'Modules\\PMS\\Repositories\\TaskInterface' => __DIR__ . '/../..' . '/Modules/PMS/app/Repositories/TaskInterface.php',
'Modules\\PMS\\Repositories\\TaskRepository' => __DIR__ . '/../..' . '/Modules/PMS/app/Repositories/TaskRepository.php',
'Modules\\PMS\\Repositories\\TicketInterface' => __DIR__ . '/../..' . '/Modules/PMS/app/Repositories/TicketInterface.php',
'Modules\\PMS\\Repositories\\TicketRepository' => __DIR__ . '/../..' . '/Modules/PMS/app/Repositories/TicketRepository.php',
'Modules\\Payroll\\Http\\Controllers\\PaymentController' => __DIR__ . '/../..' . '/Modules/Payroll/app/Http/Controllers/PaymentController.php',
'Modules\\Payroll\\Http\\Controllers\\PayrollController' => __DIR__ . '/../..' . '/Modules/Payroll/app/Http/Controllers/PayrollController.php',
'Modules\\Payroll\\Models\\Payment' => __DIR__ . '/../..' . '/Modules/Payroll/app/Models/Payment.php',
'Modules\\Payroll\\Providers\\PayrollServiceProvider' => __DIR__ . '/../..' . '/Modules/Payroll/app/Providers/PayrollServiceProvider.php',
'Modules\\Payroll\\Providers\\RouteServiceProvider' => __DIR__ . '/../..' . '/Modules/Payroll/app/Providers/RouteServiceProvider.php',
'Modules\\Payroll\\Repositories\\PaymentInterface' => __DIR__ . '/../..' . '/Modules/Payroll/app/Repositories/PaymentInterface.php',
'Modules\\Payroll\\Repositories\\PaymentRepository' => __DIR__ . '/../..' . '/Modules/Payroll/app/Repositories/PaymentRepository.php',
'Modules\\Product\\Http\\Controllers\\CategoryController' => __DIR__ . '/../..' . '/Modules/Product/app/Http/Controllers/CategoryController.php',
'Modules\\Product\\Http\\Controllers\\ProductController' => __DIR__ . '/../..' . '/Modules/Product/app/Http/Controllers/ProductController.php',
'Modules\\Product\\Http\\Controllers\\SubCategoryController' => __DIR__ . '/../..' . '/Modules/Product/app/Http/Controllers/SubCategoryController.php',
@ -3962,12 +4258,62 @@ class ComposerStaticInit6dc3e011b2ee18ecf5f0987aba384f2b
'Modules\\Product\\Repositories\\SubCategoryRepository' => __DIR__ . '/../..' . '/Modules/Product/app/Repositories/SubCategoryRepository.php',
'Modules\\Product\\Repositories\\WarehouseInterface' => __DIR__ . '/../..' . '/Modules/Product/app/Repositories/WarehouseInterface.php',
'Modules\\Product\\Repositories\\WarehouseRepository' => __DIR__ . '/../..' . '/Modules/Product/app/Repositories/WarehouseRepository.php',
'Modules\\Recruit\\Http\\Controllers\\InterviewScheduleController' => __DIR__ . '/../..' . '/Modules/Recruit/app/Http/Controllers/InterviewScheduleController.php',
'Modules\\Recruit\\Http\\Controllers\\JobApplicationController' => __DIR__ . '/../..' . '/Modules/Recruit/app/Http/Controllers/JobApplicationController.php',
'Modules\\Recruit\\Http\\Controllers\\JobPostController' => __DIR__ . '/../..' . '/Modules/Recruit/app/Http/Controllers/JobPostController.php',
'Modules\\Recruit\\Http\\Controllers\\OfferLetterController' => __DIR__ . '/../..' . '/Modules/Recruit/app/Http/Controllers/OfferLetterController.php',
'Modules\\Recruit\\Http\\Controllers\\RecruitController' => __DIR__ . '/../..' . '/Modules/Recruit/app/Http/Controllers/RecruitController.php',
'Modules\\Recruit\\Models\\InterviewSchedule' => __DIR__ . '/../..' . '/Modules/Recruit/app/Models/InterviewSchedule.php',
'Modules\\Recruit\\Models\\JobApplication' => __DIR__ . '/../..' . '/Modules/Recruit/app/Models/JobApplication.php',
'Modules\\Recruit\\Models\\JobPost' => __DIR__ . '/../..' . '/Modules/Recruit/app/Models/JobPost.php',
'Modules\\Recruit\\Models\\OfferLetter' => __DIR__ . '/../..' . '/Modules/Recruit/app/Models/OfferLetter.php',
'Modules\\Recruit\\Providers\\RecruitServiceProvider' => __DIR__ . '/../..' . '/Modules/Recruit/app/Providers/RecruitServiceProvider.php',
'Modules\\Recruit\\Providers\\RouteServiceProvider' => __DIR__ . '/../..' . '/Modules/Recruit/app/Providers/RouteServiceProvider.php',
'Modules\\Recruit\\Repositories\\InterviewScheduleInterface' => __DIR__ . '/../..' . '/Modules/Recruit/app/Repositories/InterviewScheduleInterface.php',
'Modules\\Recruit\\Repositories\\InterviewScheduleRepository' => __DIR__ . '/../..' . '/Modules/Recruit/app/Repositories/InterviewScheduleRepository.php',
'Modules\\Recruit\\Repositories\\JobApplicationInterface' => __DIR__ . '/../..' . '/Modules/Recruit/app/Repositories/JobApplicationInterface.php',
'Modules\\Recruit\\Repositories\\JobApplicationRepository' => __DIR__ . '/../..' . '/Modules/Recruit/app/Repositories/JobApplicationRepository.php',
'Modules\\Recruit\\Repositories\\JobPostInterface' => __DIR__ . '/../..' . '/Modules/Recruit/app/Repositories/JobPostInterface.php',
'Modules\\Recruit\\Repositories\\JobPostRepository' => __DIR__ . '/../..' . '/Modules/Recruit/app/Repositories/JobPostRepository.php',
'Modules\\Recruit\\Repositories\\OfferLetterInterface' => __DIR__ . '/../..' . '/Modules/Recruit/app/Repositories/OfferLetterInterface.php',
'Modules\\Recruit\\Repositories\\OfferLetterRepository' => __DIR__ . '/../..' . '/Modules/Recruit/app/Repositories/OfferLetterRepository.php',
'Modules\\Settings\\Database\\Seeders\\SettingsDatabaseSeeder' => __DIR__ . '/../..' . '/Modules/Settings/database/seeders/SettingsDatabaseSeeder.php',
'Modules\\Settings\\Http\\Controllers\\SettingsController' => __DIR__ . '/../..' . '/Modules/Settings/app/Http/Controllers/SettingsController.php',
'Modules\\Settings\\Models\\Setting' => __DIR__ . '/../..' . '/Modules/Settings/app/Models/Setting.php',
'Modules\\Settings\\Providers\\EventServiceProvider' => __DIR__ . '/../..' . '/Modules/Settings/app/Providers/EventServiceProvider.php',
'Modules\\Settings\\Providers\\RouteServiceProvider' => __DIR__ . '/../..' . '/Modules/Settings/app/Providers/RouteServiceProvider.php',
'Modules\\Settings\\Providers\\SettingsServiceProvider' => __DIR__ . '/../..' . '/Modules/Settings/app/Providers/SettingsServiceProvider.php',
'Modules\\Stocks\\Database\\Seeders\\StocksDatabaseSeeder' => __DIR__ . '/../..' . '/Modules/Stocks/database/seeders/StocksDatabaseSeeder.php',
'Modules\\Stocks\\Http\\Controllers\\StocksController' => __DIR__ . '/../..' . '/Modules/Stocks/app/Http/Controllers/StocksController.php',
'Modules\\Stocks\\Models\\PaymentMode' => __DIR__ . '/../..' . '/Modules/Stocks/app/Models/PaymentMode.php',
'Modules\\Stocks\\Models\\Stock' => __DIR__ . '/../..' . '/Modules/Stocks/app/Models/Stock.php',
'Modules\\Stocks\\Providers\\EventServiceProvider' => __DIR__ . '/../..' . '/Modules/Stocks/app/Providers/EventServiceProvider.php',
'Modules\\Stocks\\Providers\\RouteServiceProvider' => __DIR__ . '/../..' . '/Modules/Stocks/app/Providers/RouteServiceProvider.php',
'Modules\\Stocks\\Providers\\StocksServiceProvider' => __DIR__ . '/../..' . '/Modules/Stocks/app/Providers/StocksServiceProvider.php',
'Modules\\Supplier\\Http\\Controllers\\SupplierController' => __DIR__ . '/../..' . '/Modules/Supplier/app/Http/Controllers/SupplierController.php',
'Modules\\Supplier\\Models\\Supplier' => __DIR__ . '/../..' . '/Modules/Supplier/app/Models/Supplier.php',
'Modules\\Supplier\\Providers\\RouteServiceProvider' => __DIR__ . '/../..' . '/Modules/Supplier/app/Providers/RouteServiceProvider.php',
'Modules\\Supplier\\Providers\\SupplierServiceProvider' => __DIR__ . '/../..' . '/Modules/Supplier/app/Providers/SupplierServiceProvider.php',
'Modules\\Supplier\\Repositories\\SupplierInterface' => __DIR__ . '/../..' . '/Modules/Supplier/app/Repositories/SupplierInterface.php',
'Modules\\Supplier\\Repositories\\SupplierRepository' => __DIR__ . '/../..' . '/Modules/Supplier/app/Repositories/SupplierRepository.php',
'Modules\\Taxation\\Http\\Controllers\\InvoiceController' => __DIR__ . '/../..' . '/Modules/Taxation/app/Http/Controllers/InvoiceController.php',
'Modules\\Taxation\\Http\\Controllers\\TaxationController' => __DIR__ . '/../..' . '/Modules/Taxation/app/Http/Controllers/TaxationController.php',
'Modules\\Taxation\\Providers\\RouteServiceProvider' => __DIR__ . '/../..' . '/Modules/Taxation/app/Providers/RouteServiceProvider.php',
'Modules\\Taxation\\Providers\\TaxationServiceProvider' => __DIR__ . '/../..' . '/Modules/Taxation/app/Providers/TaxationServiceProvider.php',
'Modules\\Training\\Http\\Controllers\\TrainerController' => __DIR__ . '/../..' . '/Modules/Training/app/Http/Controllers/TrainerController.php',
'Modules\\Training\\Http\\Controllers\\TrainingListController' => __DIR__ . '/../..' . '/Modules/Training/app/Http/Controllers/TrainingListController.php',
'Modules\\Training\\Http\\Controllers\\TrainingTypeController' => __DIR__ . '/../..' . '/Modules/Training/app/Http/Controllers/TrainingTypeController.php',
'Modules\\Training\\Models\\Trainer' => __DIR__ . '/../..' . '/Modules/Training/app/Models/Trainer.php',
'Modules\\Training\\Models\\TrainingList' => __DIR__ . '/../..' . '/Modules/Training/app/Models/TrainingList.php',
'Modules\\Training\\Models\\TrainingType' => __DIR__ . '/../..' . '/Modules/Training/app/Models/TrainingType.php',
'Modules\\Training\\Providers\\RouteServiceProvider' => __DIR__ . '/../..' . '/Modules/Training/app/Providers/RouteServiceProvider.php',
'Modules\\Training\\Providers\\TrainingServiceProvider' => __DIR__ . '/../..' . '/Modules/Training/app/Providers/TrainingServiceProvider.php',
'Modules\\Training\\Repositories\\TrainerInterface' => __DIR__ . '/../..' . '/Modules/Training/app/Repositories/TrainerInterface.php',
'Modules\\Training\\Repositories\\TrainerRepository' => __DIR__ . '/../..' . '/Modules/Training/app/Repositories/TrainerRepository.php',
'Modules\\Training\\Repositories\\TrainingListInterface' => __DIR__ . '/../..' . '/Modules/Training/app/Repositories/TrainingListInterface.php',
'Modules\\Training\\Repositories\\TrainingListRepository' => __DIR__ . '/../..' . '/Modules/Training/app/Repositories/TrainingListRepository.php',
'Modules\\Training\\Repositories\\TrainingTypeInterface' => __DIR__ . '/../..' . '/Modules/Training/app/Repositories/TrainingTypeInterface.php',
'Modules\\Training\\Repositories\\TrainingTypeRepository' => __DIR__ . '/../..' . '/Modules/Training/app/Repositories/TrainingTypeRepository.php',
'Modules\\User\\Http\\Controllers\\PermissionController' => __DIR__ . '/../..' . '/Modules/User/app/Http/Controllers/PermissionController.php',
'Modules\\User\\Http\\Controllers\\RoleController' => __DIR__ . '/../..' . '/Modules/User/app/Http/Controllers/RoleController.php',
'Modules\\User\\Http\\Controllers\\UserController' => __DIR__ . '/../..' . '/Modules/User/app/Http/Controllers/UserController.php',
@ -4210,20 +4556,28 @@ class ComposerStaticInit6dc3e011b2ee18ecf5f0987aba384f2b
'Nwidart\\Modules\\Commands\\BaseCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/BaseCommand.php',
'Nwidart\\Modules\\Commands\\ComposerUpdateCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/ComposerUpdateCommand.php',
'Nwidart\\Modules\\Commands\\Database\\MigrateCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Database/MigrateCommand.php',
'Nwidart\\Modules\\Commands\\Database\\MigrateFreshCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Database/MigrateFreshCommand.php',
'Nwidart\\Modules\\Commands\\Database\\MigrateRefreshCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Database/MigrateRefreshCommand.php',
'Nwidart\\Modules\\Commands\\Database\\MigrateResetCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Database/MigrateResetCommand.php',
'Nwidart\\Modules\\Commands\\Database\\MigrateRollbackCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Database/MigrateRollbackCommand.php',
'Nwidart\\Modules\\Commands\\Database\\MigrateStatusCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Database/MigrateStatusCommand.php',
'Nwidart\\Modules\\Commands\\Database\\SeedCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Database/SeedCommand.php',
'Nwidart\\Modules\\Commands\\LaravelModulesV6Migrator' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/LaravelModulesV6Migrator.php',
'Nwidart\\Modules\\Commands\\Make\\ActionMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/ActionMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\CastMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/CastMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\ChannelMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/ChannelMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\CommandMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/CommandMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\ComponentClassMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/ComponentClassMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\ComponentViewMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/ComponentViewMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\ControllerMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/ControllerMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\EnumMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/EnumMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\EventMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/EventMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\EventProviderMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/EventProviderMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\ExceptionMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/ExceptionMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\FactoryMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/FactoryMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\GeneratorCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/GeneratorCommand.php',
'Nwidart\\Modules\\Commands\\Make\\HelperMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/HelperMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\InterfaceMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/InterfaceMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\JobMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/JobMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\ListenerMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/ListenerMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\MailMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/MailMakeCommand.php',
@ -4239,11 +4593,12 @@ class ComposerStaticInit6dc3e011b2ee18ecf5f0987aba384f2b
'Nwidart\\Modules\\Commands\\Make\\ResourceMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/ResourceMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\RouteProviderMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/RouteProviderMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\RuleMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/RuleMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\ScopeMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/ScopeMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\SeedMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/SeedMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\ServiceMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/ServiceMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\TestMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/TestMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\TraitMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/TraitMakeCommand.php',
'Nwidart\\Modules\\Commands\\Make\\ViewMakeCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Make/ViewMakeCommand.php',
'Nwidart\\Modules\\Commands\\MigrateFreshCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/MigrateFreshCommand.php',
'Nwidart\\Modules\\Commands\\Publish\\PublishCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Publish/PublishCommand.php',
'Nwidart\\Modules\\Commands\\Publish\\PublishConfigurationCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Publish/PublishConfigurationCommand.php',
'Nwidart\\Modules\\Commands\\Publish\\PublishMigrationCommand' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Commands/Publish/PublishMigrationCommand.php',
@ -4292,6 +4647,7 @@ class ComposerStaticInit6dc3e011b2ee18ecf5f0987aba384f2b
'Nwidart\\Modules\\Traits\\CanClearModulesCache' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Traits/CanClearModulesCache.php',
'Nwidart\\Modules\\Traits\\MigrationLoaderTrait' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Traits/MigrationLoaderTrait.php',
'Nwidart\\Modules\\Traits\\ModuleCommandTrait' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Traits/ModuleCommandTrait.php',
'Nwidart\\Modules\\Traits\\PathNamespace' => __DIR__ . '/..' . '/nwidart/laravel-modules/src/Traits/PathNamespace.php',
'Override' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/Override.php',
'PHPUnit\\Event\\Application\\Finished' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Application/Finished.php',
'PHPUnit\\Event\\Application\\FinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Application/FinishedSubscriber.php',
@ -6105,8 +6461,11 @@ class ComposerStaticInit6dc3e011b2ee18ecf5f0987aba384f2b
'Spatie\\Backtrace\\Arguments\\Reducers\\StringableArgumentReducer' => __DIR__ . '/..' . '/spatie/backtrace/src/Arguments/Reducers/StringableArgumentReducer.php',
'Spatie\\Backtrace\\Arguments\\Reducers\\SymphonyRequestArgumentReducer' => __DIR__ . '/..' . '/spatie/backtrace/src/Arguments/Reducers/SymphonyRequestArgumentReducer.php',
'Spatie\\Backtrace\\Backtrace' => __DIR__ . '/..' . '/spatie/backtrace/src/Backtrace.php',
'Spatie\\Backtrace\\CodeSnippet' => __DIR__ . '/..' . '/spatie/backtrace/src/CodeSnippet.php',
'Spatie\\Backtrace\\File' => __DIR__ . '/..' . '/spatie/backtrace/src/File.php',
'Spatie\\Backtrace\\CodeSnippets\\CodeSnippet' => __DIR__ . '/..' . '/spatie/backtrace/src/CodeSnippets/CodeSnippet.php',
'Spatie\\Backtrace\\CodeSnippets\\FileSnippetProvider' => __DIR__ . '/..' . '/spatie/backtrace/src/CodeSnippets/FileSnippetProvider.php',
'Spatie\\Backtrace\\CodeSnippets\\LaravelSerializableClosureSnippetProvider' => __DIR__ . '/..' . '/spatie/backtrace/src/CodeSnippets/LaravelSerializableClosureSnippetProvider.php',
'Spatie\\Backtrace\\CodeSnippets\\NullSnippetProvider' => __DIR__ . '/..' . '/spatie/backtrace/src/CodeSnippets/NullSnippetProvider.php',
'Spatie\\Backtrace\\CodeSnippets\\SnippetProvider' => __DIR__ . '/..' . '/spatie/backtrace/src/CodeSnippets/SnippetProvider.php',
'Spatie\\Backtrace\\Frame' => __DIR__ . '/..' . '/spatie/backtrace/src/Frame.php',
'Spatie\\FlareClient\\Api' => __DIR__ . '/..' . '/spatie/flare-client-php/src/Api.php',
'Spatie\\FlareClient\\Concerns\\HasContext' => __DIR__ . '/..' . '/spatie/flare-client-php/src/Concerns/HasContext.php',
@ -6231,6 +6590,7 @@ class ComposerStaticInit6dc3e011b2ee18ecf5f0987aba384f2b
'Spatie\\LaravelIgnition\\FlareMiddleware\\AddContext' => __DIR__ . '/..' . '/spatie/laravel-ignition/src/FlareMiddleware/AddContext.php',
'Spatie\\LaravelIgnition\\FlareMiddleware\\AddDumps' => __DIR__ . '/..' . '/spatie/laravel-ignition/src/FlareMiddleware/AddDumps.php',
'Spatie\\LaravelIgnition\\FlareMiddleware\\AddEnvironmentInformation' => __DIR__ . '/..' . '/spatie/laravel-ignition/src/FlareMiddleware/AddEnvironmentInformation.php',
'Spatie\\LaravelIgnition\\FlareMiddleware\\AddExceptionHandledStatus' => __DIR__ . '/..' . '/spatie/laravel-ignition/src/FlareMiddleware/AddExceptionHandledStatus.php',
'Spatie\\LaravelIgnition\\FlareMiddleware\\AddExceptionInformation' => __DIR__ . '/..' . '/spatie/laravel-ignition/src/FlareMiddleware/AddExceptionInformation.php',
'Spatie\\LaravelIgnition\\FlareMiddleware\\AddJobs' => __DIR__ . '/..' . '/spatie/laravel-ignition/src/FlareMiddleware/AddJobs.php',
'Spatie\\LaravelIgnition\\FlareMiddleware\\AddLogs' => __DIR__ . '/..' . '/spatie/laravel-ignition/src/FlareMiddleware/AddLogs.php',
@ -7267,7 +7627,9 @@ class ComposerStaticInit6dc3e011b2ee18ecf5f0987aba384f2b
'Symfony\\Contracts\\Service\\Attribute\\Required' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/Required.php',
'Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/SubscribedService.php',
'Symfony\\Contracts\\Service\\ResetInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ResetInterface.php',
'Symfony\\Contracts\\Service\\ServiceCollectionInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceCollectionInterface.php',
'Symfony\\Contracts\\Service\\ServiceLocatorTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceLocatorTrait.php',
'Symfony\\Contracts\\Service\\ServiceMethodsSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceMethodsSubscriberTrait.php',
'Symfony\\Contracts\\Service\\ServiceProviderInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceProviderInterface.php',
'Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberInterface.php',
'Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberTrait.php',

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@
'name' => 'laravel/laravel',
'pretty_version' => 'dev-main',
'version' => 'dev-main',
'reference' => '4ad426cbebcf90bb426d4622598252d3eb720977',
'reference' => '53c0140f584662973e14eb20af084892f7dcd28b',
'type' => 'project',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
@ -11,18 +11,18 @@
),
'versions' => array(
'barryvdh/laravel-debugbar' => array(
'pretty_version' => 'v3.13.4',
'version' => '3.13.4.0',
'reference' => '00201bcd1eaf9b1d3debddcdc13c219e4835fb61',
'pretty_version' => 'v3.13.5',
'version' => '3.13.5.0',
'reference' => '92d86be45ee54edff735e46856f64f14b6a8bb07',
'type' => 'library',
'install_path' => __DIR__ . '/../barryvdh/laravel-debugbar',
'aliases' => array(),
'dev_requirement' => false,
),
'brick/math' => array(
'pretty_version' => '0.11.0',
'version' => '0.11.0.0',
'reference' => '0ad82ce168c82ba30d1c01ec86116ab52f589478',
'pretty_version' => '0.12.1',
'version' => '0.12.1.0',
'reference' => 'f510c0a40911935b77b86859eb5223d58d660df1',
'type' => 'library',
'install_path' => __DIR__ . '/../brick/math',
'aliases' => array(),
@ -178,199 +178,199 @@
'illuminate/auth' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/broadcasting' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/bus' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/cache' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/collections' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/conditionable' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/config' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/console' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/container' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/contracts' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/cookie' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/database' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/encryption' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/events' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/filesystem' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/hashing' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/http' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/log' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/macroable' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/mail' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/notifications' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/pagination' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/pipeline' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/process' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/queue' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/redis' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/routing' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/session' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/support' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/testing' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/translation' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/validation' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'illuminate/view' => array(
'dev_requirement' => false,
'replaced' => array(
0 => 'v10.48.8',
0 => 'v10.48.10',
),
),
'kodova/hamcrest-php' => array(
@ -380,9 +380,9 @@
),
),
'laravel/framework' => array(
'pretty_version' => 'v10.48.8',
'version' => '10.48.8.0',
'reference' => '8e9ab6da362f268170fe815127aed5ec7d303697',
'pretty_version' => 'v10.48.10',
'version' => '10.48.10.0',
'reference' => '91e2b9e218afa4e5c377510faa11957042831ba3',
'type' => 'library',
'install_path' => __DIR__ . '/../laravel/framework',
'aliases' => array(),
@ -391,25 +391,25 @@
'laravel/laravel' => array(
'pretty_version' => 'dev-main',
'version' => 'dev-main',
'reference' => '4ad426cbebcf90bb426d4622598252d3eb720977',
'reference' => '53c0140f584662973e14eb20af084892f7dcd28b',
'type' => 'project',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
'dev_requirement' => false,
),
'laravel/pint' => array(
'pretty_version' => 'v1.15.1',
'version' => '1.15.1.0',
'reference' => '5f288b5e79938cc72f5c298d384e639de87507c6',
'pretty_version' => 'v1.15.3',
'version' => '1.15.3.0',
'reference' => '3600b5d17aff52f6100ea4921849deacbbeb8656',
'type' => 'project',
'install_path' => __DIR__ . '/../laravel/pint',
'aliases' => array(),
'dev_requirement' => true,
),
'laravel/prompts' => array(
'pretty_version' => 'v0.1.19',
'version' => '0.1.19.0',
'reference' => '0ab75ac3434d9f610c5691758a6146a3d1940c18',
'pretty_version' => 'v0.1.21',
'version' => '0.1.21.0',
'reference' => '23ea808e8a145653e0ab29e30d4385e49f40a920',
'type' => 'library',
'install_path' => __DIR__ . '/../laravel/prompts',
'aliases' => array(),
@ -602,9 +602,9 @@
'dev_requirement' => false,
),
'nwidart/laravel-modules' => array(
'pretty_version' => 'v11.0.6',
'version' => '11.0.6.0',
'reference' => '3f65a38cbe82e486be845ed763d8f48beec45269',
'pretty_version' => 'v11.0.10',
'version' => '11.0.10.0',
'reference' => '4522002fc94cf4a1555337394f7268dd14651806',
'type' => 'library',
'install_path' => __DIR__ . '/../nwidart/laravel-modules',
'aliases' => array(),
@ -701,9 +701,9 @@
'dev_requirement' => true,
),
'phpunit/phpunit' => array(
'pretty_version' => '10.5.19',
'version' => '10.5.19.0',
'reference' => 'c726f0de022368f6ed103e452a765d3304a996a4',
'pretty_version' => '10.5.20',
'version' => '10.5.20.0',
'reference' => '547d314dc24ec1e177720d45c6263fb226cc2ae3',
'type' => 'library',
'install_path' => __DIR__ . '/../phpunit/phpunit',
'aliases' => array(),
@ -858,9 +858,9 @@
'dev_requirement' => false,
),
'ramsey/uuid' => array(
'pretty_version' => '4.7.5',
'version' => '4.7.5.0',
'reference' => '5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e',
'pretty_version' => '4.7.6',
'version' => '4.7.6.0',
'reference' => '91039bc1faa45ba123c4328958e620d382ec7088',
'type' => 'library',
'install_path' => __DIR__ . '/../ramsey/uuid',
'aliases' => array(),
@ -869,7 +869,7 @@
'rhumsaa/uuid' => array(
'dev_requirement' => false,
'replaced' => array(
0 => '4.7.5',
0 => '4.7.6',
),
),
'sebastian/cli-parser' => array(
@ -1008,45 +1008,45 @@
'dev_requirement' => true,
),
'spatie/backtrace' => array(
'pretty_version' => '1.5.3',
'version' => '1.5.3.0',
'reference' => '483f76a82964a0431aa836b6ed0edde0c248e3ab',
'pretty_version' => '1.6.1',
'version' => '1.6.1.0',
'reference' => '8373b9d51638292e3bfd736a9c19a654111b4a23',
'type' => 'library',
'install_path' => __DIR__ . '/../spatie/backtrace',
'aliases' => array(),
'dev_requirement' => true,
),
'spatie/flare-client-php' => array(
'pretty_version' => '1.4.4',
'version' => '1.4.4.0',
'reference' => '17082e780752d346c2db12ef5d6bee8e835e399c',
'pretty_version' => '1.5.1',
'version' => '1.5.1.0',
'reference' => 'e27977d534eefe04c154c6fd8460217024054c05',
'type' => 'library',
'install_path' => __DIR__ . '/../spatie/flare-client-php',
'aliases' => array(),
'dev_requirement' => true,
),
'spatie/ignition' => array(
'pretty_version' => '1.13.2',
'version' => '1.13.2.0',
'reference' => '952798e239d9969e4e694b124c2cc222798dbb28',
'pretty_version' => '1.14.1',
'version' => '1.14.1.0',
'reference' => 'c23cc018c5f423d2f413b99f84655fceb6549811',
'type' => 'library',
'install_path' => __DIR__ . '/../spatie/ignition',
'aliases' => array(),
'dev_requirement' => true,
),
'spatie/laravel-html' => array(
'pretty_version' => '3.7.0',
'version' => '3.7.0.0',
'reference' => 'df15763c190954ee46a74e0bf5b4b5bbf2e1f170',
'pretty_version' => '3.9.0',
'version' => '3.9.0.0',
'reference' => '35802bd9b276ce08e1d9d15584b17fdef965063b',
'type' => 'library',
'install_path' => __DIR__ . '/../spatie/laravel-html',
'aliases' => array(),
'dev_requirement' => false,
),
'spatie/laravel-ignition' => array(
'pretty_version' => '2.5.2',
'version' => '2.5.2.0',
'reference' => 'c93fcadcc4629775c839ac9a90916f07a660266f',
'pretty_version' => '2.7.0',
'version' => '2.7.0.0',
'reference' => 'f52124d50122611e8a40f628cef5c19ff6cc5b57',
'type' => 'library',
'install_path' => __DIR__ . '/../spatie/laravel-ignition',
'aliases' => array(),
@ -1062,54 +1062,54 @@
'dev_requirement' => false,
),
'symfony/console' => array(
'pretty_version' => 'v6.4.6',
'version' => '6.4.6.0',
'reference' => 'a2708a5da5c87d1d0d52937bdeac625df659e11f',
'pretty_version' => 'v6.4.7',
'version' => '6.4.7.0',
'reference' => 'a170e64ae10d00ba89e2acbb590dc2e54da8ad8f',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/console',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/css-selector' => array(
'pretty_version' => 'v7.0.3',
'version' => '7.0.3.0',
'reference' => 'ec60a4edf94e63b0556b6a0888548bb400a3a3be',
'pretty_version' => 'v7.0.7',
'version' => '7.0.7.0',
'reference' => 'b08a4ad89e84b29cec285b7b1f781a7ae51cf4bc',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/css-selector',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/deprecation-contracts' => array(
'pretty_version' => 'v3.4.0',
'version' => '3.4.0.0',
'reference' => '7c3aff79d10325257a001fcf92d991f24fc967cf',
'pretty_version' => 'v3.5.0',
'version' => '3.5.0.0',
'reference' => '0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/deprecation-contracts',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/error-handler' => array(
'pretty_version' => 'v6.4.6',
'version' => '6.4.6.0',
'reference' => '64db1c1802e3a4557e37ba33031ac39f452ac5d4',
'pretty_version' => 'v6.4.7',
'version' => '6.4.7.0',
'reference' => '667a072466c6a53827ed7b119af93806b884cbb3',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/error-handler',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/event-dispatcher' => array(
'pretty_version' => 'v7.0.3',
'version' => '7.0.3.0',
'reference' => '834c28d533dd0636f910909d01b9ff45cc094b5e',
'pretty_version' => 'v7.0.7',
'version' => '7.0.7.0',
'reference' => 'db2a7fab994d67d92356bb39c367db115d9d30f9',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/event-dispatcher',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/event-dispatcher-contracts' => array(
'pretty_version' => 'v3.4.2',
'version' => '3.4.2.0',
'reference' => '4e64b49bf370ade88e567de29465762e316e4224',
'pretty_version' => 'v3.5.0',
'version' => '3.5.0.0',
'reference' => '8f93aec25d41b72493c6ddff14e916177c9efc50',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/event-dispatcher-contracts',
'aliases' => array(),
@ -1122,45 +1122,45 @@
),
),
'symfony/finder' => array(
'pretty_version' => 'v6.4.0',
'version' => '6.4.0.0',
'reference' => '11d736e97f116ac375a81f96e662911a34cd50ce',
'pretty_version' => 'v6.4.7',
'version' => '6.4.7.0',
'reference' => '511c48990be17358c23bf45c5d71ab85d40fb764',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/finder',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/http-foundation' => array(
'pretty_version' => 'v6.4.4',
'version' => '6.4.4.0',
'reference' => 'ebc713bc6e6f4b53f46539fc158be85dfcd77304',
'pretty_version' => 'v6.4.7',
'version' => '6.4.7.0',
'reference' => 'b4db6b833035477cb70e18d0ae33cb7c2b521759',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/http-foundation',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/http-kernel' => array(
'pretty_version' => 'v6.4.6',
'version' => '6.4.6.0',
'reference' => '060038863743fd0cd982be06acecccf246d35653',
'pretty_version' => 'v6.4.7',
'version' => '6.4.7.0',
'reference' => 'b7b5e6cdef670a0c82d015a966ffc7e855861a98',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/http-kernel',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/mailer' => array(
'pretty_version' => 'v6.4.6',
'version' => '6.4.6.0',
'reference' => '677f34a6f4b4559e08acf73ae0aec460479e5859',
'pretty_version' => 'v6.4.7',
'version' => '6.4.7.0',
'reference' => '2c446d4e446995bed983c0b5bb9ff837e8de7dbd',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/mailer',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/mime' => array(
'pretty_version' => 'v6.4.6',
'version' => '6.4.6.0',
'reference' => '14762b86918823cb42e3558cdcca62e58b5227fe',
'pretty_version' => 'v6.4.7',
'version' => '6.4.7.0',
'reference' => 'decadcf3865918ecfcbfa90968553994ce935a5e',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/mime',
'aliases' => array(),
@ -1248,54 +1248,54 @@
'dev_requirement' => false,
),
'symfony/process' => array(
'pretty_version' => 'v6.4.4',
'version' => '6.4.4.0',
'reference' => '710e27879e9be3395de2b98da3f52a946039f297',
'pretty_version' => 'v6.4.7',
'version' => '6.4.7.0',
'reference' => 'cdb1c81c145fd5aa9b0038bab694035020943381',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/process',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/routing' => array(
'pretty_version' => 'v6.4.6',
'version' => '6.4.6.0',
'reference' => 'f2591fd1f8c6e3734656b5d6b3829e8bf81f507c',
'pretty_version' => 'v6.4.7',
'version' => '6.4.7.0',
'reference' => '276e06398f71fa2a973264d94f28150f93cfb907',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/routing',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/service-contracts' => array(
'pretty_version' => 'v3.4.2',
'version' => '3.4.2.0',
'reference' => '11bbf19a0fb7b36345861e85c5768844c552906e',
'pretty_version' => 'v3.5.0',
'version' => '3.5.0.0',
'reference' => 'bd1d9e59a81d8fa4acdcea3f617c581f7475a80f',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/service-contracts',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/string' => array(
'pretty_version' => 'v7.0.4',
'version' => '7.0.4.0',
'reference' => 'f5832521b998b0bec40bee688ad5de98d4cf111b',
'pretty_version' => 'v7.0.7',
'version' => '7.0.7.0',
'reference' => 'e405b5424dc2528e02e31ba26b83a79fd4eb8f63',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/string',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/translation' => array(
'pretty_version' => 'v6.4.4',
'version' => '6.4.4.0',
'reference' => 'bce6a5a78e94566641b2594d17e48b0da3184a8e',
'pretty_version' => 'v6.4.7',
'version' => '6.4.7.0',
'reference' => '7495687c58bfd88b7883823747b0656d90679123',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/translation',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/translation-contracts' => array(
'pretty_version' => 'v3.4.2',
'version' => '3.4.2.0',
'reference' => '43810bdb2ddb5400e5c5e778e27b210a0ca83b6b',
'pretty_version' => 'v3.5.0',
'version' => '3.5.0.0',
'reference' => 'b9d2189887bb6b2e0367a9fc7136c5239ab9b05a',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/translation-contracts',
'aliases' => array(),
@ -1308,27 +1308,27 @@
),
),
'symfony/uid' => array(
'pretty_version' => 'v6.4.3',
'version' => '6.4.3.0',
'reference' => '1d31267211cc3a2fff32bcfc7c1818dac41b6fc0',
'pretty_version' => 'v6.4.7',
'version' => '6.4.7.0',
'reference' => 'a66efcb71d8bc3a207d9d78e0bd67f3321510355',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/uid',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/var-dumper' => array(
'pretty_version' => 'v6.4.6',
'version' => '6.4.6.0',
'reference' => '95bd2706a97fb875185b51ecaa6112ec184233d4',
'pretty_version' => 'v6.4.7',
'version' => '6.4.7.0',
'reference' => '7a9cd977cd1c5fed3694bee52990866432af07d7',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/var-dumper',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/yaml' => array(
'pretty_version' => 'v7.0.3',
'version' => '7.0.3.0',
'reference' => '2d4fca631c00700597e9442a0b2451ce234513d3',
'pretty_version' => 'v7.0.7',
'version' => '7.0.7.0',
'reference' => '0d3916ae69ea28b59d94b60c4f2b50f4e25adb5c',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/yaml',
'aliases' => array(),

View File

@ -1,6 +1,17 @@
# Release Notes for 10.x
## [Unreleased](https://github.com/laravel/framework/compare/v10.48.7...10.x)
## [Unreleased](https://github.com/laravel/framework/compare/v10.48.9...10.x)
## [v10.48.9](https://github.com/laravel/framework/compare/v10.48.8...v10.48.9) - 2024-04-23
* [10.x] Binding order is incorrect when using cursor paginate with multiple unions with a where by [@thijsvdanker](https://github.com/thijsvdanker) in https://github.com/laravel/framework/pull/50884
* [10.x] Fix cursor paginate with union and column alias by [@thijsvdanker](https://github.com/thijsvdanker) in https://github.com/laravel/framework/pull/50882
* [10.x] Address Null Parameter Deprecations in UrlGenerator by [@aldobarr](https://github.com/aldobarr) in https://github.com/laravel/framework/pull/51148
## [v10.48.8](https://github.com/laravel/framework/compare/v10.48.7...v10.48.8) - 2024-04-17
* [10.x] Fix error when using `orderByRaw()` in query before using `cursorPaginate()` by @axlon in https://github.com/laravel/framework/pull/51023
* [10.x] Database layer fixes by @saadsidqui in https://github.com/laravel/framework/pull/49787
## [v10.48.7](https://github.com/laravel/framework/compare/v10.48.6...v10.48.7) - 2024-04-10

View File

@ -379,11 +379,14 @@ trait BuildsQueries
$orders = $this->ensureOrderForCursorPagination(! is_null($cursor) && $cursor->pointsToPreviousItems());
if (! is_null($cursor)) {
$addCursorConditions = function (self $builder, $previousColumn, $i) use (&$addCursorConditions, $cursor, $orders) {
$unionBuilders = isset($builder->unions) ? collect($builder->unions)->pluck('query') : collect();
// Reset the union bindings so we can add the cursor where in the correct position...
$this->setBindings([], 'union');
$addCursorConditions = function (self $builder, $previousColumn, $originalColumn, $i) use (&$addCursorConditions, $cursor, $orders) {
$unionBuilders = $builder->getUnionBuilders();
if (! is_null($previousColumn)) {
$originalColumn = $this->getOriginalColumnNameForCursorPagination($this, $previousColumn);
$originalColumn ??= $this->getOriginalColumnNameForCursorPagination($this, $previousColumn);
$builder->where(
Str::contains($originalColumn, ['(', ')']) ? new Expression($originalColumn) : $originalColumn,
@ -393,7 +396,7 @@ trait BuildsQueries
$unionBuilders->each(function ($unionBuilder) use ($previousColumn, $cursor) {
$unionBuilder->where(
$this->getOriginalColumnNameForCursorPagination($this, $previousColumn),
$this->getOriginalColumnNameForCursorPagination($unionBuilder, $previousColumn),
'=',
$cursor->parameter($previousColumn)
);
@ -402,44 +405,48 @@ trait BuildsQueries
});
}
$builder->where(function (self $builder) use ($addCursorConditions, $cursor, $orders, $i, $unionBuilders) {
$builder->where(function (self $secondBuilder) use ($addCursorConditions, $cursor, $orders, $i, $unionBuilders) {
['column' => $column, 'direction' => $direction] = $orders[$i];
$originalColumn = $this->getOriginalColumnNameForCursorPagination($this, $column);
$builder->where(
$secondBuilder->where(
Str::contains($originalColumn, ['(', ')']) ? new Expression($originalColumn) : $originalColumn,
$direction === 'asc' ? '>' : '<',
$cursor->parameter($column)
);
if ($i < $orders->count() - 1) {
$builder->orWhere(function (self $builder) use ($addCursorConditions, $column, $i) {
$addCursorConditions($builder, $column, $i + 1);
$secondBuilder->orWhere(function (self $thirdBuilder) use ($addCursorConditions, $column, $originalColumn, $i) {
$addCursorConditions($thirdBuilder, $column, $originalColumn, $i + 1);
});
}
$unionBuilders->each(function ($unionBuilder) use ($column, $direction, $cursor, $i, $orders, $addCursorConditions) {
$unionBuilder->where(function ($unionBuilder) use ($column, $direction, $cursor, $i, $orders, $addCursorConditions) {
$unionWheres = $unionBuilder->getRawBindings()['where'];
$originalColumn = $this->getOriginalColumnNameForCursorPagination($unionBuilder, $column);
$unionBuilder->where(function ($unionBuilder) use ($column, $direction, $cursor, $i, $orders, $addCursorConditions, $originalColumn, $unionWheres) {
$unionBuilder->where(
$this->getOriginalColumnNameForCursorPagination($this, $column),
$originalColumn,
$direction === 'asc' ? '>' : '<',
$cursor->parameter($column)
);
if ($i < $orders->count() - 1) {
$unionBuilder->orWhere(function (self $builder) use ($addCursorConditions, $column, $i) {
$addCursorConditions($builder, $column, $i + 1);
$unionBuilder->orWhere(function (self $fourthBuilder) use ($addCursorConditions, $column, $originalColumn, $i) {
$addCursorConditions($fourthBuilder, $column, $originalColumn, $i + 1);
});
}
$this->addBinding($unionWheres, 'union');
$this->addBinding($unionBuilder->getRawBindings()['where'], 'union');
});
});
});
};
$addCursorConditions($this, null, 0);
$addCursorConditions($this, null, null, 0);
}
$this->limit($perPage + 1);

View File

@ -19,6 +19,7 @@ trait DetectsLostConnections
return Str::contains($message, [
'server has gone away',
'Server has gone away',
'no connection to the server',
'Lost connection',
'is dead or not enabled',

View File

@ -108,6 +108,7 @@ class Builder implements BuilderContract
'getbindings',
'getconnection',
'getgrammar',
'getrawbindings',
'implode',
'insert',
'insertgetid',
@ -1727,6 +1728,18 @@ class Builder implements BuilderContract
: $scope();
}
/**
* Get the Eloquent builder instances that are used in the union of the query.
*
* @return \Illuminate\Support\Collection
*/
protected function getUnionBuilders()
{
return isset($this->query->unions)
? collect($this->query->unions)->pluck('query')
: collect();
}
/**
* Get the underlying query builder instance.
*

View File

@ -3815,6 +3815,18 @@ class Builder implements BuilderContract
return $this->connection->raw($value);
}
/**
* Get the query builder instances that are used in the union of the query.
*
* @return \Illuminate\Support\Collection
*/
protected function getUnionBuilders()
{
return isset($this->unions)
? collect($this->unions)->pluck('query')
: collect();
}
/**
* Get the current query value bindings in a flattened array.
*

View File

@ -40,7 +40,7 @@ class Application extends Container implements ApplicationContract, CachesConfig
*
* @var string
*/
const VERSION = '10.48.8';
const VERSION = '10.48.10';
/**
* The base path for the Laravel installation.
@ -535,6 +535,10 @@ class Application extends Container implements ApplicationContract, CachesConfig
return $this->joinPaths($this->storagePath ?: $_ENV['LARAVEL_STORAGE_PATH'], $path);
}
if (isset($_SERVER['LARAVEL_STORAGE_PATH'])) {
return $this->joinPaths($this->storagePath ?: $_SERVER['LARAVEL_STORAGE_PATH'], $path);
}
return $this->joinPaths($this->storagePath ?: $this->basePath('storage'), $path);
}

View File

@ -310,7 +310,7 @@ class TestResponse implements ArrayAccess
public function assertLocation($uri)
{
PHPUnit::assertEquals(
app('url')->to($uri), app('url')->to($this->headers->get('Location'))
app('url')->to($uri), app('url')->to($this->headers->get('Location', ''))
);
return $this;
@ -324,7 +324,7 @@ class TestResponse implements ArrayAccess
*/
public function assertDownload($filename = null)
{
$contentDisposition = explode(';', $this->headers->get('content-disposition'));
$contentDisposition = explode(';', $this->headers->get('content-disposition', ''));
if (trim($contentDisposition[0]) !== 'attachment') {
PHPUnit::fail(

Binary file not shown.

View File

@ -23,13 +23,13 @@
"ext-xml": "*"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.52.1",
"illuminate/view": "^10.48.4",
"larastan/larastan": "^2.9.2",
"friendsofphp/php-cs-fixer": "^3.54.0",
"illuminate/view": "^10.48.8",
"larastan/larastan": "^2.9.5",
"laravel-zero/framework": "^10.3.0",
"mockery/mockery": "^1.6.11",
"nunomaduro/termwind": "^1.15.1",
"pestphp/pest": "^2.34.5"
"pestphp/pest": "^2.34.7"
},
"autoload": {
"psr-4": {

View File

@ -1,6 +1,7 @@
{
"name": "laravel/prompts",
"type": "library",
"description": "Add beautiful and user-friendly forms to your command-line applications.",
"license": "MIT",
"autoload": {
"psr-4": {

View File

@ -6,8 +6,12 @@ class Key
{
const UP = "\e[A";
const SHIFT_UP = "\e[1;2A";
const DOWN = "\e[B";
const SHIFT_DOWN = "\e[1;2B";
const RIGHT = "\e[C";
const LEFT = "\e[D";
@ -20,6 +24,8 @@ class Key
const LEFT_ARROW = "\eOD";
const ESCAPE = "\e";
const DELETE = "\e[3~";
const BACKSPACE = "\177";

Some files were not shown because too many files have changed in this diff Show More