diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index 5e954a24c5..ef05b2f67a 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -435,6 +435,34 @@ class Helper return $colors[$index]; } + /** + * Check if a string has any RTL characters + * @param $value + * @return bool + */ + public static function hasRtl($string) { + $rtlChar = '/[\x{0590}-\x{083F}]|[\x{08A0}-\x{08FF}]|[\x{FB1D}-\x{FDFF}]|[\x{FE70}-\x{FEFF}]/u'; + return preg_match($rtlChar, $string) != 0; + } + + // is chinese, japanese or korean language + public static function isCjk($string) { + return Helper::isChinese($string) || Helper::isJapanese($string) || Helper::isKorean($string); + } + + public static function isChinese($string) { + return preg_match("/\p{Han}+/u", $string); + } + + public static function isJapanese($string) { + return preg_match('/[\x{4E00}-\x{9FBF}\x{3040}-\x{309F}\x{30A0}-\x{30FF}]/u', $string); + } + + public static function isKorean($string) { + return preg_match('/[\x{3130}-\x{318F}\x{AC00}-\x{D7AF}]/u', $string); + } + + /** * Increases or decreases the brightness of a color by a percentage of the current brightness. * diff --git a/app/Http/Controllers/Account/AcceptanceController.php b/app/Http/Controllers/Account/AcceptanceController.php index 3745c527fa..22ad82dc51 100644 --- a/app/Http/Controllers/Account/AcceptanceController.php +++ b/app/Http/Controllers/Account/AcceptanceController.php @@ -30,11 +30,12 @@ use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Str; use App\Http\Controllers\SettingsController; -use Barryvdh\DomPDF\Facade\Pdf; use Carbon\Carbon; use \Illuminate\Contracts\View\View; use \Illuminate\Http\RedirectResponse; use Illuminate\Support\Facades\Log; +use TCPDF; +use App\Helpers\Helper; class AcceptanceController extends Controller { @@ -225,9 +226,9 @@ class AcceptanceController extends Controller 'item_status' => $item->assetstatus?->name, 'eula' => $item->getEula(), 'note' => $request->input('note'), - 'check_out_date' => Carbon::parse($acceptance->created_at)->format('Y-m-d'), - 'accepted_date' => Carbon::parse($acceptance->accepted_at)->format('Y-m-d'), - 'assigned_to' => $assigned_user->present()->fullName, + 'check_out_date' => Carbon::parse($acceptance->created_at)->format('Y-m-d H:i:s'), + 'accepted_date' => Carbon::parse($acceptance->accepted_at)->format('Y-m-d H:i:s'), + 'assigned_to' => $assigned_user->display_name, 'company_name' => $branding_settings->site_name, 'signature' => ($sig_filename) ? storage_path() . '/private_uploads/signatures/' . $sig_filename : null, 'logo' => $path_logo, @@ -237,12 +238,96 @@ class AcceptanceController extends Controller ]; if ($pdf_view_route!='') { - Log::debug($pdf_filename.' is the filename, and the route was specified.'); - $pdf = Pdf::loadView($pdf_view_route, $data); - Storage::put('private_uploads/eula-pdfs/' .$pdf_filename, $pdf->output()); + // set some language dependent data: + $lg = Array(); + $lg['a_meta_charset'] = 'UTF-8'; + $lg['w_page'] = 'page'; + + $pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false); + // $pdf->SetHeaderData(PDF_HEADER_LOGO, 5, PDF_HEADER_TITLE.' 006', PDF_HEADER_STRING); + // $pdf->SetHeaderData('https://snipe-it.test/uploads/snipe-logo.png', '5', $data['company_name'], $item->company?->name); + //$pdf->headerText = ('Anything you want ' . date('c')); + $pdf->setRTL(false); + //$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, $data['company_name'], ''); + $pdf->setLanguageArray($lg); + $pdf->SetFontSubsetting(true); + $pdf->SetCreator('Snipe-IT'); + $pdf->SetAuthor($data['assigned_to']); + $pdf->SetTitle('Asset Acceptance: '.$data['item_tag']); + // $pdf->SetSubject('Document Subject'); + //$pdf->SetKeywords('keywords, here'); + + $pdf->SetFont('dejavusans', '', 8, '', true); + + + // $pdf->SetFont('dejavusans', '', 14); + // + + + $pdf->SetPrintHeader(false); + $pdf->SetPrintFooter(false); + $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); + $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); + + $pdf->AddPage(); + $pdf->writeHTML('', true, 0, true, 0, ''); + + // $pdf->writeHTML(trans('general.date').': '.date($data['date_settings']), true, 0, true, 0, ''); + $pdf->writeHTML("".trans('general.asset_tag').': '.$data['item_tag'], true, 0, true, 0, ''); + $pdf->writeHTML("".trans('general.asset_model').': '.$data['item_model'], true, 0, true, 0, ''); + $pdf->writeHTML("".trans('admin/hardware/form.serial').': '.$data['item_serial'], true, 0, true, 0, ''); + $pdf->writeHTML("".trans('general.assigned_date').': '.$data['check_out_date'], true, 0, true, 0, ''); + $pdf->writeHTML("".trans('general.assignee').': '.$data['assigned_to'], true, 0, true, 0, ''); + $pdf->Ln(); + // $html = view($pdf_view_route, $data)->render(); + // $pdf->writeHTML($html, true, 0, true, 0, ''); + + // $eula_lines = explode("\n\n", $item->getEula()); + $eula_lines = preg_split("/\r\n|\n|\r/", $item->getEula()); + + foreach ($eula_lines as $eula_line) { + if (Helper::hasRtl($eula_line)) { + $pdf->setRTL(true); + } else { + $pdf->setRTL(false); + } + + if (Helper::isCjk($eula_line)) { + $pdf->SetFont('cid0cs', '', 9); + } else { + $pdf->SetFont('dejavusans', '', 8, '', true); + } + + $pdf->writeHTML(Helper::parseEscapedMarkedown($eula_line), true, 0, true, 0, ''); + } + $pdf->Ln(); + $pdf->Ln(); + $pdf->setRTL(false); + $pdf->writeHTML('

', true, 0, true, 0, ''); + + if ($data['note'] != null) { + $pdf->writeHTML("".trans('general.notes') . ': ' . $data['note'], true, 0, true, 0, ''); + $pdf->Ln(); + } + + if ($data['signature'] != null) { + + $pdf->writeHTML('', true, 0, true, 0, ''); + $pdf->writeHTML('
', true, 0, true, 0, ''); + } + + $pdf->writeHTML("".trans('general.accepted_date').': '.$data['accepted_date'], true, 0, true, 0, ''); + + + $pdf_content = $pdf->Output($pdf_filename, 'S'); + + + //$html = view($pdf_view_route, $data)->render(); + //$pdf = PDF::writeHTML($html, true, false, true, false, ''); + Storage::put('private_uploads/eula-pdfs/' .$pdf_filename, $pdf_content); } - $acceptance->accept($sig_filename, $item->getEula(), $pdf_filename, $request->input('note')); + // $acceptance->accept($sig_filename, $item->getEula(), $pdf_filename, $request->input('note')); // Send the PDF to the signing user if (($request->input('send_copy') == '1') && ($assigned_user->email !='')) { diff --git a/app/Models/Asset.php b/app/Models/Asset.php index 37c8f34f33..b97b0d8f82 100644 --- a/app/Models/Asset.php +++ b/app/Models/Asset.php @@ -1037,9 +1037,9 @@ class Asset extends Depreciable if (($this->model) && ($this->model->category)) { if (($this->model->category->eula_text) && ($this->model->category->use_default_eula == 0)) { - return Helper::parseEscapedMarkedown($this->model->category->eula_text); + return $this->model->category->eula_text; } elseif ($this->model->category->use_default_eula == 1) { - return Helper::parseEscapedMarkedown(Setting::getSettings()->default_eula_text); + return Setting::getSettings()->default_eula_text; } else { return false; diff --git a/composer.json b/composer.json index f7b8641756..76a59a22f2 100644 --- a/composer.json +++ b/composer.json @@ -32,11 +32,11 @@ "arietimmerman/laravel-scim-server": "dev-laravel_11_compatibility", "bacon/bacon-qr-code": "^2.0", "barryvdh/laravel-debugbar": "^3.13", - "barryvdh/laravel-dompdf": "^2.0", "doctrine/cache": "^1.10", "doctrine/dbal": "^3.1", "doctrine/instantiator": "^1.3", "eduardokum/laravel-mail-auto-embed": "^2.0", + "elibyy/tcpdf-laravel": "^11.5", "enshrined/svg-sanitize": "^0.22.0", "erusev/parsedown": "^1.7", "fakerphp/faker": "^1.24", @@ -73,6 +73,7 @@ "spatie/laravel-ignition": "^2.0", "tabuna/breadcrumbs": "^4.2", "tecnickcom/tc-lib-barcode": "^1.15", + "tecnickcom/tc-lib-pdf-font": "^2.6", "tecnickcom/tcpdf": "^6.5", "unicodeveloper/laravel-password": "^1.0", "watson/validating": "^8.1" diff --git a/composer.lock b/composer.lock index f3a06b4556..76e8fb86b6 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "4a00fb4c4b9a2ac161183e9ae9217298", + "content-hash": "553ce69c21704905c568769de08fffe4", "packages": [ { "name": "alek13/slack", @@ -190,16 +190,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.356.11", + "version": "3.356.17", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "9dcb228185d441cedd4e6fe76905f6a6cdf83a9c" + "reference": "d0357fbe2535bb7d832e594a4ff2ff8da29d229c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/9dcb228185d441cedd4e6fe76905f6a6cdf83a9c", - "reference": "9dcb228185d441cedd4e6fe76905f6a6cdf83a9c", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/d0357fbe2535bb7d832e594a4ff2ff8da29d229c", + "reference": "d0357fbe2535bb7d832e594a4ff2ff8da29d229c", "shasum": "" }, "require": { @@ -212,7 +212,7 @@ "guzzlehttp/psr7": "^2.4.5", "mtdowling/jmespath.php": "^2.8.0", "php": ">=8.1", - "psr/http-message": "^2.0" + "psr/http-message": "^1.0 || ^2.0" }, "require-dev": { "andrewsville/php-token-reflection": "^1.4", @@ -281,9 +281,9 @@ "support": { "forum": "https://github.com/aws/aws-sdk-php/discussions", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.356.11" + "source": "https://github.com/aws/aws-sdk-php/tree/3.356.17" }, - "time": "2025-09-04T18:06:33+00:00" + "time": "2025-09-12T18:07:37+00:00" }, { "name": "bacon/bacon-qr-code", @@ -424,104 +424,27 @@ ], "time": "2025-07-14T11:56:43+00:00" }, - { - "name": "barryvdh/laravel-dompdf", - "version": "v2.2.0", - "source": { - "type": "git", - "url": "https://github.com/barryvdh/laravel-dompdf.git", - "reference": "c96f90c97666cebec154ca1ffb67afed372114d8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/c96f90c97666cebec154ca1ffb67afed372114d8", - "reference": "c96f90c97666cebec154ca1ffb67afed372114d8", - "shasum": "" - }, - "require": { - "dompdf/dompdf": "^2.0.7", - "illuminate/support": "^6|^7|^8|^9|^10|^11", - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "larastan/larastan": "^1.0|^2.7.0", - "orchestra/testbench": "^4|^5|^6|^7|^8|^9", - "phpro/grumphp": "^1 || ^2.5", - "squizlabs/php_codesniffer": "^3.5" - }, - "type": "library", - "extra": { - "laravel": { - "aliases": { - "PDF": "Barryvdh\\DomPDF\\Facade\\Pdf", - "Pdf": "Barryvdh\\DomPDF\\Facade\\Pdf" - }, - "providers": [ - "Barryvdh\\DomPDF\\ServiceProvider" - ] - }, - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "psr-4": { - "Barryvdh\\DomPDF\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Barry vd. Heuvel", - "email": "barryvdh@gmail.com" - } - ], - "description": "A DOMPDF Wrapper for Laravel", - "keywords": [ - "dompdf", - "laravel", - "pdf" - ], - "support": { - "issues": "https://github.com/barryvdh/laravel-dompdf/issues", - "source": "https://github.com/barryvdh/laravel-dompdf/tree/v2.2.0" - }, - "funding": [ - { - "url": "https://fruitcake.nl", - "type": "custom" - }, - { - "url": "https://github.com/barryvdh", - "type": "github" - } - ], - "time": "2024-04-25T13:16:04+00:00" - }, { "name": "brick/math", - "version": "0.13.1", + "version": "0.14.0", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "fc7ed316430118cc7836bf45faff18d5dfc8de04" + "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/fc7ed316430118cc7836bf45faff18d5dfc8de04", - "reference": "fc7ed316430118cc7836bf45faff18d5dfc8de04", + "url": "https://api.github.com/repos/brick/math/zipball/113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2", + "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2", "shasum": "" }, "require": { - "php": "^8.1" + "php": "^8.2" }, "require-dev": { "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^10.1", - "vimeo/psalm": "6.8.8" + "phpstan/phpstan": "2.1.22", + "phpunit/phpunit": "^11.5" }, "type": "library", "autoload": { @@ -551,7 +474,7 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.13.1" + "source": "https://github.com/brick/math/tree/0.14.0" }, "funding": [ { @@ -559,7 +482,7 @@ "type": "github" } ], - "time": "2025-03-29T13:50:30+00:00" + "time": "2025-08-29T12:40:03+00:00" }, { "name": "carbonphp/carbon-doctrine-types", @@ -923,16 +846,16 @@ }, { "name": "doctrine/dbal", - "version": "3.10.1", + "version": "3.10.2", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "3626601014388095d3af9de7e9e958623b7ef005" + "reference": "c6c16cf787eaba3112203dfcd715fa2059c62282" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/3626601014388095d3af9de7e9e958623b7ef005", - "reference": "3626601014388095d3af9de7e9e958623b7ef005", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/c6c16cf787eaba3112203dfcd715fa2059c62282", + "reference": "c6c16cf787eaba3112203dfcd715fa2059c62282", "shasum": "" }, "require": { @@ -948,10 +871,10 @@ }, "require-dev": { "doctrine/cache": "^1.11|^2.0", - "doctrine/coding-standard": "13.0.0", + "doctrine/coding-standard": "13.0.1", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "2.1.17", + "phpstan/phpstan": "2.1.22", "phpstan/phpstan-strict-rules": "^2", "phpunit/phpunit": "9.6.23", "slevomat/coding-standard": "8.16.2", @@ -1017,7 +940,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.10.1" + "source": "https://github.com/doctrine/dbal/tree/3.10.2" }, "funding": [ { @@ -1033,7 +956,7 @@ "type": "tidelift" } ], - "time": "2025-08-05T12:18:06+00:00" + "time": "2025-09-04T23:51:27+00:00" }, { "name": "doctrine/deprecations", @@ -1411,68 +1334,6 @@ ], "time": "2024-02-05T11:56:58+00:00" }, - { - "name": "dompdf/dompdf", - "version": "v2.0.8", - "source": { - "type": "git", - "url": "https://github.com/dompdf/dompdf.git", - "reference": "c20247574601700e1f7c8dab39310fca1964dc52" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dompdf/dompdf/zipball/c20247574601700e1f7c8dab39310fca1964dc52", - "reference": "c20247574601700e1f7c8dab39310fca1964dc52", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-mbstring": "*", - "masterminds/html5": "^2.0", - "phenx/php-font-lib": ">=0.5.4 <1.0.0", - "phenx/php-svg-lib": ">=0.5.2 <1.0.0", - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "ext-json": "*", - "ext-zip": "*", - "mockery/mockery": "^1.3", - "phpunit/phpunit": "^7.5 || ^8 || ^9", - "squizlabs/php_codesniffer": "^3.5" - }, - "suggest": { - "ext-gd": "Needed to process images", - "ext-gmagick": "Improves image processing performance", - "ext-imagick": "Improves image processing performance", - "ext-zlib": "Needed for pdf stream compression" - }, - "type": "library", - "autoload": { - "psr-4": { - "Dompdf\\": "src/" - }, - "classmap": [ - "lib/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-2.1" - ], - "authors": [ - { - "name": "The Dompdf Community", - "homepage": "https://github.com/dompdf/dompdf/blob/master/AUTHORS.md" - } - ], - "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter", - "homepage": "https://github.com/dompdf/dompdf", - "support": { - "issues": "https://github.com/dompdf/dompdf/issues", - "source": "https://github.com/dompdf/dompdf/tree/v2.0.8" - }, - "time": "2024-04-29T13:06:17+00:00" - }, { "name": "dragonmantank/cron-expression", "version": "v3.4.0", @@ -1675,6 +1536,62 @@ ], "time": "2025-03-06T22:45:56+00:00" }, + { + "name": "elibyy/tcpdf-laravel", + "version": "11.5.0", + "source": { + "type": "git", + "url": "https://github.com/elibyy/tcpdf-laravel.git", + "reference": "25d076d5f50eef9702dfa1ae889b1a599250f951" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/elibyy/tcpdf-laravel/zipball/25d076d5f50eef9702dfa1ae889b1a599250f951", + "reference": "25d076d5f50eef9702dfa1ae889b1a599250f951", + "shasum": "" + }, + "require": { + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "tecnickcom/tcpdf": "6.2.*|6.3.*|6.4.*|6.5.*|6.6.*|6.7.*|6.8.*|6.9.*|6.10.*|dev-main" + }, + "type": "library", + "extra": { + "laravel": { + "aliases": { + "PDF": "Elibyy\\TCPDF\\Facades\\TCPDF" + }, + "providers": [ + "Elibyy\\TCPDF\\ServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Elibyy\\TCPDF\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "eli y", + "email": "elibyy@gmail.com" + } + ], + "description": "tcpdf support for Laravel 6, 7, 8, 9, 10, 11", + "keywords": [ + "TCPDF", + "laravel", + "pdf" + ], + "support": { + "issues": "https://github.com/elibyy/tcpdf-laravel/issues", + "source": "https://github.com/elibyy/tcpdf-laravel/tree/11.5.0" + }, + "time": "2025-06-06T08:27:48+00:00" + }, { "name": "enshrined/svg-sanitize", "version": "0.22.0", @@ -2745,16 +2662,16 @@ }, { "name": "laravel/framework", - "version": "v11.45.3", + "version": "v11.46.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "f88bacee8daae65774ca8aa0f0bd32293e4f82b0" + "reference": "2c6d85f22d08123ad45aa3a6726b16f06e68eecd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/f88bacee8daae65774ca8aa0f0bd32293e4f82b0", - "reference": "f88bacee8daae65774ca8aa0f0bd32293e4f82b0", + "url": "https://api.github.com/repos/laravel/framework/zipball/2c6d85f22d08123ad45aa3a6726b16f06e68eecd", + "reference": "2c6d85f22d08123ad45aa3a6726b16f06e68eecd", "shasum": "" }, "require": { @@ -2956,7 +2873,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2025-09-02T23:56:44+00:00" + "time": "2025-09-08T21:54:34+00:00" }, { "name": "laravel/helpers", @@ -3814,16 +3731,16 @@ }, { "name": "league/csv", - "version": "9.24.1", + "version": "9.25.0", "source": { "type": "git", "url": "https://github.com/thephpleague/csv.git", - "reference": "e0221a3f16aa2a823047d59fab5809d552e29bc8" + "reference": "f856f532866369fb1debe4e7c5a1db185f40ef86" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/csv/zipball/e0221a3f16aa2a823047d59fab5809d552e29bc8", - "reference": "e0221a3f16aa2a823047d59fab5809d552e29bc8", + "url": "https://api.github.com/repos/thephpleague/csv/zipball/f856f532866369fb1debe4e7c5a1db185f40ef86", + "reference": "f856f532866369fb1debe4e7c5a1db185f40ef86", "shasum": "" }, "require": { @@ -3839,7 +3756,7 @@ "phpstan/phpstan-deprecation-rules": "^1.2.1", "phpstan/phpstan-phpunit": "^1.4.2", "phpstan/phpstan-strict-rules": "^1.6.2", - "phpunit/phpunit": "^10.5.16 || ^11.5.22", + "phpunit/phpunit": "^10.5.16 || ^11.5.22 || ^12.3.6", "symfony/var-dumper": "^6.4.8 || ^7.3.0" }, "suggest": { @@ -3901,7 +3818,7 @@ "type": "github" } ], - "time": "2025-06-25T14:53:51+00:00" + "time": "2025-09-11T08:29:08+00:00" }, { "name": "league/event", @@ -4893,16 +4810,16 @@ }, { "name": "nesbot/carbon", - "version": "3.10.2", + "version": "3.10.3", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon.git", - "reference": "76b5c07b8a9d2025ed1610e14cef1f3fd6ad2c24" + "reference": "8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/76b5c07b8a9d2025ed1610e14cef1f3fd6ad2c24", - "reference": "76b5c07b8a9d2025ed1610e14cef1f3fd6ad2c24", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f", + "reference": "8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f", "shasum": "" }, "require": { @@ -4920,13 +4837,13 @@ "require-dev": { "doctrine/dbal": "^3.6.3 || ^4.0", "doctrine/orm": "^2.15.2 || ^3.0", - "friendsofphp/php-cs-fixer": "^3.75.0", + "friendsofphp/php-cs-fixer": "^v3.87.1", "kylekatarnls/multi-tester": "^2.5.3", "phpmd/phpmd": "^2.15.0", "phpstan/extension-installer": "^1.4.3", - "phpstan/phpstan": "^2.1.17", - "phpunit/phpunit": "^10.5.46", - "squizlabs/php_codesniffer": "^3.13.0" + "phpstan/phpstan": "^2.1.22", + "phpunit/phpunit": "^10.5.53", + "squizlabs/php_codesniffer": "^3.13.4" }, "bin": [ "bin/carbon" @@ -4994,7 +4911,7 @@ "type": "tidelift" } ], - "time": "2025-08-02T09:36:06+00:00" + "time": "2025-09-06T13:39:36+00:00" }, { "name": "nette/schema", @@ -5922,96 +5839,6 @@ }, "time": "2024-04-22T22:05:04+00:00" }, - { - "name": "phenx/php-font-lib", - "version": "0.5.6", - "source": { - "type": "git", - "url": "https://github.com/dompdf/php-font-lib.git", - "reference": "a1681e9793040740a405ac5b189275059e2a9863" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dompdf/php-font-lib/zipball/a1681e9793040740a405ac5b189275059e2a9863", - "reference": "a1681e9793040740a405ac5b189275059e2a9863", - "shasum": "" - }, - "require": { - "ext-mbstring": "*" - }, - "require-dev": { - "symfony/phpunit-bridge": "^3 || ^4 || ^5 || ^6" - }, - "type": "library", - "autoload": { - "psr-4": { - "FontLib\\": "src/FontLib" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-2.1-or-later" - ], - "authors": [ - { - "name": "Fabien Ménager", - "email": "fabien.menager@gmail.com" - } - ], - "description": "A library to read, parse, export and make subsets of different types of font files.", - "homepage": "https://github.com/PhenX/php-font-lib", - "support": { - "issues": "https://github.com/dompdf/php-font-lib/issues", - "source": "https://github.com/dompdf/php-font-lib/tree/0.5.6" - }, - "time": "2024-01-29T14:45:26+00:00" - }, - { - "name": "phenx/php-svg-lib", - "version": "0.5.4", - "source": { - "type": "git", - "url": "https://github.com/dompdf/php-svg-lib.git", - "reference": "46b25da81613a9cf43c83b2a8c2c1bdab27df691" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/46b25da81613a9cf43c83b2a8c2c1bdab27df691", - "reference": "46b25da81613a9cf43c83b2a8c2c1bdab27df691", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": "^7.1 || ^8.0", - "sabberworm/php-css-parser": "^8.4" - }, - "require-dev": { - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Svg\\": "src/Svg" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-3.0-or-later" - ], - "authors": [ - { - "name": "Fabien Ménager", - "email": "fabien.menager@gmail.com" - } - ], - "description": "A library to read, parse and export to PDF SVG files.", - "homepage": "https://github.com/PhenX/php-svg-lib", - "support": { - "issues": "https://github.com/dompdf/php-svg-lib/issues", - "source": "https://github.com/dompdf/php-svg-lib/tree/0.5.4" - }, - "time": "2024-04-08T12:52:34+00:00" - }, { "name": "php-debugbar/php-debugbar", "version": "v2.2.4", @@ -7412,20 +7239,20 @@ }, { "name": "ramsey/uuid", - "version": "4.9.0", + "version": "4.9.1", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "4e0e23cc785f0724a0e838279a9eb03f28b092a0" + "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/4e0e23cc785f0724a0e838279a9eb03f28b092a0", - "reference": "4e0e23cc785f0724a0e838279a9eb03f28b092a0", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/81f941f6f729b1e3ceea61d9d014f8b6c6800440", + "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440", "shasum": "" }, "require": { - "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13", + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14", "php": "^8.0", "ramsey/collection": "^1.2 || ^2.0" }, @@ -7484,9 +7311,9 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.9.0" + "source": "https://github.com/ramsey/uuid/tree/4.9.1" }, - "time": "2025-06-25T14:20:11+00:00" + "time": "2025-09-04T20:59:21+00:00" }, { "name": "robrichards/xmlseclibs", @@ -7665,84 +7492,18 @@ }, "time": "2025-05-02T20:10:54+00:00" }, - { - "name": "sabberworm/php-css-parser", - "version": "v8.9.0", - "source": { - "type": "git", - "url": "https://github.com/MyIntervals/PHP-CSS-Parser.git", - "reference": "d8e916507b88e389e26d4ab03c904a082aa66bb9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/d8e916507b88e389e26d4ab03c904a082aa66bb9", - "reference": "d8e916507b88e389e26d4ab03c904a082aa66bb9", - "shasum": "" - }, - "require": { - "ext-iconv": "*", - "php": "^5.6.20 || ^7.0.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" - }, - "require-dev": { - "phpunit/phpunit": "5.7.27 || 6.5.14 || 7.5.20 || 8.5.41", - "rawr/cross-data-providers": "^2.0.0" - }, - "suggest": { - "ext-mbstring": "for parsing UTF-8 CSS" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "9.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Sabberworm\\CSS\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Raphael Schweikert" - }, - { - "name": "Oliver Klee", - "email": "github@oliverklee.de" - }, - { - "name": "Jake Hotson", - "email": "jake.github@qzdesign.co.uk" - } - ], - "description": "Parser for CSS Files written in PHP", - "homepage": "https://www.sabberworm.com/blog/2010/6/10/php-css-parser", - "keywords": [ - "css", - "parser", - "stylesheet" - ], - "support": { - "issues": "https://github.com/MyIntervals/PHP-CSS-Parser/issues", - "source": "https://github.com/MyIntervals/PHP-CSS-Parser/tree/v8.9.0" - }, - "time": "2025-07-11T13:20:48+00:00" - }, { "name": "sebastian/comparator", - "version": "5.0.3", + "version": "5.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e" + "reference": "e8e53097718d2b53cfb2aa859b06a41abf58c62e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e", - "reference": "a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/e8e53097718d2b53cfb2aa859b06a41abf58c62e", + "reference": "e8e53097718d2b53cfb2aa859b06a41abf58c62e", "shasum": "" }, "require": { @@ -7798,15 +7559,27 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.3" + "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.4" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", + "type": "tidelift" } ], - "time": "2024-10-18T14:56:07+00:00" + "time": "2025-09-07T05:25:07+00:00" }, { "name": "sebastian/diff", @@ -11408,6 +11181,271 @@ ], "time": "2023-10-23T09:28:20+00:00" }, + { + "name": "tecnickcom/tc-lib-file", + "version": "2.2.2", + "source": { + "type": "git", + "url": "https://github.com/tecnickcom/tc-lib-file.git", + "reference": "ec6989700b77baa8a8d88952ad4fd8f53211c370" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tecnickcom/tc-lib-file/zipball/ec6989700b77baa8a8d88952ad4fd8f53211c370", + "reference": "ec6989700b77baa8a8d88952ad4fd8f53211c370", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-pcre": "*", + "php": ">=8.1" + }, + "require-dev": { + "pdepend/pdepend": "2.16.2", + "phpmd/phpmd": "2.15.0", + "phpunit/phpunit": "12.2.0 || 11.5.7 || 10.5.40", + "squizlabs/php_codesniffer": "3.13.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Com\\Tecnick\\File\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Nicola Asuni", + "email": "info@tecnick.com", + "role": "lead" + } + ], + "description": "PHP library to read byte-level data from files", + "homepage": "http://www.tecnick.com", + "keywords": [ + "Double", + "bit", + "byte", + "file", + "long", + "read", + "short", + "tc-lib-file" + ], + "support": { + "issues": "https://github.com/tecnickcom/tc-lib-file/issues", + "source": "https://github.com/tecnickcom/tc-lib-file/tree/2.2.2" + }, + "funding": [ + { + "url": "https://www.paypal.com/donate/?hosted_button_id=NZUEC5XS8MFBJ", + "type": "custom" + } + ], + "time": "2025-06-06T11:33:32+00:00" + }, + { + "name": "tecnickcom/tc-lib-pdf-encrypt", + "version": "2.1.16", + "source": { + "type": "git", + "url": "https://github.com/tecnickcom/tc-lib-pdf-encrypt.git", + "reference": "4e154df154e586523033187dfc54a2a8e113a7db" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tecnickcom/tc-lib-pdf-encrypt/zipball/4e154df154e586523033187dfc54a2a8e113a7db", + "reference": "4e154df154e586523033187dfc54a2a8e113a7db", + "shasum": "" + }, + "require": { + "ext-date": "*", + "ext-hash": "*", + "ext-openssl": "*", + "ext-pcre": "*", + "php": ">=8.1" + }, + "require-dev": { + "pdepend/pdepend": "2.16.2", + "phpmd/phpmd": "2.15.0", + "phpunit/phpunit": "12.2.0 || 11.5.7 || 10.5.40", + "squizlabs/php_codesniffer": "3.13.0" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "autoload": { + "psr-4": { + "Com\\Tecnick\\Pdf\\Encrypt\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Nicola Asuni", + "email": "info@tecnick.com", + "role": "lead" + } + ], + "description": "PHP library to encrypt data for PDF", + "homepage": "http://www.tecnick.com", + "keywords": [ + "aes", + "encrypt", + "encryption", + "pdf", + "rc4", + "tc-lib-pdf-encrypt" + ], + "support": { + "issues": "https://github.com/tecnickcom/tc-lib-pdf-encrypt/issues", + "source": "https://github.com/tecnickcom/tc-lib-pdf-encrypt/tree/2.1.16" + }, + "funding": [ + { + "url": "https://www.paypal.com/donate/?hosted_button_id=NZUEC5XS8MFBJ", + "type": "custom" + } + ], + "time": "2025-06-06T11:33:45+00:00" + }, + { + "name": "tecnickcom/tc-lib-pdf-font", + "version": "2.6.12", + "source": { + "type": "git", + "url": "https://github.com/tecnickcom/tc-lib-pdf-font.git", + "reference": "961ddeb8f02c7186e9efcf37693cbd1f21af1dc1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tecnickcom/tc-lib-pdf-font/zipball/961ddeb8f02c7186e9efcf37693cbd1f21af1dc1", + "reference": "961ddeb8f02c7186e9efcf37693cbd1f21af1dc1", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-pcre": "*", + "ext-zlib": "*", + "php": ">=8.1", + "tecnickcom/tc-lib-file": "^2.2", + "tecnickcom/tc-lib-pdf-encrypt": "^2.1", + "tecnickcom/tc-lib-unicode-data": "^2.0" + }, + "require-dev": { + "pdepend/pdepend": "2.16.2", + "phpmd/phpmd": "2.15.0", + "phpunit/phpunit": "12.2.0 || 11.5.7 || 10.5.40", + "squizlabs/php_codesniffer": "3.13.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Com\\Tecnick\\Pdf\\Font\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Nicola Asuni", + "email": "info@tecnick.com", + "role": "lead" + } + ], + "description": "PHP library containing PDF page formats and definitions", + "homepage": "http://www.tecnick.com", + "keywords": [ + "PFB", + "afm", + "font", + "import", + "pdf", + "tc-lib-pdf-font", + "ttf" + ], + "support": { + "issues": "https://github.com/tecnickcom/tc-lib-pdf-font/issues", + "source": "https://github.com/tecnickcom/tc-lib-pdf-font/tree/2.6.12" + }, + "funding": [ + { + "url": "https://www.paypal.com/donate/?hosted_button_id=NZUEC5XS8MFBJ", + "type": "custom" + } + ], + "time": "2025-06-06T12:19:35+00:00" + }, + { + "name": "tecnickcom/tc-lib-unicode-data", + "version": "2.0.24", + "source": { + "type": "git", + "url": "https://github.com/tecnickcom/tc-lib-unicode-data.git", + "reference": "cc0ac553b70ecfda9ffeda71ca2f490bfaff5036" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tecnickcom/tc-lib-unicode-data/zipball/cc0ac553b70ecfda9ffeda71ca2f490bfaff5036", + "reference": "cc0ac553b70ecfda9ffeda71ca2f490bfaff5036", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "pdepend/pdepend": "2.16.2", + "phpmd/phpmd": "2.15.0", + "phpunit/phpunit": "12.2.0 || 11.5.7 || 10.5.40", + "squizlabs/php_codesniffer": "3.13.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Com\\Tecnick\\Unicode\\Data\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Nicola Asuni", + "email": "info@tecnick.com", + "role": "lead" + } + ], + "description": "PHP library containing Unicode definitions", + "homepage": "http://www.tecnick.com", + "keywords": [ + "font", + "pdf", + "tc-lib-unicode-data", + "unicode", + "utf-8" + ], + "support": { + "issues": "https://github.com/tecnickcom/tc-lib-unicode-data/issues", + "source": "https://github.com/tecnickcom/tc-lib-unicode-data/tree/2.0.24" + }, + "funding": [ + { + "url": "https://www.paypal.com/donate/?hosted_button_id=NZUEC5XS8MFBJ", + "type": "custom" + } + ], + "time": "2025-06-06T11:34:15+00:00" + }, { "name": "tecnickcom/tcpdf", "version": "6.10.0", @@ -12618,16 +12656,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.87.1", + "version": "v3.87.2", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "2f5170365e2a422d0c5421f9c8818b2c078105f6" + "reference": "da5f0a7858c79b56fc0b8c36d3efcfe5f37f0992" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/2f5170365e2a422d0c5421f9c8818b2c078105f6", - "reference": "2f5170365e2a422d0c5421f9c8818b2c078105f6", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/da5f0a7858c79b56fc0b8c36d3efcfe5f37f0992", + "reference": "da5f0a7858c79b56fc0b8c36d3efcfe5f37f0992", "shasum": "" }, "require": { @@ -12710,7 +12748,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.87.1" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.87.2" }, "funding": [ { @@ -12718,7 +12756,7 @@ "type": "github" } ], - "time": "2025-09-02T15:27:36+00:00" + "time": "2025-09-10T09:51:40+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -12814,16 +12852,16 @@ }, { "name": "justinrainbow/json-schema", - "version": "6.5.1", + "version": "6.5.2", "source": { "type": "git", "url": "https://github.com/jsonrainbow/json-schema.git", - "reference": "b5ab21e431594897e5bb86343c01f140ba862c26" + "reference": "ac0d369c09653cf7af561f6d91a705bc617a87b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/b5ab21e431594897e5bb86343c01f140ba862c26", - "reference": "b5ab21e431594897e5bb86343c01f140ba862c26", + "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/ac0d369c09653cf7af561f6d91a705bc617a87b8", + "reference": "ac0d369c09653cf7af561f6d91a705bc617a87b8", "shasum": "" }, "require": { @@ -12883,9 +12921,9 @@ ], "support": { "issues": "https://github.com/jsonrainbow/json-schema/issues", - "source": "https://github.com/jsonrainbow/json-schema/tree/6.5.1" + "source": "https://github.com/jsonrainbow/json-schema/tree/6.5.2" }, - "time": "2025-08-29T10:58:11+00:00" + "time": "2025-09-09T09:42:27+00:00" }, { "name": "larastan/larastan", @@ -13130,16 +13168,16 @@ }, { "name": "marc-mabe/php-enum", - "version": "v4.7.1", + "version": "v4.7.2", "source": { "type": "git", "url": "https://github.com/marc-mabe/php-enum.git", - "reference": "7159809e5cfa041dca28e61f7f7ae58063aae8ed" + "reference": "bb426fcdd65c60fb3638ef741e8782508fda7eef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/marc-mabe/php-enum/zipball/7159809e5cfa041dca28e61f7f7ae58063aae8ed", - "reference": "7159809e5cfa041dca28e61f7f7ae58063aae8ed", + "url": "https://api.github.com/repos/marc-mabe/php-enum/zipball/bb426fcdd65c60fb3638ef741e8782508fda7eef", + "reference": "bb426fcdd65c60fb3638ef741e8782508fda7eef", "shasum": "" }, "require": { @@ -13197,9 +13235,9 @@ ], "support": { "issues": "https://github.com/marc-mabe/php-enum/issues", - "source": "https://github.com/marc-mabe/php-enum/tree/v4.7.1" + "source": "https://github.com/marc-mabe/php-enum/tree/v4.7.2" }, - "time": "2024-11-28T04:54:44+00:00" + "time": "2025-09-14T11:18:39+00:00" }, { "name": "mockery/mockery", @@ -14206,16 +14244,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.53", + "version": "10.5.55", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "32768472ebfb6969e6c7399f1c7b09009723f653" + "reference": "4b2d546b336876bd9562f24641b08a25335b06b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/32768472ebfb6969e6c7399f1c7b09009723f653", - "reference": "32768472ebfb6969e6c7399f1c7b09009723f653", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4b2d546b336876bd9562f24641b08a25335b06b6", + "reference": "4b2d546b336876bd9562f24641b08a25335b06b6", "shasum": "" }, "require": { @@ -14236,7 +14274,7 @@ "phpunit/php-timer": "^6.0.0", "sebastian/cli-parser": "^2.0.1", "sebastian/code-unit": "^2.0.0", - "sebastian/comparator": "^5.0.3", + "sebastian/comparator": "^5.0.4", "sebastian/diff": "^5.1.1", "sebastian/environment": "^6.1.0", "sebastian/exporter": "^5.1.2", @@ -14287,7 +14325,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.53" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.55" }, "funding": [ { @@ -14311,7 +14349,7 @@ "type": "tidelift" } ], - "time": "2025-08-20T14:40:06+00:00" + "time": "2025-09-14T06:19:20+00:00" }, { "name": "react/cache", @@ -15472,32 +15510,32 @@ }, { "name": "slevomat/coding-standard", - "version": "8.21.1", + "version": "8.22.1", "source": { "type": "git", "url": "https://github.com/slevomat/coding-standard.git", - "reference": "2b801e950ae1cceb30bb3c0373141f553c99d3c3" + "reference": "1dd80bf3b93692bedb21a6623c496887fad05fec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/2b801e950ae1cceb30bb3c0373141f553c99d3c3", - "reference": "2b801e950ae1cceb30bb3c0373141f553c99d3c3", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/1dd80bf3b93692bedb21a6623c496887fad05fec", + "reference": "1dd80bf3b93692bedb21a6623c496887fad05fec", "shasum": "" }, "require": { "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.1.2", "php": "^7.4 || ^8.0", "phpstan/phpdoc-parser": "^2.3.0", - "squizlabs/php_codesniffer": "^3.13.2" + "squizlabs/php_codesniffer": "^3.13.4" }, "require-dev": { "phing/phing": "3.0.1|3.1.0", "php-parallel-lint/php-parallel-lint": "1.4.0", - "phpstan/phpstan": "2.1.22", + "phpstan/phpstan": "2.1.24", "phpstan/phpstan-deprecation-rules": "2.0.3", "phpstan/phpstan-phpunit": "2.0.7", "phpstan/phpstan-strict-rules": "2.0.6", - "phpunit/phpunit": "9.6.8|10.5.48|11.4.4|11.5.27|12.3.7" + "phpunit/phpunit": "9.6.8|10.5.48|11.4.4|11.5.36|12.3.10" }, "type": "phpcodesniffer-standard", "extra": { @@ -15521,7 +15559,7 @@ ], "support": { "issues": "https://github.com/slevomat/coding-standard/issues", - "source": "https://github.com/slevomat/coding-standard/tree/8.21.1" + "source": "https://github.com/slevomat/coding-standard/tree/8.22.1" }, "funding": [ { @@ -15533,20 +15571,20 @@ "type": "tidelift" } ], - "time": "2025-08-31T13:32:28+00:00" + "time": "2025-09-13T08:53:30+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.13.2", + "version": "3.13.4", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "5b5e3821314f947dd040c70f7992a64eac89025c" + "reference": "ad545ea9c1b7d270ce0fc9cbfb884161cd706119" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/5b5e3821314f947dd040c70f7992a64eac89025c", - "reference": "5b5e3821314f947dd040c70f7992a64eac89025c", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ad545ea9c1b7d270ce0fc9cbfb884161cd706119", + "reference": "ad545ea9c1b7d270ce0fc9cbfb884161cd706119", "shasum": "" }, "require": { @@ -15617,7 +15655,7 @@ "type": "thanks_dev" } ], - "time": "2025-06-17T22:17:01+00:00" + "time": "2025-09-05T05:47:09+00:00" }, { "name": "symfony/cache", diff --git a/config/app.php b/config/app.php index b494da5981..8dc0b82312 100755 --- a/config/app.php +++ b/config/app.php @@ -300,7 +300,6 @@ return [ App\Providers\SnipeTranslationServiceProvider::class, //we REPLACE the default Laravel translator with our own Illuminate\Validation\ValidationServiceProvider::class, Illuminate\View\ViewServiceProvider::class, - Barryvdh\DomPDF\ServiceProvider::class, /* * Package Service Providers... @@ -315,6 +314,8 @@ return [ Unicodeveloper\DumbPassword\DumbPasswordServiceProvider::class, Eduardokum\LaravelMailAutoEmbed\ServiceProvider::class, Laravel\Socialite\SocialiteServiceProvider::class, + Elibyy\TCPDF\ServiceProvider::class, + /* * Application Service Providers... @@ -371,7 +372,7 @@ return [ 'Mail' => Illuminate\Support\Facades\Mail::class, 'Notification' => Illuminate\Support\Facades\Notification::class, 'Password' => Illuminate\Support\Facades\Password::class, - 'PDF' => Barryvdh\DomPDF\Facade::class, + 'PDF' => Elibyy\TCPDF\Facades\TCPDF::class, 'Queue' => Illuminate\Support\Facades\Queue::class, 'Redirect' => Illuminate\Support\Facades\Redirect::class, 'Redis' => Illuminate\Support\Facades\Redis::class, diff --git a/config/pdf.php b/config/pdf.php new file mode 100644 index 0000000000..3a60ed1631 --- /dev/null +++ b/config/pdf.php @@ -0,0 +1,17 @@ + 'utf-8', + 'format' => 'A4', + 'author' => '', + 'subject' => '', + 'keywords' => '', + 'creator' => 'Snipe-IT', + 'display_mode' => 'fullpage', + 'tempDir' => base_path('../temp/'), + 'pdf_a' => false, + 'pdf_a_auto' => false, + 'icc_profile_path' => '', + 'defaultCssFile' => false, + 'pdfWrapper' => 'misterspelik\LaravelPdf\Wrapper\PdfWrapper', +]; \ No newline at end of file diff --git a/resources/views/account/accept/create.blade.php b/resources/views/account/accept/create.blade.php index 33c7e2ddc5..0f593606bf 100644 --- a/resources/views/account/accept/create.blade.php +++ b/resources/views/account/accept/create.blade.php @@ -51,7 +51,7 @@ @if ($acceptance->checkoutable->getEula())
- {!! str_replace('

', '

', $acceptance->checkoutable->getEula()) !!} + {!! str_replace('

', '

', Helper::parseEscapedMarkedown($acceptance->checkoutable->getEula())) !!}

@endif diff --git a/tests/Feature/Locations/Ui/DeleteLocationsTest.php b/tests/Feature/Locations/Ui/DeleteLocationsTest.php index 74f8adba6a..f0edb866f7 100644 --- a/tests/Feature/Locations/Ui/DeleteLocationsTest.php +++ b/tests/Feature/Locations/Ui/DeleteLocationsTest.php @@ -1,6 +1,6 @@