From e681cd7ce292143db38d89c5511820853fc7df02 Mon Sep 17 00:00:00 2001 From: Julian Prieber Date: Tue, 10 Dec 2024 16:15:49 +0100 Subject: [PATCH 01/21] Update version.json to 4.8.4 --- version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.json b/version.json index f99c6583..57c4b30b 100644 --- a/version.json +++ b/version.json @@ -1 +1 @@ -4.8.3 +4.8.4 From 51917e7685d989acb0616aa52221e08d90821ace Mon Sep 17 00:00:00 2001 From: Frank Date: Thu, 6 Feb 2025 15:15:42 +0100 Subject: [PATCH 02/21] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 46a3012b..83723934 100644 --- a/README.md +++ b/README.md @@ -169,7 +169,7 @@ The official docker version of [LinkStack](https://github.com/linkstackorg/links The docker version of LinkStack retains all the features and customization options of the [original version](https://github.com/linkstackorg/linkstack). -This docker is based on [Alpine Linux](https://www.alpinelinux.org), a Linux distribution designed to be small, simple and secure. The web server is running [Apache2](https://www.apache.org), a free and open-source cross-platform web server software. The docker comes with [PHP 8.0](https://www.php.net/releases/8.0/en.php) for high compatibility and performance. +This docker is based on [Alpine Linux](https://www.alpinelinux.org), a Linux distribution designed to be small, simple and secure. The web server is running [Apache2](https://www.apache.org), a free and open-source cross-platform web server software. The docker comes with [PHP 8.2](https://www.php.net/releases/8.2/en.php) for high compatibility and performance. #### Using the docker is as simple as pulling and deploying. From 6489a95b75c57f3d5cb6065be8bc715585e5b525 Mon Sep 17 00:00:00 2001 From: Julian Prieber Date: Tue, 3 Jun 2025 12:49:18 +0200 Subject: [PATCH 03/21] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 83723934..ee8813ab 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@

GitHub spomsors Patreon - +

--- From bd5bafd5b2b3af52597e0d586038712f4e9b8625 Mon Sep 17 00:00:00 2001 From: Loki <163570191+LokiSalmonNeko@users.noreply.github.com> Date: Tue, 18 Nov 2025 04:45:30 +0800 Subject: [PATCH 04/21] update zh_TW translation --- resources/lang/zh-TW/messages.php | 377 +++++++++++++++--------------- 1 file changed, 186 insertions(+), 191 deletions(-) diff --git a/resources/lang/zh-TW/messages.php b/resources/lang/zh-TW/messages.php index fd3e80f2..4f19557a 100644 --- a/resources/lang/zh-TW/messages.php +++ b/resources/lang/zh-TW/messages.php @@ -16,11 +16,11 @@ 'Dashboard' => '控制面板', 'Copyright' => '版權所有', - 'Made with' => '技術支援', - 'by' => '由', + 'Made with' => '由', + 'by' => '製作', 'HOME.MESSAGE' => ' -

使用LinkStack,這款以隱私為重點的開源鏈接管理平台,來掌控您的在線形象。建立一個可自訂的個人資料頁面,將您所有重要的連結集中管理在一個方便的地方,讓您的觀眾享有無縫的瀏覽體驗。

+

使用LinkStack,這款以隱私為重點的開源連結管理平台,來掌控您的線上形象。建立一個可自訂的個人資料頁面,將您所有重要的連結集中管理在一個方便的地方,讓您的觀眾享有無縫的瀏覽體驗。

', @@ -116,7 +116,7 @@ /* |-------------------------------------------------------------------------- - | 側邊攔樣式 + | 側邊欄樣式 |-------------------------------------------------------------------------- | | resources/views/layouts/sidebar.blade.php @@ -136,12 +136,12 @@ 'Sidebar Types' => '側邊欄類型', 'Mini' => '迷你', 'Hover' => '懸停', - 'Boxed' => '有框的', - 'Sidebar Active Style' => '側邊欄活動樣式', + 'Boxed' => '有邊框', + 'Sidebar Active Style' => '側邊欄啟用樣式', 'Rounded One Side' => '單邊圓角', 'Rounded All' => '全部圓角', - 'Pill One Side' => '單邊圓柱形', - 'Pill All' => '全部圓柱形', + 'Pill One Side' => '單邊膠囊', + 'Pill All' => '全膠囊', /* @@ -184,7 +184,7 @@ 'Share your profile:' => '分享您的個人檔案:', 'Error sharing:' => '分享錯誤:', 'Text copied to clipboard!' => '文字已複製到剪貼簿!', - 'Error copying text:' => '複製文字出錯:', + 'Error copying text:' => '複製文字時發生錯誤:', 'QR Code' => 'QR碼', 'Scan QR Code' => '掃描QR碼', 'QR code could not be generated' => '無法生成QR碼', @@ -204,7 +204,7 @@ 'Latest beta' => '最新測試版', 'Run updater' => '執行更新程式', 'Update available' => '有可用更新', - 'Up to date' => '已是最新', + 'Up to date' => '已是最新版本', 'Check again' => '再次檢查', # 導航欄中的使用者部分 @@ -229,18 +229,18 @@ 'Hi' => '您好', 'stranger' => '陌生人', 'welcome' => '歡迎來到 :appName!', - 'Set a handle' => '設定一個標識(@example)', + 'Set a handle' => '設定一個標識(@example)', # 儀表板頁面 - 'Total Links:' => '鏈接總數:', - 'Link Clicks:' => '鏈接點擊數:', - 'View/Edit Links' => '查看/編輯鏈接', - 'Top Links:' => '熱門鏈接:', - 'You haven’t added any links yet' => '您還沒有添加任何鏈接。', + 'Total Links:' => '連結總數:', + 'Link Clicks:' => '連結點擊數:', + 'View/Edit Links' => '查看/編輯連結', + 'Top Links:' => '熱門連結:', + 'You haven’t added any links yet' => '您還沒有新增任何連結。', 'clicks' => '點擊數', 'Clicks' => '點擊數', 'Site statistics:' => '網站統計:', - 'Total links' => '鏈接總數', + 'Total links' => '連結總數', 'Total clicks' => '點擊總數', 'Total users' => '使用者總數', 'Registrations:' => '註冊數:', @@ -250,7 +250,6 @@ 'Active users:' => '活躍使用者:', - /* |-------------------------------------------------------------------------- | 按鈕編輯器 @@ -272,16 +271,16 @@ 'Reset to default' => '恢復預設', 'Result' => '結果:', 'Custom Icon' => '自訂圖示', - 'Custom Alert' => '您的自訂圖示短代碼中未包含字串“fa-”,請始終使用如“fa-ghost”格式的圖示。', - 'cb.description.1-4' => '可以通過 Font Awesome 向按鈕添加自訂圖示。您可以使用下面列表中的任何圖示,您可以通過點擊“查看所有圖示”按鈕訪問此列表。列表中的每個圖示都有一個短代碼,您可以複製並輸入到自訂圖示欄位中。', - 'cb.description.2-4' => '每個圖示的短代碼都由前綴和主要部分組成。如果短代碼不是品牌圖示,您可以簡單地輸入格式為:fa-icon-name的代碼。“fa-...”格式在此很重要。例如“fa-code”。', - 'cb.description.3-4' => '如果短代碼是品牌圖示,重要的是在短代碼部分之前包含“fab”。同樣,“fa-...”格式在此仍然適用。例如,“fab fa-github”。', - 'cb.description.4-4' => '要為您的圖示應用顏色,您可以簡單地寫出顏色名稱或在圖示前寫下HEX值,後跟一個“;”。在這裡,將顏色放在圖示短代碼前很重要,並且顏色代碼必須以分號結束。
您可以在這裡找到可用顏色列表。', + 'Custom Alert' => '您的自訂圖示短代碼中未包含字串「fa-」,請始終使用如「fa-ghost」格式的圖示。', + 'cb.description.1-4' => '可以透過 Font Awesome 向按鈕新增自訂圖示。您可以使用下面列表中的任何圖示,並可透過點擊「查看所有圖示」按鈕開啟此列表。列表中的每個圖示都有一個短代碼,您可以複製並輸入到自訂圖示欄位中。', + 'cb.description.2-4' => '每個圖示的短代碼都由前綴和主要部分組成。如果短代碼不是品牌圖示,您可以簡單地輸入格式為:fa-icon-name 的代碼。「fa-…」格式在此很重要,例如「fa-code」。', + 'cb.description.3-4' => '如果短代碼是品牌圖示,重要的是在短代碼部分之前包含「fab」。同樣,「fa-…」格式在此仍然適用。例如「fab fa-github」。', + 'cb.description.4-4' => '要為您的圖示套用顏色,您可以簡單地寫出顏色名稱或在圖示前寫下 HEX 值,後跟一個「;」。在這裡,必須先寫顏色代碼,並以分號結束。
您可以在這裡找到可用顏色列表。', 'Style' => '風格', 'Prefix' => '前綴', 'Icon' => '圖示', 'Short Code' => '短代碼', - 'Regular' => '常規', + 'Regular' => '一般', 'Brands' => '品牌', 'Color name' => '顏色名稱', 'Color HEX' => '顏色HEX', @@ -290,7 +289,6 @@ 'See all icons' => '查看所有圖示', - /* |-------------------------------------------------------------------------- | 編輯連結頁面 @@ -307,7 +305,7 @@ 'Select Block' => '選擇區塊', 'Toggle Dropdown' => '切換下拉選單', 'Cancel' => '取消', - 'Save and Add More' => '保存並新增更多', + 'Save and Add More' => '儲存並新增更多', 'Click to change link blocks' => '點擊更改連結區塊', 'Click for a list of available link blocks' => '點擊查看可用連結區塊列表', @@ -323,10 +321,10 @@ 'My Links' => '我的連結', 'Add new Link' => '新增連結', - 'No Link Added' => '尚未添加連結。', + 'No Link Added' => '尚未新增任何連結。', 'Download' => '下載', 'Preview' => '預覽:', - 'No compatible browser' => '您的瀏覽器不兼容', + 'No compatible browser' => '您的瀏覽器不支援', 'Page Icons' => '頁面圖示', 'Save links' => '儲存連結', @@ -340,7 +338,7 @@ /* |-------------------------------------------------------------------------- - | “我的個人資料”/“外觀”頁面 + | 「我的個人資料」/「外觀」頁面 |-------------------------------------------------------------------------- | | resources/views/studio/page.blade.php @@ -357,8 +355,8 @@ 'disableverified' => '您是已驗證使用者。此設定允許您在頁面上隱藏您的勾選標記。', 'Show share button' => '顯示分享按鈕', 'disablesharebutton' => '此設定允許您在頁面上隱藏分享按鈕。', - 'Open links in new tab' => '在新分頁中打開連結', - 'openlinksnewtab' => '此設定決定您的連結頁面上的連結是在同一分頁中打開還是在新分頁中打開。', + 'Open links in new tab' => '在新分頁中開啟連結', + 'openlinksnewtab' => '此設定決定您的連結頁面上的連結是在同一分頁中開啟還是在新分頁中開啟。', /* @@ -383,23 +381,23 @@ 'Import' => '匯入', 'Delete your account' => '刪除您的帳戶', 'You are about to delete' => '您即將刪除您的帳戶!', - 'You are about to delete This action cannot be undone' => '您即將刪除您的帳戶!此操作無法反悔。', + 'You are about to delete This action cannot be undone' => '您即將刪除您的帳戶!此操作無法復原。', 'Delete account' => '刪除帳戶', # 警告 'Profile updated successfully!' => '個人資料更新成功!', 'An error occurred while updating your profile.' => '更新您的個人資料時發生錯誤。', - 'That handle has already been taken' => '該標識(@example)已被使用。', - 'The selected file must be an image' => '所選文件必須是圖片。', + 'That handle has already been taken' => '該標識(@example)已被使用。', + 'The selected file must be an image' => '所選檔案必須是圖片。', 'The image must be' => '圖片必須是:', - 'The image size should not exceed 2MB' => '圖片大小不應超過2MB。', + 'The image size should not exceed 2MB' => '圖片大小不應超過 2MB。', 'Please select an image' => '請選擇一張圖片。', /* |-------------------------------------------------------------------------- - | 主题頁面 + | 主題頁面 |-------------------------------------------------------------------------- | | resources/views/studio/theme.blade.php @@ -421,7 +419,7 @@ /* |-------------------------------------------------------------------------- - | 主题更新器 + | 主題更新器 |-------------------------------------------------------------------------- | | resources/views/studio/theme-updater.blade.php @@ -451,6 +449,7 @@ 'Page description' => '頁面描述', 'Role' => '角色', + /* |-------------------------------------------------------------------------- | 連結頁面(管理員) @@ -484,8 +483,8 @@ | */ - 'Information about PHP’s configuration' => '關於 PHP 配定的資訊', - 'Outputs information about the current state of PHP' => '輸出有關當前 PHP 狀態的資訊', + 'Information about PHP’s configuration' => '關於 PHP 設定的資訊', + 'Outputs information about the current state of PHP' => '輸出有關目前 PHP 狀態的資訊', /* @@ -531,7 +530,7 @@ 'tt.Edit' => '編輯', 'tt.All links' => '所有連結', - 'confirm.delete.user' => '您確定要刪除這個使用者嗎?\n此操作無法反悔!', + 'confirm.delete.user' => '您確定要刪除這個使用者嗎?\n此操作無法復原!', # 日期格式 'date.format' => 'Y/m/d', @@ -554,15 +553,15 @@ */ 'Advanced Config' => '進階設定', - 'Take Backup' => '備份', + 'Take Backup' => '建立備份', 'All Backups' => '所有備份', 'Diagnosis' => '診斷', 'Alternative Config Editor' => '替代設定編輯器', 'Use the Alternative Config Editor to edit the config directly' => '使用替代設定編輯器直接編輯設定', - 'PHP info' => 'PHP資訊', - 'Display debugging information about your PHP setup' => '顯示有關您的PHP設置的除錯信息', + 'PHP info' => 'PHP 資訊', + 'Display debugging information about your PHP setup' => '顯示有關您的 PHP 設定的除錯資訊', 'Jump directly to:' => '直接跳至:', @@ -578,34 +577,34 @@ 'default' => '預設', 'Apply' => '套用', - 'AC.description' => '允許編輯您的網站前端。此文件允許自定義首頁、連結、標題、Google分析和元標籤等內容。', - 'Advanced Configuration file.' => '高級設定檔。', + 'AC.description' => '允許編輯您的網站前端。此檔案允許自訂首頁、連結、標題、Google 分析與中繼標籤等內容。', + 'Advanced Configuration file.' => '進階設定檔。', 'Restore defaults' => '恢復預設值', 'Backup' => '備份', 'You can back up your entire instance:' => '您可以備份整個實例:', - 'The backup system won’t save more than two backups at a time' => '備份系統一次不會保存超過兩個備份。', + 'The backup system won’t save more than two backups at a time' => '備份系統一次不會保留超過兩個備份。', 'Backup Instance' => '備份實例', 'wtrue' => '一切運行正常!', - 'wfalse' => '此文件無法寫入。這可能妨礙正常運行。', - 'utrue' => '您的安全處於風險中。此文件可以被所有人訪問。需要立即採取行動!', + 'wfalse' => '此檔案無法寫入。這可能會影響正常運作。', + 'utrue' => '您的安全處於風險中。此檔案可以被所有人存取。需要立即採取行動!', 'ufalse' => '一切運行正常!', - 'unull' => '出現了一些問題。如果您在代理或Docker容器後面運行,這可能是正常的。', - 'Debugging information' => '除錯信息', - 'security.risk' => '您的安全處於風險中。某些文件可以被所有人訪問。需要立即採取行動!點擊此消息瞭解更多。', - 'security.risk.1-3' => '在這裡,您可以輕鬆驗證是否可以從外部訪問關鍵系統文件。重要的是這些文件不能被訪問,否則像密碼這樣的用戶數據可能會洩露。標有', - 'security.risk.2-3' => '的條目不能從外部訪問,標有', - 'security.risk.3-3' => '的條目可以被任何人訪問,需要立即採取行動以保護您的數據。', - 'Hover for more' => '懸停以獲得更多信息', - 'Write access' => '寫入許可權', - 'Write access.description.1-3' => '在這裡,您可以輕鬆驗證是否可以寫入重要的系統文件。這對於每個功能的正常工作都很重要。標有', - 'Write access.description.2-3' => '的條目按預期工作,標有', - 'Write access.description.3-3' => '的條目不行。', - 'File' => '文件', - 'Dependencies' => '依賴項', + 'unull' => '出現了一些問題。如果您在代理或 Docker 容器後面運行,這可能是正常的。', + 'Debugging information' => '除錯資訊', + 'security.risk' => '您的安全處於風險中。某些檔案可以被所有人存取。需要立即採取行動!點擊此訊息了解更多。', + 'security.risk.1-3' => '在這裡,您可以輕鬆驗證是否可以從外部存取關鍵系統檔案。重要的是這些檔案不能被存取,否則像密碼這樣的使用者資料可能會洩露。標有', + 'security.risk.2-3' => '的項目表示無法從外部存取,標有', + 'security.risk.3-3' => '的項目則可以被任何人存取,需要立即採取行動以保護您的資料。', + 'Hover for more' => '滑鼠移至此處以獲得更多資訊', + 'Write access' => '寫入權限', + 'Write access.description.1-3' => '在這裡,您可以輕鬆驗證是否可以寫入重要的系統檔案。這對各項功能的正常運作非常重要。標有', + 'Write access.description.2-3' => '的項目表示運作正常,標有', + 'Write access.description.3-3' => '的項目則不正常。', + 'File' => '檔案', + 'Dependencies' => '相依項目', 'Required PHP modules' => '所需的 PHP 模組。', - 'PHP Extension' => 'PHP 擴展', + 'PHP Extension' => 'PHP 擴充模組', 'No backups found' => '未找到備份', 'Backup your instance' => '備份您的實例', @@ -614,24 +613,24 @@ 'Strings with a # in front of them are comments and wont affect anything' => '前面有 # 的字串是註解,不會影響任何事情。', 'Download your updater backups:' => '下載您的更新備份:', - 'The server will never store more that two backups at a time' => '伺服器一次最多只會存儲兩個備份。', + 'The server will never store more that two backups at a time' => '伺服器一次最多只會儲存兩個備份。', - 'SMTP.title' => '使用內建SMTP伺服器', - 'SMTP.description' => '使用由LinkStack提供的SMTP伺服器。可能不是100%可靠。必須禁用它才能使用自定義SMTP伺服器。', - 'SMTP.description.alt' => '(在下方用“應用更改”保存更改)', + 'SMTP.title' => '使用內建 SMTP 伺服器', + 'SMTP.description' => '使用由 LinkStack 提供的 SMTP 伺服器。可能不是 100% 可靠。若要使用自訂 SMTP 伺服器,必須先停用此選項。', + 'SMTP.description.alt' => '(在下方用「套用」儲存變更)', 'Enable' => '啟用', - 'Custom SMTP server:' => '自定義SMTP伺服器:', + 'Custom SMTP server:' => '自訂 SMTP 伺服器:', 'Host' => '主機', 'Port' => '埠號', 'Username' => '使用者名稱', 'Encryption type' => '加密類型', 'From address' => '寄件人地址', - 'Apply changes' => '應用更改', - 'Test E-Mail setup:' => '測試電子郵件設置:', + 'Apply changes' => '套用變更', + 'Test E-Mail setup:' => '測試電子郵件設定:', 'Send Test E-Mail' => '發送測試電子郵件', - 'Debug.title' => '除錯模式', - 'Debug.description' => '在生產環境中應該禁用。在設置過程中用於除錯。', + 'Debug.title' => '偵錯模式', + 'Debug.description' => '在正式環境中應該停用,僅在設定及除錯過程中使用。', 'DISPLAY_FOOTER_HOME.title' => '首頁頁尾連結', 'DISPLAY_FOOTER_HOME.description' => '啟用首頁頁尾連結。', @@ -639,28 +638,28 @@ 'REGISTER_AUTH.description' => '決定使用者註冊時是否必須驗證其電子郵件。', 'ALLOW_REGISTRATION.title' => '啟用註冊', 'ALLOW_REGISTRATION.description' => '決定使用者是否可以註冊您的應用程式。', - 'NOTIFY_EVENTS.title' => '通知事件', + 'NOTIFY_EVENTS.title' => '事件通知', 'NOTIFY_EVENTS.description' => '如果有事件正在進行,則顯示通知。', - 'NOTIFY_UPDATES.title' => '通知更新', + 'NOTIFY_UPDATES.title' => '更新通知', 'NOTIFY_UPDATES.description' => '如果有新的更新可用,則顯示通知。', 'DISPLAY_FOOTER.title' => '顯示頁尾', - 'DISPLAY_FOOTER.description' => '決定是否應顯示頁尾連結。', - 'DISPLAY_CREDIT.title' => '在使用者頁面顯示信用', - 'DISPLAY_CREDIT.description' => '決定是否應在使用者頁面上顯示信用通知。', - 'DISPLAY_CREDIT_FOOTER.title' => '在頁尾中顯示信用', - 'DISPLAY_CREDIT_FOOTER.description' => '決定是否應在頁尾中顯示信用通知。', + 'DISPLAY_FOOTER.description' => '決定是否顯示頁尾連結。', + 'DISPLAY_CREDIT.title' => '在使用者頁面顯示致謝', + 'DISPLAY_CREDIT.description' => '決定是否在使用者頁面上顯示致謝訊息。', + 'DISPLAY_CREDIT_FOOTER.title' => '在頁尾顯示致謝', + 'DISPLAY_CREDIT_FOOTER.description' => '決定是否在頁尾中顯示致謝訊息。', 'HOME_URL.title' => '將使用者頁面設為首頁', - 'HOME_URL.description' => '將一個使用者頁面設為首頁。這將把之前的首頁移動到example.com/home。', - 'ALLOW_USER_HTML.title' => '允許在使用者的描述中使用擴展語法', - 'ALLOW_USER_HTML.description' => '這使得使用者能夠在其頁面描述中使用特殊格式,如標題和連結。
這通常被認為是安全的。', + 'HOME_URL.description' => '將某個使用者頁面設為首頁。這將把原本的首頁移至 example.com/home。', + 'ALLOW_USER_HTML.title' => '允許在使用者描述中使用進階語法', + 'ALLOW_USER_HTML.description' => '允許使用者在頁面描述中使用特殊格式,例如標題與連結。
這通常被認為是安全的。', 'APP_NAME.title' => '應用程式名稱', - 'APP_NAME.description' => '設定您的應用程式名稱。更改將登出每個活躍使用者。', + 'APP_NAME.description' => '設定您的應用程式名稱。更改後會登出所有目前的已登入使用者。', 'APP_KEY.title' => 'APP_KEY', 'APP_KEY.description' => 'APP_KEY', 'APP_URL.title' => 'APP_URL', 'APP_URL.description' => 'APP_URL', 'ENABLE_BUTTON_EDITOR.title' => '啟用按鈕編輯器', - 'ENABLE_BUTTON_EDITOR.description' => '決定是否允許使用者使用CSS自定義他們自己的按鈕。', + 'ENABLE_BUTTON_EDITOR.description' => '決定是否允許使用者使用 CSS 自訂自己的按鈕。', 'APP_DEBUG.title' => 'APP_DEBUG', 'APP_DEBUG.description' => 'APP_DEBUG', 'APP_ENV.title' => 'APP_ENV', @@ -670,7 +669,7 @@ 'LOG_LEVEL.title' => 'LOG_LEVEL', 'LOG_LEVEL.description' => 'LOG_LEVEL', 'MAINTENANCE_MODE.title' => '啟用維護模式', - 'MAINTENANCE_MODE.description' => '在所有公共頁面上顯示維護訊息。這將禁用登錄頁面。', + 'MAINTENANCE_MODE.description' => '在所有公開頁面上顯示維護訊息。這將停用登入頁面。', 'MAIL_MAILER.title' => 'MAIL_MAILER', 'MAIL_MAILER.description' => 'MAIL_MAILER', 'MAIL_HOST.title' => 'MAIL_HOST', @@ -686,25 +685,25 @@ 'MAIL_FROM_ADDRESS.title' => 'MAIL_FROM_ADDRESS', 'MAIL_FROM_ADDRESS.description' => 'MAIL_FROM_ADDRESS', 'JOIN_BETA.title' => '加入測試版計畫', - 'JOIN_BETA.description' => '在更新時啟用測試版的使用。在這裡了解更多。', + 'JOIN_BETA.description' => '在更新時啟用測試版使用。在這裡了解更多。', 'SKIP_UPDATE_BACKUP.title' => '略過更新備份', - 'SKIP_UPDATE_BACKUP.description' => '在更新時略過備份。建議始終停用此選項,
但在某些配置中可能會導致錯誤。', - 'CUSTOM_META_TAGS.title' => '啟用自訂元標籤', - 'CUSTOM_META_TAGS.description' => '在所有頁面的頭部啟用自訂元標籤的使用。在高級配置中定義。', - 'FORCE_HTTPS.title' => '強制使用HTTPS連線', - 'FORCE_HTTPS.description' => '預設情況下使所有連線使用HTTPS。如果您使用反向代理,建議啟用此選項。', - 'ALLOW_CUSTOM_CODE_IN_THEMES.title' => '允許在佈景主題中使用自訂程式碼', - 'ALLOW_CUSTOM_CODE_IN_THEMES.description' => '允許在佈景主題中使用自訂程式碼。如果您使用來自未知來源的佈景主題,
這可能構成安全風險。', - 'ENABLE_ADMIN_BAR_USERS.title' => '為所有使用者啟用管理員工具列', - 'ENABLE_ADMIN_BAR_USERS.description' => '如果啟用,所有經過身份驗證的使用者都將在其頁面上顯示管理員工具列。', - 'ENABLE_THEME_UPDATER.title' => '啟用佈景主題更新器', - 'ENABLE_THEME_UPDATER.description' => '決定佈景主題更新器是否應處於活動狀態。', - 'ENABLE_SOCIAL_LOGIN.title' => '啟用社交登入', - 'ENABLE_SOCIAL_LOGIN.description' => '啟用社交登入。此選項需要進一步設定。在這裡了解更多。', - 'USE_THEME_PREVIEW_IFRAME.title' => '使用 iframe 作為佈景主題預覽', - 'USE_THEME_PREVIEW_IFRAME.description' => '決定是否應使用內部 iframe 作為佈景主題頁面的預覽。', - 'FORCE_ROUTE_HTTPS.title' => '將所有頁面重定向到 HTTPS', - 'FORCE_ROUTE_HTTPS.description' => '如果使用反向代理,此選項將破壞您的設定。', + 'SKIP_UPDATE_BACKUP.description' => '更新時略過備份。建議始終停用此選項,
但在某些環境中可能會避免錯誤。', + 'CUSTOM_META_TAGS.title' => '啟用自訂中繼標籤', + 'CUSTOM_META_TAGS.description' => '在所有頁面的 中啟用自訂中繼標籤。在進階設定中定義。', + 'FORCE_HTTPS.title' => '強制使用 HTTPS 連線', + 'FORCE_HTTPS.description' => '預設讓所有連線使用 HTTPS。若您使用反向代理,建議啟用此選項。', + 'ALLOW_CUSTOM_CODE_IN_THEMES.title' => '允許在主題中使用自訂程式碼', + 'ALLOW_CUSTOM_CODE_IN_THEMES.description' => '允許在主題中使用自訂程式碼。如果您使用來自未知來源的主題,
這可能構成安全風險。', + 'ENABLE_ADMIN_BAR_USERS.title' => '為所有使用者啟用管理工具列', + 'ENABLE_ADMIN_BAR_USERS.description' => '若啟用,所有已驗證的使用者都會在其頁面上看到管理工具列。', + 'ENABLE_THEME_UPDATER.title' => '啟用主題更新器', + 'ENABLE_THEME_UPDATER.description' => '決定主題更新器是否啟用。', + 'ENABLE_SOCIAL_LOGIN.title' => '啟用社群登入', + 'ENABLE_SOCIAL_LOGIN.description' => '啟用社群登入。此選項需要額外設定。在這裡了解更多。', + 'USE_THEME_PREVIEW_IFRAME.title' => '使用 iframe 作為主題預覽', + 'USE_THEME_PREVIEW_IFRAME.description' => '決定是否使用內部 iframe 作為主題頁面的預覽。', + 'FORCE_ROUTE_HTTPS.title' => '將所有頁面重新導向至 HTTPS', + 'FORCE_ROUTE_HTTPS.description' => '若使用反向代理,啟用此選項可能會破壞您的設定。', 'DISPLAY_FOOTER_TERMS.title' => '條款頁尾連結', 'DISPLAY_FOOTER_TERMS.description' => '啟用條款頁尾連結。', 'DISPLAY_FOOTER_PRIVACY.title' => '隱私頁尾連結', @@ -712,36 +711,36 @@ 'DISPLAY_FOOTER_CONTACT.title' => '聯絡頁尾連結', 'DISPLAY_FOOTER_CONTACT.description' => '啟用聯絡頁尾連結。', 'TITLE_FOOTER_HOME.title' => '
', - 'TITLE_FOOTER_HOME.description' => '首頁頁腳連結的標題。', + 'TITLE_FOOTER_HOME.description' => '首頁頁尾連結的標題。', 'TITLE_FOOTER_TERMS.title' => '
', - 'TITLE_FOOTER_TERMS.description' => '條款頁腳連結的標題。', + 'TITLE_FOOTER_TERMS.description' => '條款頁尾連結的標題。', 'TITLE_FOOTER_PRIVACY.title' => '
', - 'TITLE_FOOTER_PRIVACY.description' => '隱私頁腳連結的標題。', + 'TITLE_FOOTER_PRIVACY.description' => '隱私頁尾連結的標題。', 'TITLE_FOOTER_CONTACT.title' => '
', - 'TITLE_FOOTER_CONTACT.description' => '聯絡頁腳連結的標題。', - 'HOME_FOOTER_LINK.title' => '
首頁頁腳連結網址
', - 'HOME_FOOTER_LINK.description' => '輸入任何網址以重新導向您的首頁連結網址。
留空使用預設連結。', + 'TITLE_FOOTER_CONTACT.description' => '聯絡頁尾連結的標題。', + 'HOME_FOOTER_LINK.title' => '
首頁頁尾連結網址
', + 'HOME_FOOTER_LINK.description' => '輸入任何網址以重新導向您的首頁頁尾連結。
留空則使用預設連結。', 'ALLOW_CUSTOM_BACKGROUNDS.title' => '允許自訂背景', - 'ALLOW_CUSTOM_BACKGROUNDS.description' => '允許使用者上傳自訂背景圖片至其頁面。', + 'ALLOW_CUSTOM_BACKGROUNDS.description' => '允許使用者為其頁面上傳自訂背景圖片。', 'ALLOW_USER_IMPORT.title' => '允許使用者從其他實例匯入設定檔', - 'ALLOW_USER_IMPORT.description' => '允許使用者從外部檔案匯入其設定檔和連結。', + 'ALLOW_USER_IMPORT.description' => '允許使用者從外部檔案匯入其設定檔與連結。', 'ALLOW_USER_EXPORT.title' => '允許使用者匯出其設定檔', - 'ALLOW_USER_EXPORT.description' => '允許使用者匯出其自己的連結和設定檔。', + 'ALLOW_USER_EXPORT.description' => '允許使用者匯出自己的連結與設定檔。', 'MANUAL_USER_VERIFICATION.title' => '手動驗證使用者', 'MANUAL_USER_VERIFICATION.description' => '決定管理員是否必須手動驗證新註冊的使用者。', 'ADMIN_EMAIL.title' => '管理員電子郵件', 'ADMIN_EMAIL.description' => '用於發送通知電子郵件。', 'HIDE_VERIFICATION_CHECKMARK.title' => '隱藏驗證勾選標記', - 'HIDE_VERIFICATION_CHECKMARK.description' => '隱藏在管理員和VIP頁面上顯示的驗證徽章。', - 'ENABLE_REPORT_ICON.title' => '啟用報告圖示', - 'ENABLE_REPORT_ICON.description' => '在使用者頁面上顯示一個圖示,允許使用者舉報頁面。', - 'LOCALE.title' => '應用程式區域設置', + 'HIDE_VERIFICATION_CHECKMARK.description' => '隱藏在管理員與 VIP 頁面上顯示的驗證徽章。', + 'ENABLE_REPORT_ICON.title' => '啟用檢舉圖示', + 'ENABLE_REPORT_ICON.description' => '在使用者頁面上顯示一個圖示,允許使用者檢舉頁面。', + 'LOCALE.title' => '應用程式語系', 'LOCALE.description' => '更改您的應用程式的語言', /* |-------------------------------------------------------------------------- - | 安装 + | 安裝 |-------------------------------------------------------------------------- | | resources/views/installer/installer.blade.php @@ -749,25 +748,25 @@ */ # 標題標籤 - 'LinkStack setup' => 'LinkStack 設置', + 'LinkStack setup' => 'LinkStack 設定', - 'Setup LinkStack' => '設置 LinkStack', - 'Welcome to the setup for LinkStack!' => '歡迎使用 LinkStack 設置!', - 'This setup will:' => '本設置將:', + 'Setup LinkStack' => '設定 LinkStack', + 'Welcome to the setup for LinkStack!' => '歡迎使用 LinkStack 設定精靈!', + 'This setup will:' => '本設定將:', 'Check the server dependencies' => '1. 檢查伺服器相依性', - 'Setup the database' => '2. 設置資料庫', + 'Setup the database' => '2. 設定資料庫', 'Create the admin user' => '3. 建立管理員使用者', - 'Configure the app' => '4. 配置應用程式', + 'Configure the app' => '4. 設定應用程式', 'Choose a language' => '選擇語言', 'setup.disclaimer' => '繼續即表示您同意遵守我們的', - 'Terms and Conditions' => '條款和條件', + 'Terms and Conditions' => '條款與條件', 'Next' => '下一步', 'Yes' => '是', 'No' => '否', - 'Finish setup' => '完成設置', + 'Finish setup' => '完成設定', - 'Setup failed' => '設置失敗', + 'Setup failed' => '設定失敗', 'An error has occured. Please try again' => '發生錯誤,請重試', 'Depending on your database type:' => '根據您的資料庫類型:', 'Try again' => '重試', @@ -777,7 +776,7 @@ 'Select a database type' => '選擇資料庫類型', 'Under most circumstances, we recommend using SQLite' => '在大多數情況下,我們建議使用 SQLite', - 'MySQL requires a separate, empty MySQL database' => 'MySQL 需要一個獨立的、空的 MySQL 資料庫', + 'MySQL requires a separate, empty MySQL database' => 'MySQL 需要一個獨立且空白的 MySQL 資料庫', 'Database type:' => '資料庫類型:', 'Database host:' => '資料庫主機:', @@ -792,17 +791,17 @@ 'Handle:' => '使用者名稱:', 'Name:' => '姓名:', - 'Configure your page' => '配置您的頁面', + 'Configure your page' => '設定您的頁面', 'Enable registration:' => '啟用註冊:', 'Enable email verification:' => '啟用電子郵件驗證:', - 'Set your page as Home Page' => '將您的頁面設置為首頁', + 'Set your page as Home Page' => '將您的頁面設為首頁', 'This will move the Home Page to /home' => '這將把首頁移至 /home', 'App Name:' => '應用程式名稱:', /* |-------------------------------------------------------------------------- - | 升级步驟/升級備份 + | 升級步驟/升級備份 |-------------------------------------------------------------------------- | | resources/views/update.blade.php @@ -816,25 +815,25 @@ 'Installed beta version' => '已安裝測試版', 'none' => '無', 'You need to update to the latest mainline release' => '您需要更新到最新的主線版本', - 'You’re running the latest mainline release' => '您正在運行最新的主線版本', + 'You’re running the latest mainline release' => '您正在執行最新的主線版本', - 'update.manually' => '您可以自動更新您的安裝,也可以下載更新並手動安裝:', - 'update.windows' => 'Windows 使用者可以使用替代升級程序。此升級程序不會創建備份。請謹慎使用。', + 'update.manually' => '您可以自動更新安裝,也可以下載更新並手動安裝:', + 'update.windows' => 'Windows 使用者可以使用替代升級程式。此升級程式不會建立備份,請謹慎使用。', 'Update automatically' => '自動更新', 'Updating' => '正在更新', - 'Creating backup' => '建立備份', + 'Creating backup' => '正在建立備份', 'Preparing update' => '準備更新', 'No new version' => '沒有新版本', - 'There is no new version available' => '沒有可用的新版本', + 'There is no new version available' => '目前沒有可用的新版本', 'Admin Panel' => '管理員面板', - 'Finishing up' => '完成', + 'Finishing up' => '完成中', 'Success!' => '成功!', 'The update was successful' => '更新成功,您現在可以返回管理員面板。', - 'View the release notes' => '查看發布說明', + 'View the release notes' => '查看發行說明', 'Run again' => '重新執行', 'Error' => '錯誤', - 'Something went wrong with the update' => '更新過程中出現了問題', + 'Something went wrong with the update' => '更新過程中發生問題', /* @@ -849,7 +848,7 @@ # 標題標籤 'Backup.title' => '備份', - 'The backup was successful' => '備份成功,您現在可以返回管理員面板或查看您的所有備份。', + 'The backup was successful' => '備份成功,您現在可以返回管理員面板或查看所有備份。', /* @@ -862,13 +861,13 @@ | */ - # 预設 + # 預設 'block.title.predefined' => '預設網站', - 'block.description.predefined' => '從預設網站列表中選擇,並使用該網站的品牌顏色和圖示自動為您的連結設置樣式。', + 'block.description.predefined' => '從預設網站列表中選擇,並使用該網站的品牌顏色與圖示自動為您的連結設置樣式。', # 連結 'block.title.link' => '自訂連結', - 'block.description.link' => '建立一個指向任何網站的自訂連結。自訂按鈕樣式和圖示,或使用網站的站點圖示作為按鈕圖示。', + 'block.description.link' => '建立一個指向任何網站的自訂連結。可自訂按鈕樣式與圖示,或使用網站的網站圖示作為按鈕圖示。', # 電子名片 'block.title.vcard' => '電子名片', @@ -876,7 +875,7 @@ # 電子郵件 'block.title.email' => '電子郵件地址', - 'block.description.email' => '新增一個電子郵件地址,以開啟系統對話方塊來編寫新電子郵件。', + 'block.description.email' => '新增一個電子郵件地址,以開啟系統對話方塊來撰寫新郵件。', # 電話 'block.title.telephone' => '電話號碼', @@ -884,15 +883,15 @@ # 標題 'block.title.heading' => '標題', - 'block.description.heading' => '使用標題來組織您的連結並將它們分為不同的組。', + 'block.description.heading' => '使用標題來整理您的連結並將它們分組。', # 間距 'block.title.spacer' => '間距', - 'block.description.spacer' => '在連結列表中添加空白空間。您可以選擇間距的高度。', + 'block.description.spacer' => '在連結列表中加入空白間距。您可以選擇間距高度。', # 文字 'block.title.text' => '文字', - 'block.description.text' => '在您的頁面上添加不可點擊的靜態文字。', + 'block.description.text' => '在頁面上新增不可點擊的靜態文字。', /* @@ -909,23 +908,23 @@ 'Leave blank for default title' => '若要使用預設標題,請留空', 'E-Mail address' => '電子郵件地址', 'Enter your E-Mail' => '輸入您的電子郵件', - + 'Heading Text:' => '標題文字:', - + 'URL' => '網址', 'Show website icon on button' => '在按鈕上顯示網站圖示', - - 'Select a predefined site' => '選擇預定義網站', + + 'Select a predefined site' => '選擇預設網站', 'Enter the link URL' => '輸入連結網址', - + 'Spacing height' => '間距高度', - + 'Phone' => '電話', 'Telephone number' => '電話號碼', 'Enter your telephone number' => '輸入您的電話號碼', - + 'Text to display' => '要顯示的文字', - + 'Vcard' => '電子名片', 'First Name' => '名字', 'Middle Name' => '中間名', @@ -939,7 +938,7 @@ 'Work Email' => '工作電子郵件', 'Enter your work email' => '輸入您的工作電子郵件', 'Phones' => '電話', - 'Home Phone' => '家庭電話', + 'Home Phone' => '家用電話', 'Work Phone' => '工作電話', 'Cell Phone' => '手機', 'Home Address' => '家庭地址', @@ -950,8 +949,8 @@ 'Zip/Postal Code' => '郵遞區號', 'Country' => '國家', 'Work Address' => '工作地址', - - 'URL to the video' => '影片的網址', + + 'URL to the video' => '影片網址', /* @@ -964,16 +963,16 @@ */ 'Maintenance Mode' => '維護模式', - 'We are performing scheduled site maintenance at this time' => '我們目前正在進行定期的網站維護。', + 'We are performing scheduled site maintenance at this time' => '我們目前正在進行例行網站維護。', 'Please check back with us later' => '請稍後再回來查看。', 'Admin options:' => '管理員選項:', 'Turn off' => '關閉', - 'Warn.Disable.Maintenance' => '您即將關閉維護模式。您確定嗎?', + 'Warn.Disable.Maintenance' => '您即將關閉維護模式。您確定嗎?', /* |-------------------------------------------------------------------------- - | LinkStack (Links) 頁面 + | LinkStack(連結)頁面 |-------------------------------------------------------------------------- | | resources/views/linkstack/linkstack.blade.php @@ -984,18 +983,18 @@ 'Share' => '分享', 'Copy URL to clipboard' => '複製網址到剪貼簿', 'URL has been copied to your clipboard!' => '網址已複製到您的剪貼簿!', - + 'Delete User' => '刪除使用者', 'Block User' => '封鎖使用者', 'Users Theme' => '使用者主題', 'Search User' => '搜尋使用者', - - 'Edit my profile' => '編輯我的個人資料', + + 'Edit my profile' => '編輯我的個人資料', /* |-------------------------------------------------------------------------- - | 頁腳 + | 頁尾 |-------------------------------------------------------------------------- | | 添加到某些頁面的底部。 @@ -1006,42 +1005,43 @@ 'Learn more about LinkStack' => '了解更多關於 LinkStack', 'Learn more' => '了解更多', + /* |-------------------------------------------------------------------------- | 通知消息 |-------------------------------------------------------------------------- | - | 所有内部通知。 + | 所有內部通知。 | resources/views/layouts/notifications.blade.php | */ - 'No notifications' => '没有通知', + 'No notifications' => '沒有通知', # 安全風險通知 'Your security is at risk!' => '您的安全受到威脅!', - 'Immediate action is required!' => '需要立即行動!', + 'Immediate action is required!' => '需要立即採取行動!', 'security.msg1' => '您的安全受到威脅。', 'security.msg2' => '某些檔案可被所有人存取。需要立即採取行動!', - 'security.msg3' => '一些重要檔案可公開存取,可能危及您的安全。請立即採取行動,撤銷對這些檔案的公開存取,以防止未經授權存取您的敏感資訊。', + 'security.msg3' => '一些重要檔案可公開存取,可能危及您的安全。請立即撤銷這些檔案的公開存取,以防止未經授權地存取您的敏感資訊。', 'security.msg4' => '了解更多', - # 帮助我們通知 + # 幫助我們通知 'Hide this notification' => '隱藏此通知', 'Help Us Out' => '幫助我們', 'Enjoying Linkstack?' => '喜歡使用 Linkstack 嗎?', 'Support Linkstack' => '支持 Linkstack', - 'support.msg1' => '如果您喜歡使用 Linkstack,我們將非常感激您如果您能花一點時間', + 'support.msg1' => '如果您喜歡使用 Linkstack,非常感謝您能花一點時間', 'support.msg2' => '在 GitHub 上給我們的專案一個星', - 'support.msg3' => '您的支持將幫助我們吸引更廣泛的受眾,提高我們專案的品質。', - 'support.msg4' => '如果您能', - 'support.msg5' => '提供財政支持,哪怕是一點點,也將有助於我們支付維護和改進 Linkstack 的成本。', - 'support.msg6' => '感謝您的支持,以及您是 LinkStack 社群的一部分!', + 'support.msg3' => '您的支持將幫助我們接觸更多使用者,並提升專案品質。', + 'support.msg4' => '如果您也能', + 'support.msg5' => '提供財務支持,哪怕只是一點點,也能幫助我們支付維護與改進 Linkstack 的成本。', + 'support.msg6' => '感謝您的支持,也感謝您成為 LinkStack 社群的一份子!', /* |-------------------------------------------------------------------------- - | 頁腳連結 + | 頁尾連結 |-------------------------------------------------------------------------- | */ @@ -1049,7 +1049,7 @@ 'footer.Home' => '首頁', 'footer.Terms' => '條款', 'footer.Privacy' => '隱私', - 'footer.Contact' => '聯繫', + 'footer.Contact' => '聯絡', /* @@ -1060,7 +1060,7 @@ */ 'report_violation' => '檢舉違規行為', - 'url_label' => '您要檢舉的網站網址', + 'url_label' => '您要檢舉的頁面網址', 'report_type_label' => '檢舉類型', 'hate_speech' => '仇恨言論或騷擾', 'violence_threats' => '暴力或威脅', @@ -1075,10 +1075,9 @@ 'privacy_violation' => '侵犯隱私', 'impersonation' => '冒充', 'other_specify' => '其他(請具體說明)', - 'additional_comments_label' => '附加評論', + 'additional_comments_label' => '附加說明', 'submit_button' => '提交', - 'report_mail_admin_subject' => '個人檢舉', 'report_mail_admin_report' => '已檢舉個人資料', @@ -1094,9 +1093,8 @@ 'report_mail_button_profile' => '在使用者頁面上查看', 'report_mail_button_delete' => '刪除被檢舉使用者', - 'report_error' => '個人資料無法被檢舉', - 'report_success' => '個人資料已成功檢舉', + 'report_success' => '個人資料已成功送出檢舉', #=============================================================================# @@ -1106,33 +1104,30 @@ /* |-------------------------------------------------------------------------- - | 認證語言線 + | 認證語言行 |-------------------------------------------------------------------------- | - | 以下語言線用於過程中的各種消息,我們需要向使用者顯示這些內容。 - | 您可以根據您的應用程序要求自由修改這些語言線。 - | + | 以下語言行用於認證過程中的各種訊息,我們需要向使用者顯示這些內容。 + | 您可以根據應用程式需求自由修改這些語言行。 | */ - 'failed' => '這些認證與我們的記錄不符。', + 'failed' => '這些登入憑證與我們的記錄不符。', 'password' => '提供的密碼不正確。', - 'throttle' => '登入嘗試次數過多。請在 :seconds 秒後重試。', + 'throttle' => '登入嘗試次數過多。請在 :seconds 秒後再試一次。', /* |-------------------------------------------------------------------------- - | 分頁語言線 + | 分頁語言行 |-------------------------------------------------------------------------- | - | 以下語言線由分頁器庫用於構建簡單的分頁鏈接。 - | 您可以根據您的應用程序要求更改它們以更好地匹配您的視圖。 - | + | 以下語言行由分頁器用於構建簡單的分頁連結。 + | 您可以依照應用程式需求調整這些內容。 | */ 'previous' => '« 上一頁', 'next' => '下一頁 »', - ]; From 4e3c323fb74b3234b5455faf37255842b8d33c6b Mon Sep 17 00:00:00 2001 From: loki Date: Tue, 25 Nov 2025 22:12:40 +0800 Subject: [PATCH 05/21] update translation files From 3678fa0002776649ef619c84e053cf5973692a56 Mon Sep 17 00:00:00 2001 From: Julian Prieber Date: Wed, 3 Dec 2025 20:46:11 +0100 Subject: [PATCH 06/21] Update image links in README.md --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index ee8813ab..e6e5c08c 100644 --- a/README.md +++ b/README.md @@ -30,14 +30,14 @@

-GitHub Repo stars -Mastodon Follow -Discord online user count +GitHub Repo stars +Mastodon Follow +Discord online user count

-GitHub spomsors -Patreon - +GitHub spomsors +Patreon +

--- @@ -45,7 +45,7 @@

Download latest
- GitHub release (latest by date) + GitHub release (latest by date)

--- @@ -221,7 +221,7 @@ The updater may fail without throwing an error and just remain on the current ve ## License -[![License: AGPL v3](https://img.lss.ovh/badge/License-AGPL%20v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0) +[![License: AGPL v3](https://img.tny.st/badge/License-AGPL%20v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0) As of version 4.0.0, the license for this project has been updated to the GNU Affero General Public License v3.0, which explicitly requires that any modifications made to the project must be made public. This license also requires that a copyright notice and license notice be included in any copies or derivative works of the project. From 93c6a6367827c7a9b1fdf433cc7f4697a9425b88 Mon Sep 17 00:00:00 2001 From: Julian Prieber Date: Tue, 16 Dec 2025 18:52:07 +0100 Subject: [PATCH 07/21] Cache user image path --- app/Functions/functions.php | 92 +++++++++++++++++++++++++++++++------ 1 file changed, 77 insertions(+), 15 deletions(-) diff --git a/app/Functions/functions.php b/app/Functions/functions.php index 6e6350fd..eacfe19e 100644 --- a/app/Functions/functions.php +++ b/app/Functions/functions.php @@ -1,48 +1,110 @@ $fingerprint, + 'files' => $files + ]; + if (class_exists('Redis')) { + try { + Redis::setex($cacheKey, $ttl, json_encode($data)); + } catch (\Exception $e) { + // fallback silently + } + } else { + // Laravel cache fallback + Cache::put($cacheKey, $data, $ttl); + } + + $memoryCache[$directory] = $files; + + return $files; + } +} + function findFile($name) { $directory = base_path("/assets/linkstack/images/"); - $files = scandir($directory); - $pathinfo = "error.error"; + $files = preloadDirectoryFiles($directory, 'linkstack_images_files'); + $pattern = '/^' . preg_quote($name, '/') . '(_\w+)?\.\w+$/i'; foreach ($files as $file) { if (preg_match($pattern, $file)) { - $pathinfo = $file; - break; + return $file; } } - return $pathinfo; + return "error.error"; } function findAvatar($name) { $directory = base_path("assets/img"); - $files = scandir($directory); - $pathinfo = "error.error"; + $files = preloadDirectoryFiles($directory, 'assets_img_files'); + $pattern = '/^' . preg_quote($name, '/') . '(_\w+)?\.\w+$/i'; foreach ($files as $file) { if (preg_match($pattern, $file)) { - $pathinfo = "assets/img/" . $file; - break; + return "assets/img/" . $file; } } - return $pathinfo; + return "error.error"; } function findBackground($name) { $directory = base_path("assets/img/background-img/"); - $files = scandir($directory); - $pathinfo = "error.error"; + $files = preloadDirectoryFiles($directory, 'assets_img_background_files'); + $pattern = '/^' . preg_quote($name, '/') . '(_\w+)?\.\w+$/i'; foreach ($files as $file) { if (preg_match($pattern, $file)) { - $pathinfo = $file; - break; + return $file; } } - return $pathinfo; + return "error.error"; } function analyzeImageBrightness($file) { From 604653f7dfeb55eca26697ad96f0d85fa360b2a2 Mon Sep 17 00:00:00 2001 From: Julian Prieber Date: Mon, 26 Jan 2026 18:48:29 +0100 Subject: [PATCH 08/21] Update Dependencies (#958) * Refactor * dependencies * Exclude dev dependencies --- .github/workflows/release.yml | 2 +- app/Http/Controllers/AdminController.php | 1554 +++++----- composer.lock | 2565 +++++++---------- .../views/components/config/backups.blade.php | 167 +- resources/views/panel/backups.blade.php | 64 +- 5 files changed, 2117 insertions(+), 2235 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9da32148..29946b6c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -52,7 +52,7 @@ jobs: cp "../../version.json" "version.json" - composer update --no-scripts + composer update --no-dev --no-scripts php artisan lang:update diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index 1e356b25..8dc6874d 100755 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -31,737 +31,939 @@ class AdminController extends Controller { - //Statistics of the number of clicks and links - public function index() - { - $userId = Auth::user()->id; - $littlelink_name = Auth::user()->littlelink_name; - $links = Link::where('user_id', $userId)->select('link')->count(); - $clicks = Link::where('user_id', $userId)->sum('click_number'); - - $userNumber = User::count(); - $siteLinks = Link::count(); - $siteClicks = Link::sum('click_number'); - - $users = User::select('id', 'name', 'email', 'created_at', 'updated_at')->get(); - $lastMonthCount = $users->where('created_at', '>=', Carbon::now()->subDays(30))->count(); - $lastWeekCount = $users->where('created_at', '>=', Carbon::now()->subDays(7))->count(); - $last24HrsCount = $users->where('created_at', '>=', Carbon::now()->subHours(24))->count(); - $updatedLast30DaysCount = $users->where('updated_at', '>=', Carbon::now()->subDays(30))->count(); - $updatedLast7DaysCount = $users->where('updated_at', '>=', Carbon::now()->subDays(7))->count(); - $updatedLast24HrsCount = $users->where('updated_at', '>=', Carbon::now()->subHours(24))->count(); - - $links = Link::where('user_id', $userId)->select('link')->count(); - $clicks = Link::where('user_id', $userId)->sum('click_number'); - $topLinks = Link::where('user_id', $userId)->orderby('click_number', 'desc') - ->whereNotNull('link')->where('link', '<>', '') - ->take(5)->get(); - - $pageStats = [ - 'visitors' => [ - 'all' => visits('App\Models\User', $littlelink_name)->count(), - 'day' => visits('App\Models\User', $littlelink_name)->period('day')->count(), - 'week' => visits('App\Models\User', $littlelink_name)->period('week')->count(), - 'month' => visits('App\Models\User', $littlelink_name)->period('month')->count(), - 'year' => visits('App\Models\User', $littlelink_name)->period('year')->count(), - ], - 'os' => visits('App\Models\User', $littlelink_name)->operatingSystems(), - 'referers' => visits('App\Models\User', $littlelink_name)->refs(), - 'countries' => visits('App\Models\User', $littlelink_name)->countries(), - ]; - - return view('panel/index', ['lastMonthCount' => $lastMonthCount,'lastWeekCount' => $lastWeekCount,'last24HrsCount' => $last24HrsCount,'updatedLast30DaysCount' => $updatedLast30DaysCount,'updatedLast7DaysCount' => $updatedLast7DaysCount,'updatedLast24HrsCount' => $updatedLast24HrsCount,'toplinks' => $topLinks, 'links' => $links, 'clicks' => $clicks, 'pageStats' => $pageStats, 'littlelink_name' => $littlelink_name, 'links' => $links, 'clicks' => $clicks, 'siteLinks' => $siteLinks, 'siteClicks' => $siteClicks, 'userNumber' => $userNumber]); - } - -// Users page -public function users() -{ - return view('panel/users'); -} - -// Send test mail -public function SendTestMail(Request $request) -{ + //Statistics of the number of clicks and links + public function index() + { + $userId = Auth::user()->id; + $littlelink_name = Auth::user()->littlelink_name; + $links = Link::where("user_id", $userId)->select("link")->count(); + $clicks = Link::where("user_id", $userId)->sum("click_number"); + + $userNumber = User::count(); + $siteLinks = Link::count(); + $siteClicks = Link::sum("click_number"); + + $users = User::select( + "id", + "name", + "email", + "created_at", + "updated_at", + )->get(); + $lastMonthCount = $users + ->where("created_at", ">=", Carbon::now()->subDays(30)) + ->count(); + $lastWeekCount = $users + ->where("created_at", ">=", Carbon::now()->subDays(7)) + ->count(); + $last24HrsCount = $users + ->where("created_at", ">=", Carbon::now()->subHours(24)) + ->count(); + $updatedLast30DaysCount = $users + ->where("updated_at", ">=", Carbon::now()->subDays(30)) + ->count(); + $updatedLast7DaysCount = $users + ->where("updated_at", ">=", Carbon::now()->subDays(7)) + ->count(); + $updatedLast24HrsCount = $users + ->where("updated_at", ">=", Carbon::now()->subHours(24)) + ->count(); + + $links = Link::where("user_id", $userId)->select("link")->count(); + $clicks = Link::where("user_id", $userId)->sum("click_number"); + $topLinks = Link::where("user_id", $userId) + ->orderby("click_number", "desc") + ->whereNotNull("link") + ->where("link", "<>", "") + ->take(5) + ->get(); + + $pageStats = [ + "visitors" => [ + "all" => visits("App\Models\User", $littlelink_name)->count(), + "day" => visits("App\Models\User", $littlelink_name) + ->period("day") + ->count(), + "week" => visits("App\Models\User", $littlelink_name) + ->period("week") + ->count(), + "month" => visits("App\Models\User", $littlelink_name) + ->period("month") + ->count(), + "year" => visits("App\Models\User", $littlelink_name) + ->period("year") + ->count(), + ], + "os" => visits("App\Models\User", $littlelink_name)->operatingSystems(), + "referers" => visits("App\Models\User", $littlelink_name)->refs(), + "countries" => visits("App\Models\User", $littlelink_name)->countries(), + ]; + + return view("panel/index", [ + "lastMonthCount" => $lastMonthCount, + "lastWeekCount" => $lastWeekCount, + "last24HrsCount" => $last24HrsCount, + "updatedLast30DaysCount" => $updatedLast30DaysCount, + "updatedLast7DaysCount" => $updatedLast7DaysCount, + "updatedLast24HrsCount" => $updatedLast24HrsCount, + "toplinks" => $topLinks, + "links" => $links, + "clicks" => $clicks, + "pageStats" => $pageStats, + "littlelink_name" => $littlelink_name, + "links" => $links, + "clicks" => $clicks, + "siteLinks" => $siteLinks, + "siteClicks" => $siteClicks, + "userNumber" => $userNumber, + ]); + } + + // Users page + public function users() + { + return view("panel/users"); + } + + // Send test mail + public function SendTestMail(Request $request) + { try { - $userId = auth()->id(); - $user = User::findOrFail($userId); - - Mail::send('auth.test', ['user' => $user], function ($message) use ($user) { - $message->to($user->email) - ->subject('Test Email'); - }); - - return redirect()->route('showConfig')->with('success', 'Test email sent successfully!'); + $userId = auth()->id(); + $user = User::findOrFail($userId); + + Mail::send("auth.test", ["user" => $user], function ($message) use ( + $user, + ) { + $message->to($user->email)->subject("Test Email"); + }); + + return redirect() + ->route("showConfig") + ->with("success", "Test email sent successfully!"); } catch (\Exception $e) { - return redirect()->route('showConfig')->with('fail', 'Failed to send test email.'); - } -} - - //Block user - public function blockUser(request $request) - { - $id = $request->id; - $status = $request->block; - - if ($status == 'yes') { - $block = 'no'; - } elseif ($status == 'no') { - $block = 'yes'; - } - - User::where('id', $id)->update(['block' => $block]); - - return redirect('admin/users/all'); - } - - //Verify user - public function verifyCheckUser(request $request) - { - $id = $request->id; - $status = $request->verify; - - if ($status == 'vip') { - $verify = 'vip'; - UserData::saveData($id, 'checkmark', true); - } elseif ($status == 'user') { - $verify = 'user'; - } - - User::where('id', $id)->update(['role' => $verify]); - - return redirect(url('u')."/".$id); - } + return redirect() + ->route("showConfig") + ->with("fail", "Failed to send test email."); + } + } - //Verify or un-verify users emails - public function verifyUser(request $request) - { - $id = $request->id; - $status = $request->verify; - - if ($status == "true") { - $verify = '0000-00-00 00:00:00'; - } else { - $verify = NULL; - } + //Block user + public function blockUser(request $request) + { + $id = $request->id; + $status = $request->block; - User::where('id', $id)->update(['email_verified_at' => $verify]); + if ($status == "yes") { + $block = "no"; + } elseif ($status == "no") { + $block = "yes"; } - //Create new user from the Admin Panel - public function createNewUser() - { - - function random_str( - int $length = 64, - string $keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' - ): string { - if ($length < 1) { - throw new \RangeException("Length must be a positive integer"); - } - $pieces = []; - $max = mb_strlen($keyspace, '8bit') - 1; - for ($i = 0; $i < $length; ++$i) { - $pieces[] = $keyspace[random_int(0, $max)]; - } - return implode('', $pieces); - } - - $names = User::pluck('name')->toArray(); - - $adminCreatedNames = array_filter($names, function($name) { - return strpos($name, 'Admin-Created-') === 0; - }); - - $numbers = array_map(function($name) { - return (int) str_replace('Admin-Created-', '', $name); - }, $adminCreatedNames); + User::where("id", $id)->update(["block" => $block]); - $maxNumber = !empty($numbers) ? max($numbers) : 0; - $newNumber = $maxNumber + 1; + return redirect("admin/users/all"); + } - $domain = parse_url(url(''), PHP_URL_HOST); - $domain = ($domain == 'localhost') ? 'example.com' : $domain; + //Verify user + public function verifyCheckUser(request $request) + { + $id = $request->id; + $status = $request->verify; - $user = User::create([ - 'name' => 'Admin-Created-' . $newNumber, - 'email' => strtolower(random_str(8)) . '@' . $domain, - 'password' => Hash::make(random_str(32)), - 'role' => 'user', - 'block' => 'no', - ]); - - return redirect('admin/edit-user/' . $user->id); + if ($status == "vip") { + $verify = "vip"; + UserData::saveData($id, "checkmark", true); + } elseif ($status == "user") { + $verify = "user"; } - //Delete existing user - public function deleteUser(request $request) - { - $id = $request->id; - - Link::where('user_id', $id)->delete(); - - Schema::disableForeignKeyConstraints(); - - $user = User::find($id); - $user->forceDelete(); - - Schema::enableForeignKeyConstraints(); - - return redirect('admin/users/all'); - } + User::where("id", $id)->update(["role" => $verify]); - //Delete existing user with POST request - public function deleteTableUser(request $request) - { - $id = $request->id; - - Link::where('user_id', $id)->delete(); - - Schema::disableForeignKeyConstraints(); - - $user = User::find($id); - $user->forceDelete(); - - Schema::enableForeignKeyConstraints(); - } + return redirect(url("u") . "/" . $id); + } - //Show user to edit - public function showUser(request $request) - { - $id = $request->id; + //Verify or un-verify users emails + public function verifyUser(request $request) + { + $id = $request->id; + $status = $request->verify; - $data['user'] = User::where('id', $id)->get(); - - return view('panel/edit-user', $data); + if ($status == "true") { + $verify = "0000-00-00 00:00:00"; + } else { + $verify = null; } - //Show link, click number, up link in links page - public function showLinksUser(request $request) - { - $id = $request->id; - - $data['user'] = User::where('id', $id)->get(); + User::where("id", $id)->update(["email_verified_at" => $verify]); + } - $data['links'] = Link::select('id', 'link', 'title', 'order', 'click_number', 'up_link', 'links.button_id')->where('user_id', $id)->orderBy('up_link', 'asc')->orderBy('order', 'asc')->paginate(10); - return view('panel/links', $data); + //Create new user from the Admin Panel + public function createNewUser() + { + function random_str( + int $length = 64, + string $keyspace = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", + ): string { + if ($length < 1) { + throw new \RangeException("Length must be a positive integer"); + } + $pieces = []; + $max = mb_strlen($keyspace, "8bit") - 1; + for ($i = 0; $i < $length; ++$i) { + $pieces[] = $keyspace[random_int(0, $max)]; + } + return implode("", $pieces); } - //Delete link - public function deleteLinkUser(request $request) - { - $linkId = $request->id; + $names = User::pluck("name")->toArray(); - Link::where('id', $linkId)->delete(); + $adminCreatedNames = array_filter($names, function ($name) { + return strpos($name, "Admin-Created-") === 0; + }); - return back(); - } + $numbers = array_map(function ($name) { + return (int) str_replace("Admin-Created-", "", $name); + }, $adminCreatedNames); + + $maxNumber = !empty($numbers) ? max($numbers) : 0; + $newNumber = $maxNumber + 1; - //Save user edit - public function editUser(request $request) - { - $request->validate([ - 'name' => '', - 'email' => '', - 'password' => '', - 'littlelink_name' => '', - ]); - - $id = $request->id; - $name = $request->name; - $email = $request->email; - $password = Hash::make($request->password); - $profilePhoto = $request->file('image'); - $littlelink_name = $request->littlelink_name; - $littlelink_description = $request->littlelink_description; - $role = $request->role; - $customBackground = $request->file('background'); - $theme = $request->theme; - - if(User::where('id', $id)->get('role')->first()->role =! $role) { - if ($role == 'vip') { - UserData::saveData($id, 'checkmark', true); - } - } - - if ($request->password == '') { - User::where('id', $id)->update(['name' => $name, 'email' => $email, 'littlelink_name' => $littlelink_name, 'littlelink_description' => $littlelink_description, 'role' => $role, 'theme' => $theme]); - } else { - User::where('id', $id)->update(['name' => $name, 'email' => $email, 'password' => $password, 'littlelink_name' => $littlelink_name, 'littlelink_description' => $littlelink_description, 'role' => $role, 'theme' => $theme]); - } - if (!empty($profilePhoto)) { - $profilePhoto->move(base_path('assets/img'), $id . '_' . time() . ".png"); - } - if (!empty($customBackground)) { - $directory = base_path('assets/img/background-img/'); - $files = scandir($directory); - $pathinfo = "error.error"; - foreach($files as $file) { - if (strpos($file, $id.'.') !== false) { - $pathinfo = $id. "." . pathinfo($file, PATHINFO_EXTENSION); - }} - if(file_exists(base_path('assets/img/background-img/').$pathinfo)){File::delete(base_path('assets/img/background-img/').$pathinfo);} - - $customBackground->move(base_path('assets/img/background-img/'), $id . '_' . time() . "." . $request->file('background')->extension()); - } - - return redirect('admin/users/all'); - } - - //Show site pages to edit - public function showSitePage() - { - $data['pages'] = Page::select('terms', 'privacy', 'contact', 'register')->get(); - return view('panel/pages', $data); - } - - //Save site pages - public function editSitePage(request $request) - { - $terms = $request->terms; - $privacy = $request->privacy; - $contact = $request->contact; - $register = $request->register; - - Page::first()->update(['terms' => $terms, 'privacy' => $privacy, 'contact' => $contact, 'register' => $register]); - - return back(); - } - - //Show home message for edit - public function showSite() - { - $message = Page::select('home_message')->first(); - return view('panel/site', $message); - } - - //Save home message, logo and favicon - public function editSite(request $request) - { - $message = $request->message; - $logo = $request->file('image'); - $icon = $request->file('icon'); - - Page::first()->update(['home_message' => $message]); - - if (!empty($logo)) { - // Delete existing image - $path = findFile('avatar'); - $path = base_path('/assets/linkstack/images/'.$path); - - // Delete existing image - if (File::exists($path)) { - File::delete($path); - } - - $logo->move(base_path('/assets/linkstack/images/'), "avatar" . '_' . time() . "." .$request->file('image')->extension()); + $domain = parse_url(url(""), PHP_URL_HOST); + $domain = $domain == "localhost" ? "example.com" : $domain; + + $user = User::create([ + "name" => "Admin-Created-" . $newNumber, + "email" => strtolower(random_str(8)) . "@" . $domain, + "password" => Hash::make(random_str(32)), + "role" => "user", + "block" => "no", + ]); + + return redirect("admin/edit-user/" . $user->id); + } + + //Delete existing user + public function deleteUser(request $request) + { + $id = $request->id; + + Link::where("user_id", $id)->delete(); + + Schema::disableForeignKeyConstraints(); + + $user = User::find($id); + $user->forceDelete(); + + Schema::enableForeignKeyConstraints(); + + return redirect("admin/users/all"); + } + + //Delete existing user with POST request + public function deleteTableUser(request $request) + { + $id = $request->id; + + Link::where("user_id", $id)->delete(); + + Schema::disableForeignKeyConstraints(); + + $user = User::find($id); + $user->forceDelete(); + + Schema::enableForeignKeyConstraints(); + } + + //Show user to edit + public function showUser(request $request) + { + $id = $request->id; + + $data["user"] = User::where("id", $id)->get(); + + return view("panel/edit-user", $data); + } + + //Show link, click number, up link in links page + public function showLinksUser(request $request) + { + $id = $request->id; + + $data["user"] = User::where("id", $id)->get(); + + $data["links"] = Link::select( + "id", + "link", + "title", + "order", + "click_number", + "up_link", + "links.button_id", + ) + ->where("user_id", $id) + ->orderBy("up_link", "asc") + ->orderBy("order", "asc") + ->paginate(10); + return view("panel/links", $data); + } + + //Delete link + public function deleteLinkUser(request $request) + { + $linkId = $request->id; + + Link::where("id", $linkId)->delete(); + + return back(); + } + + //Save user edit + public function editUser(request $request) + { + $request->validate([ + "name" => "", + "email" => "", + "password" => "", + "littlelink_name" => "", + ]); + + $id = $request->id; + $name = $request->name; + $email = $request->email; + $password = Hash::make($request->password); + $profilePhoto = $request->file("image"); + $littlelink_name = $request->littlelink_name; + $littlelink_description = $request->littlelink_description; + $role = $request->role; + $customBackground = $request->file("background"); + $theme = $request->theme; + + if (User::where("id", $id)->get("role")->first()->role = !$role) { + if ($role == "vip") { + UserData::saveData($id, "checkmark", true); + } + } + + if ($request->password == "") { + User::where("id", $id)->update([ + "name" => $name, + "email" => $email, + "littlelink_name" => $littlelink_name, + "littlelink_description" => $littlelink_description, + "role" => $role, + "theme" => $theme, + ]); + } else { + User::where("id", $id)->update([ + "name" => $name, + "email" => $email, + "password" => $password, + "littlelink_name" => $littlelink_name, + "littlelink_description" => $littlelink_description, + "role" => $role, + "theme" => $theme, + ]); + } + if (!empty($profilePhoto)) { + $profilePhoto->move(base_path("assets/img"), $id . "_" . time() . ".png"); + } + if (!empty($customBackground)) { + $directory = base_path("assets/img/background-img/"); + $files = scandir($directory); + $pathinfo = "error.error"; + foreach ($files as $file) { + if (strpos($file, $id . ".") !== false) { + $pathinfo = $id . "." . pathinfo($file, PATHINFO_EXTENSION); } + } + if (file_exists(base_path("assets/img/background-img/") . $pathinfo)) { + File::delete(base_path("assets/img/background-img/") . $pathinfo); + } + + $customBackground->move( + base_path("assets/img/background-img/"), + $id . "_" . time() . "." . $request->file("background")->extension(), + ); + } + + return redirect("admin/users/all"); + } + + //Show site pages to edit + public function showSitePage() + { + $data["pages"] = Page::select( + "terms", + "privacy", + "contact", + "register", + )->get(); + return view("panel/pages", $data); + } + + //Save site pages + public function editSitePage(request $request) + { + $terms = $request->terms; + $privacy = $request->privacy; + $contact = $request->contact; + $register = $request->register; + + Page::first()->update([ + "terms" => $terms, + "privacy" => $privacy, + "contact" => $contact, + "register" => $register, + ]); + + return back(); + } + + //Show home message for edit + public function showSite() + { + $message = Page::select("home_message")->first(); + return view("panel/site", $message); + } + + //Save home message, logo and favicon + public function editSite(request $request) + { + $message = $request->message; + $logo = $request->file("image"); + $icon = $request->file("icon"); + + Page::first()->update(["home_message" => $message]); + + if (!empty($logo)) { + // Delete existing image + $path = findFile("avatar"); + $path = base_path("/assets/linkstack/images/" . $path); + + // Delete existing image + if (File::exists($path)) { + File::delete($path); + } + + $logo->move( + base_path("/assets/linkstack/images/"), + "avatar" . "_" . time() . "." . $request->file("image")->extension(), + ); + } + + if (!empty($icon)) { + // Delete existing image + $path = findFile("favicon"); + $path = base_path("/assets/linkstack/images/" . $path); + + // Delete existing image + if (File::exists($path)) { + File::delete($path); + } + + $icon->move( + base_path("/assets/linkstack/images/"), + "favicon" . "_" . time() . "." . $request->file("icon")->extension(), + ); + } + return back(); + } + + //Delete avatar + public function delAvatar() + { + $path = findFile("avatar"); + $path = base_path("/assets/linkstack/images/" . $path); + + // Delete existing image + if (File::exists($path)) { + File::delete($path); + } + + return back(); + } + + //Delete favicon + public function delFavicon() + { + // Delete existing image + $path = findFile("favicon"); + $path = base_path("/assets/linkstack/images/" . $path); + + // Delete existing image + if (File::exists($path)) { + File::delete($path); + } + + return back(); + } + + //View footer page: terms + public function pagesTerms(Request $request) + { + $name = "terms"; - if (!empty($icon)) { - // Delete existing image - $path = findFile('favicon'); - $path = base_path('/assets/linkstack/images/'.$path); - - // Delete existing image - if (File::exists($path)) { - File::delete($path); - } - - $icon->move(base_path('/assets/linkstack/images/'), "favicon" . '_' . time() . "." . $request->file('icon')->extension()); - } - return back(); - } - - //Delete avatar - public function delAvatar() - { - $path = findFile('avatar'); - $path = base_path('/assets/linkstack/images/'.$path); - - // Delete existing image - if (File::exists($path)) { - File::delete($path); - } - - return back(); - } - - //Delete favicon - public function delFavicon() - { - // Delete existing image - $path = findFile('favicon'); - $path = base_path('/assets/linkstack/images/'.$path); - - // Delete existing image - if (File::exists($path)) { - File::delete($path); - } - - return back(); + try { + $data["page"] = Page::select($name)->first(); + } catch (Exception $e) { + return abort(404); } - //View footer page: terms - public function pagesTerms(Request $request) - { - $name = "terms"; - - try { - $data['page'] = Page::select($name)->first(); - } catch (Exception $e) { - return abort(404); - } - - return view('pages', ['data' => $data, 'name' => $name]); - } + return view("pages", ["data" => $data, "name" => $name]); + } - //View footer page: privacy - public function pagesPrivacy(Request $request) - { - $name = "privacy"; - - try { - $data['page'] = Page::select($name)->first(); - } catch (Exception $e) { - return abort(404); - } - - return view('pages', ['data' => $data, 'name' => $name]); - } + //View footer page: privacy + public function pagesPrivacy(Request $request) + { + $name = "privacy"; - //View footer page: contact - public function pagesContact(Request $request) - { - $name = "contact"; - - try { - $data['page'] = Page::select($name)->first(); - } catch (Exception $e) { - return abort(404); - } - - return view('pages', ['data' => $data, 'name' => $name]); + try { + $data["page"] = Page::select($name)->first(); + } catch (Exception $e) { + return abort(404); } - //Statistics of the number of clicks and links - public function phpinfo() - { - return view('panel/phpinfo'); - } + return view("pages", ["data" => $data, "name" => $name]); + } - //Shows config file editor page - public function showFileEditor(request $request) - { - return redirect('/admin/config'); - } + //View footer page: contact + public function pagesContact(Request $request) + { + $name = "contact"; - //Saves advanced config - public function editAC(request $request) - { - if ($request->ResetAdvancedConfig == 'RESET_DEFAULTS') { - copy(base_path('storage/templates/advanced-config.php'), base_path('config/advanced-config.php')); - } else { - file_put_contents('config/advanced-config.php', $request->AdvancedConfig); + try { + $data["page"] = Page::select($name)->first(); + } catch (Exception $e) { + return abort(404); + } + + return view("pages", ["data" => $data, "name" => $name]); + } + + //Statistics of the number of clicks and links + public function phpinfo() + { + return view("panel/phpinfo"); + } + + //Shows config file editor page + public function showFileEditor(request $request) + { + return redirect("/admin/config"); + } + + //Saves advanced config + public function editAC(request $request) + { + if ($request->ResetAdvancedConfig == "RESET_DEFAULTS") { + copy( + base_path("storage/templates/advanced-config.php"), + base_path("config/advanced-config.php"), + ); + } else { + file_put_contents("config/advanced-config.php", $request->AdvancedConfig); + } + + return redirect("/admin/config#2"); + } + + //Saves .env config + public function editENV(request $request) + { + $config = $request->altConfig; + + file_put_contents(".env", $config); + + return Redirect("/admin/config?alternative-config"); + } + + //Shows config file editor page + public function showBackups(request $request) + { + return view("/panel/backups"); + } + + //Delete custom theme + public function deleteTheme(request $request) + { + $del = $request->deltheme; + + if (empty($del)) { + echo '"; + } else { + $folderName = base_path() . "/themes/" . $del; + + function removeFolder($folderName) + { + if (File::exists($folderName)) { + File::deleteDirectory($folderName); + return true; } - return redirect('/admin/config#2'); - } - - //Saves .env config - public function editENV(request $request) - { - $config = $request->altConfig; - - file_put_contents('.env', $config); - - return Redirect('/admin/config?alternative-config'); - } - - //Shows config file editor page - public function showBackups(request $request) - { - return view('/panel/backups'); - } - - //Delete custom theme - public function deleteTheme(request $request) - { - - $del = $request->deltheme; - - if (empty($del)) { - echo ''; - } else { - - $folderName = base_path() . '/themes/' . $del; - - - - function removeFolder($folderName) - { - if (File::exists($folderName)) { - File::deleteDirectory($folderName); - return true; - } - - return false; - } - - removeFolder($folderName); - - return Redirect('/admin/theme'); + return false; + } + + removeFolder($folderName); + + return Redirect("/admin/theme"); + } + } + + // Update themes + public function updateThemes() + { + if ($handle = opendir("themes")) { + while (false !== ($entry = readdir($handle))) { + if (file_exists(base_path("themes") . "/" . $entry . "/readme.md")) { + $text = file_get_contents( + base_path("themes") . "/" . $entry . "/readme.md", + ); + $pattern = "/Theme Version:.*/"; + preg_match($pattern, $text, $matches, PREG_OFFSET_CAPTURE); + if (!count($matches)) { + continue; + } + $verNr = substr($matches[0][0], 15); } - } - - // Update themes - public function updateThemes() - { - - - if ($handle = opendir('themes')) { - while (false !== ($entry = readdir($handle))) { - - if (file_exists(base_path('themes') . '/' . $entry . '/readme.md')) { - $text = file_get_contents(base_path('themes') . '/' . $entry . '/readme.md'); - $pattern = '/Theme Version:.*/'; - preg_match($pattern, $text, $matches, PREG_OFFSET_CAPTURE); - if (!count($matches)) continue; - $verNr = substr($matches[0][0], 15); + $themeVe = null; + + if ($entry != "." && $entry != "..") { + if (file_exists(base_path("themes") . "/" . $entry . "/readme.md")) { + if ( + !strpos( + file_get_contents( + base_path("themes") . "/" . $entry . "/readme.md", + ), + "Source code:", + ) + ) { + $hasSource = false; + } else { + $hasSource = true; + + $text = file_get_contents( + base_path("themes") . "/" . $entry . "/readme.md", + ); + $pattern = "/Source code:.*/"; + preg_match($pattern, $text, $matches, PREG_OFFSET_CAPTURE); + $sourceURL = substr($matches[0][0], 13); + + $replaced = str_replace( + "https://github.com/", + "https://raw.githubusercontent.com/", + trim($sourceURL), + ); + $replaced = $replaced . "/main/readme.md"; + + if (strpos($sourceURL, "github.com")) { + ini_set("user_agent", "Mozilla/4.0 (compatible; MSIE 6.0)"); + try { + $textGit = file_get_contents($replaced); + $patternGit = "/Theme Version:.*/"; + preg_match( + $patternGit, + $textGit, + $matches, + PREG_OFFSET_CAPTURE, + ); + $sourceURLGit = substr($matches[0][0], 15); + $Vgitt = "v" . $sourceURLGit; + $verNrv = "v" . $verNr; + } catch (Exception $ex) { + $themeVe = "error"; + $Vgitt = null; + $verNrv = null; } - - $themeVe = NULL; - - if ($entry != "." && $entry != "..") { - if (file_exists(base_path('themes') . '/' . $entry . '/readme.md')) { - if (!strpos(file_get_contents(base_path('themes') . '/' . $entry . '/readme.md'), 'Source code:')) { - $hasSource = false; + if (trim($Vgitt) > trim($verNrv)) { + $fileUrl = + trim($sourceURL) . + "/archive/refs/tags/" . + trim($Vgitt) . + ".zip"; + + file_put_contents( + base_path("themes/theme.zip"), + fopen($fileUrl, "r"), + ); + + $zip = new ZipArchive(); + $zip->open(base_path() . "/themes/theme.zip"); + $zip->extractTo(base_path("themes")); + $zip->close(); + unlink(base_path() . "/themes/theme.zip"); + + $folder = base_path("themes"); + $regex = "/[0-9.-]/"; + $files = scandir($folder); + + foreach ($files as $file) { + if ($file !== "." && $file !== "..") { + if (preg_match($regex, $file)) { + $new_file = preg_replace($regex, "", $file); + File::copyDirectory( + $folder . "/" . $file, + $folder . "/" . $new_file, + ); + $dirname = $folder . "/" . $file; + if (strtoupper(substr(PHP_OS, 0, 3)) === "WIN") { + system( + "rmdir " . escapeshellarg($dirname) . " /s /q", + ); } else { - $hasSource = true; - - $text = file_get_contents(base_path('themes') . '/' . $entry . '/readme.md'); - $pattern = '/Source code:.*/'; - preg_match($pattern, $text, $matches, PREG_OFFSET_CAPTURE); - $sourceURL = substr($matches[0][0], 13); - - $replaced = str_replace("https://github.com/", "https://raw.githubusercontent.com/", trim($sourceURL)); - $replaced = $replaced . "/main/readme.md"; - - if (strpos($sourceURL, 'github.com')) { - - ini_set('user_agent', 'Mozilla/4.0 (compatible; MSIE 6.0)'); - try { - $textGit = file_get_contents($replaced); - $patternGit = '/Theme Version:.*/'; - preg_match($patternGit, $textGit, $matches, PREG_OFFSET_CAPTURE); - $sourceURLGit = substr($matches[0][0], 15); - $Vgitt = 'v' . $sourceURLGit; - $verNrv = 'v' . $verNr; - } catch (Exception $ex) { - $themeVe = "error"; - $Vgitt = NULL; - $verNrv = NULL; - } - - if (trim($Vgitt) > trim($verNrv)) { - - - $fileUrl = trim($sourceURL) . '/archive/refs/tags/' . trim($Vgitt) . '.zip'; - - - file_put_contents(base_path('themes/theme.zip'), fopen($fileUrl, 'r')); - - - $zip = new ZipArchive; - $zip->open(base_path() . '/themes/theme.zip'); - $zip->extractTo(base_path('themes')); - $zip->close(); - unlink(base_path() . '/themes/theme.zip'); - - $folder = base_path('themes'); - $regex = '/[0-9.-]/'; - $files = scandir($folder); - - foreach ($files as $file) { - if ($file !== '.' && $file !== '..') { - if (preg_match($regex, $file)) { - $new_file = preg_replace($regex, '', $file); - File::copyDirectory($folder . '/' . $file, $folder . '/' . $new_file); - $dirname = $folder . '/' . $file; - if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { - system('rmdir ' . escapeshellarg($dirname) . ' /s /q'); - } else { - system("rm -rf " . escapeshellarg($dirname)); - } - } - } - } - } - } + system("rm -rf " . escapeshellarg($dirname)); } + } } + } } + } } + } } - - return Redirect('/studio/theme'); - } - - //Shows config file editor page - public function showConfig(request $request) - { - return view('/panel/config-editor'); - } - - //Shows config file editor page - public function editConfig(request $request) - { - - $type = $request->type; - $entry = $request->entry; - $value = $request->value; - - if($type === "toggle"){ - if($request->toggle != ''){$value = "true";}else{$value = "false";} - if(EnvEditor::keyExists($entry)){EnvEditor::editKey($entry, $value);} - } elseif($type === "toggle2") { - if($request->toggle != ''){$value = "verified";}else{$value = "auth";} - if(EnvEditor::keyExists($entry)){EnvEditor::editKey($entry, $value);} - } elseif($type === "text") { - if(EnvEditor::keyExists($entry)){EnvEditor::editKey($entry, '"' . $value . '"');} - } elseif($type === "debug") { - if($request->toggle != ''){ - if(EnvEditor::keyExists('APP_DEBUG')){EnvEditor::editKey('APP_DEBUG', 'true');} - if(EnvEditor::keyExists('APP_ENV')){EnvEditor::editKey('APP_ENV', 'local');} - if(EnvEditor::keyExists('LOG_LEVEL')){EnvEditor::editKey('LOG_LEVEL', 'debug');} - } else { - if(EnvEditor::keyExists('APP_DEBUG')){EnvEditor::editKey('APP_DEBUG', 'false');} - if(EnvEditor::keyExists('APP_ENV')){EnvEditor::editKey('APP_ENV', 'production');} - if(EnvEditor::keyExists('LOG_LEVEL')){EnvEditor::editKey('LOG_LEVEL', 'error');} - } - } elseif($type === "register") { - if($request->toggle != ''){$register = "true";}else{$register = "false";} - Page::first()->update(['register' => $register]); - } elseif($type === "smtp") { - if($request->toggle != ''){$value = "built-in";}else{$value = "smtp";} - if(EnvEditor::keyExists('MAIL_MAILER')){EnvEditor::editKey('MAIL_MAILER', $value);} - - if(EnvEditor::keyExists('MAIL_HOST')){EnvEditor::editKey('MAIL_HOST', $request->MAIL_HOST);} - if(EnvEditor::keyExists('MAIL_PORT')){EnvEditor::editKey('MAIL_PORT', $request->MAIL_PORT);} - if(EnvEditor::keyExists('MAIL_USERNAME')){EnvEditor::editKey('MAIL_USERNAME', '"' . $request->MAIL_USERNAME . '"');} - if(EnvEditor::keyExists('MAIL_PASSWORD')){EnvEditor::editKey('MAIL_PASSWORD', '"' . $request->MAIL_PASSWORD . '"');} - if(EnvEditor::keyExists('MAIL_ENCRYPTION')){EnvEditor::editKey('MAIL_ENCRYPTION', $request->MAIL_ENCRYPTION);} - if(EnvEditor::keyExists('MAIL_FROM_ADDRESS')){EnvEditor::editKey('MAIL_FROM_ADDRESS', $request->MAIL_FROM_ADDRESS);} - } elseif($type === "homeurl") { - if($request->value == 'default'){$value = "";}else{$value = '"' . $request->value . '"';} - if(EnvEditor::keyExists($entry)){EnvEditor::editKey($entry, $value);} - } elseif($type === "maintenance") { - if($request->toggle != ''){$value = "true";}else{$value = "false";} - if(file_exists(base_path("storage/MAINTENANCE"))){unlink(base_path("storage/MAINTENANCE"));} - if(EnvEditor::keyExists($entry)){EnvEditor::editKey($entry, $value);} - } else { - if(EnvEditor::keyExists($entry)){EnvEditor::editKey($entry, $value);} + } + } + + return Redirect("/studio/theme"); + } + + //Shows config file editor page + public function showConfig(request $request) + { + return view("/panel/config-editor"); + } + + //Shows config file editor page + public function editConfig(request $request) + { + $type = $request->type; + $entry = $request->entry; + $value = $request->value; + + if ($type === "toggle") { + if ($request->toggle != "") { + $value = "true"; + } else { + $value = "false"; + } + if (EnvEditor::keyExists($entry)) { + EnvEditor::editKey($entry, $value); + } + } elseif ($type === "toggle2") { + if ($request->toggle != "") { + $value = "verified"; + } else { + $value = "auth"; + } + if (EnvEditor::keyExists($entry)) { + EnvEditor::editKey($entry, $value); + } + } elseif ($type === "text") { + if (EnvEditor::keyExists($entry)) { + EnvEditor::editKey($entry, '"' . $value . '"'); + } + } elseif ($type === "debug") { + if ($request->toggle != "") { + if (EnvEditor::keyExists("APP_DEBUG")) { + EnvEditor::editKey("APP_DEBUG", "true"); } - - - - - return Redirect('/admin/config'); - } - - //Shows theme editor page - public function showThemes(request $request) - { - return view('/panel/theme'); - } - - //Removes impersonation if authenticated - public function authAs(request $request) - { - - $userID = $request->id; - $token = $request->token; - - $user = User::find($userID); - - if($user->remember_token == $token && $request->session()->get('display_auth_nav') === $user->remember_token){ - $user->auth_as = null; - $user->remember_token = null; - $user->save(); - - $request->session()->forget('display_auth_nav'); - - Auth::loginUsingId($userID); - - return redirect('/admin/users/all'); - } else { - Auth::logout(); + if (EnvEditor::keyExists("APP_ENV")) { + EnvEditor::editKey("APP_ENV", "local"); } - + if (EnvEditor::keyExists("LOG_LEVEL")) { + EnvEditor::editKey("LOG_LEVEL", "debug"); + } + } else { + if (EnvEditor::keyExists("APP_DEBUG")) { + EnvEditor::editKey("APP_DEBUG", "false"); + } + if (EnvEditor::keyExists("APP_ENV")) { + EnvEditor::editKey("APP_ENV", "production"); + } + if (EnvEditor::keyExists("LOG_LEVEL")) { + EnvEditor::editKey("LOG_LEVEL", "error"); + } + } + } elseif ($type === "register") { + if ($request->toggle != "") { + $register = "true"; + } else { + $register = "false"; + } + Page::first()->update(["register" => $register]); + } elseif ($type === "smtp") { + if ($request->toggle != "") { + $value = "built-in"; + } else { + $value = "smtp"; + } + if (EnvEditor::keyExists("MAIL_MAILER")) { + EnvEditor::editKey("MAIL_MAILER", $value); + } + + if (EnvEditor::keyExists("MAIL_HOST")) { + EnvEditor::editKey("MAIL_HOST", $request->MAIL_HOST); + } + if (EnvEditor::keyExists("MAIL_PORT")) { + EnvEditor::editKey("MAIL_PORT", $request->MAIL_PORT); + } + if (EnvEditor::keyExists("MAIL_USERNAME")) { + EnvEditor::editKey( + "MAIL_USERNAME", + '"' . $request->MAIL_USERNAME . '"', + ); + } + if (EnvEditor::keyExists("MAIL_PASSWORD")) { + EnvEditor::editKey( + "MAIL_PASSWORD", + '"' . $request->MAIL_PASSWORD . '"', + ); + } + if (EnvEditor::keyExists("MAIL_ENCRYPTION")) { + EnvEditor::editKey("MAIL_ENCRYPTION", $request->MAIL_ENCRYPTION); + } + if (EnvEditor::keyExists("MAIL_FROM_ADDRESS")) { + EnvEditor::editKey("MAIL_FROM_ADDRESS", $request->MAIL_FROM_ADDRESS); + } + } elseif ($type === "homeurl") { + if ($request->value == "default") { + $value = ""; + } else { + $value = '"' . $request->value . '"'; + } + if (EnvEditor::keyExists($entry)) { + EnvEditor::editKey($entry, $value); + } + } elseif ($type === "maintenance") { + if ($request->toggle != "") { + $value = "true"; + } else { + $value = "false"; + } + if (file_exists(base_path("storage/MAINTENANCE"))) { + unlink(base_path("storage/MAINTENANCE")); + } + if (EnvEditor::keyExists($entry)) { + EnvEditor::editKey($entry, $value); + } + } else { + if (EnvEditor::keyExists($entry)) { + EnvEditor::editKey($entry, $value); + } + } + + return Redirect("/admin/config"); + } + + //Shows theme editor page + public function showThemes(request $request) + { + return view("/panel/theme"); + } + + //Removes impersonation if authenticated + public function authAs(Request $request) + { + $userID = $request->id; + $token = $request->token; + + $user = User::find($userID); + + if (!$user) { + Auth::logout(); + return redirect("/login"); + } + + $userRememberToken = $user->remember_token; + $sessionToken = $request->session()->get("display_auth_nav"); + + if ( + !empty($token) && + !empty($userRememberToken) && + !empty($sessionToken) && + hash_equals($userRememberToken, $token) && + hash_equals($userRememberToken, $sessionToken) + ) { + $user->auth_as = null; + $user->remember_token = null; + $user->save(); + + $request->session()->forget("display_auth_nav"); + + Auth::loginUsingId($userID); + + return redirect("/admin/users/all"); + } else { + Auth::logout(); + return redirect("/login"); + } + } + + //Add impersonation + public function authAsID(request $request) + { + $adminUser = User::whereNotNull("auth_as")->where("role", "admin")->first(); + + if (!$adminUser) { + $userID = $request->id; + $id = Auth::user()->id; + + $user = User::find($id); + + $user->auth_as = $userID; + $user->save(); + + return redirect("dashboard"); + } else { + return redirect("admin/users/all"); + } + } + + //Show info about link + public function redirectInfo(request $request) + { + $linkId = $request->id; + + if (empty($linkId)) { + return abort(404); } - //Add impersonation - public function authAsID(request $request) - { - - $adminUser = User::whereNotNull('auth_as')->where('role', 'admin')->first(); - - if (!$adminUser) { - - $userID = $request->id; - $id = Auth::user()->id; - - $user = User::find($id); - - $user->auth_as = $userID; - $user->save(); - - return redirect('dashboard'); - - } else { - return redirect('admin/users/all'); - } + $linkData = Link::find($linkId); + $clicks = $linkData->click_number; + if (empty($linkData)) { + return abort(404); } - //Show info about link - public function redirectInfo(request $request) + function isValidLink($url) { - $linkId = $request->id; + $validPrefixes = ["http", "https", "ftp", "mailto", "tel", "news"]; - if (empty($linkId)) { - return abort(404); - } - - $linkData = Link::find($linkId); - $clicks = $linkData->click_number; - - if (empty($linkData)) { - return abort(404); - } - - function isValidLink($url) { - $validPrefixes = array('http', 'https', 'ftp', 'mailto', 'tel', 'news'); - - $pattern = '/^(' . implode('|', $validPrefixes) . '):/i'; - - if (preg_match($pattern, $url) && strlen($url) <= 155) { - return $url; - } else { - return "N/A"; - } - } - - $link = isValidLink($linkData->link); + $pattern = "/^(" . implode("|", $validPrefixes) . "):/i"; - $userID = $linkData->user_id; - $userData = User::find($userID); + if (preg_match($pattern, $url) && strlen($url) <= 155) { + return $url; + } else { + return "N/A"; + } + } - return view('linkinfo', ['clicks' => $clicks, 'linkID' => $linkId, 'link' => $link, 'id' => $userID, 'userData' => $userData]); + $link = isValidLink($linkData->link); - } + $userID = $linkData->user_id; + $userData = User::find($userID); + return view("linkinfo", [ + "clicks" => $clicks, + "linkID" => $linkId, + "link" => $link, + "id" => $userID, + "userData" => $userData, + ]); + } } diff --git a/composer.lock b/composer.lock index 8138fd2d..96e6c638 100644 --- a/composer.lock +++ b/composer.lock @@ -4,24 +4,24 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "f2bf9e2d3ef238c3a5709b1a28e82833", + "content-hash": "baacb808064fe8cadd982607d069928e", "packages": [ { "name": "awssat/laravel-visits", - "version": "6.1.1", + "version": "6.2.0", "source": { "type": "git", "url": "https://github.com/awssat/laravel-visits.git", - "reference": "8d6c165742e5bf0a8b6d1501771c3d409f1f8948" + "reference": "ff9e034183f6f9a8d3c06caad95b7936678936b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/awssat/laravel-visits/zipball/8d6c165742e5bf0a8b6d1501771c3d409f1f8948", - "reference": "8d6c165742e5bf0a8b6d1501771c3d409f1f8948", + "url": "https://api.github.com/repos/awssat/laravel-visits/zipball/ff9e034183f6f9a8d3c06caad95b7936678936b9", + "reference": "ff9e034183f6f9a8d3c06caad95b7936678936b9", "shasum": "" }, "require": { - "illuminate/support": "~5.5.0 || ~5.6.0 || ~5.7.0 || ~5.8.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0", + "illuminate/support": "~5.5.0 || ~5.6.0 || ~5.7.0 || ~5.8.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0 || ^12.0", "jaybizzle/crawler-detect": "^1.2", "nesbot/carbon": "^2.0|^3.0", "php": "^8.0", @@ -29,11 +29,11 @@ "torann/geoip": "^1.0|^3.0" }, "require-dev": { - "doctrine/dbal": "^2.6|^3.0", - "illuminate/support": "~5.5.0 || ~5.6.0 || ~5.7.0 || ~5.8.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0", + "doctrine/dbal": "^2.6 || ^3.0 || ^4.0", + "illuminate/support": "~5.5.0 || ~5.6.0 || ~5.7.0 || ~5.8.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0 || ^12.0", "mockery/mockery": "^1.4 || ^1.6", - "orchestra/testbench": "^3.5 || ^3.6 || ^3.7 || ^3.8 || ^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0", - "phpunit/phpunit": "^9.0 || ^10.1", + "orchestra/testbench": "^3.5 || ^3.6 || ^3.7 || ^3.8 || ^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0", + "phpunit/phpunit": "^9.0 || ^10.1 || ^11.0", "predis/predis": "^1.1|^2.0" }, "suggest": { @@ -43,16 +43,16 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - }, "laravel": { - "providers": [ - "Awssat\\Visits\\VisitsServiceProvider" - ], "aliases": { "Visits": "Awssat\\Visits\\Visits" - } + }, + "providers": [ + "Awssat\\Visits\\VisitsServiceProvider" + ] + }, + "branch-alias": { + "dev-master": "2.0-dev" } }, "autoload": { @@ -90,7 +90,7 @@ ], "support": { "issues": "https://github.com/awssat/laravel-visits/issues", - "source": "https://github.com/awssat/laravel-visits/tree/6.1.1" + "source": "https://github.com/awssat/laravel-visits/tree/6.2.0" }, "funding": [ { @@ -98,7 +98,7 @@ "type": "github" } ], - "time": "2024-07-07T22:47:10+00:00" + "time": "2025-04-14T11:43:36+00:00" }, { "name": "bacon/bacon-qr-code", @@ -201,6 +201,7 @@ "issues": "https://github.com/Behat/Transliterator/issues", "source": "https://github.com/Behat/Transliterator/tree/v1.5.0" }, + "abandoned": true, "time": "2022-03-30T09:27:43+00:00" }, { @@ -327,91 +328,6 @@ ], "time": "2023-12-11T17:09:12+00:00" }, - { - "name": "codedge/laravel-selfupdater", - "version": "3.6.2", - "source": { - "type": "git", - "url": "https://github.com/codedge/laravel-selfupdater.git", - "reference": "44bbecaff3652aeb9b9eb73c79f82ecf6a698b02" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/codedge/laravel-selfupdater/zipball/44bbecaff3652aeb9b9eb73c79f82ecf6a698b02", - "reference": "44bbecaff3652aeb9b9eb73c79f82ecf6a698b02", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-zip": "*", - "guzzlehttp/guzzle": "^7.5.0", - "laravel/framework": "^9", - "league/uri": "~6.7|~6.8", - "php": "^8.0 || ^8.1", - "phpstan/extension-installer": "^1.2", - "phpstan/phpstan-phpunit": "^1.2" - }, - "require-dev": { - "dg/bypass-finals": "^1.3", - "mikey179/vfsstream": "^1.6", - "mockery/mockery": "^1.5", - "orchestra/testbench": "^7.0", - "phpunit/phpunit": "^9.5.26" - }, - "type": "library", - "extra": { - "laravel": { - "aliases": { - "Updater": "Codedge\\Updater\\UpdaterFacade" - }, - "providers": [ - "Codedge\\Updater\\UpdaterServiceProvider" - ] - } - }, - "autoload": { - "files": [ - "src/helpers.php" - ], - "psr-4": { - "Codedge\\Updater\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Holger Lösken", - "email": "holger.loesken@codedge.de", - "homepage": "https://codedge.de", - "role": "Developer" - } - ], - "description": "Providing an auto-updating functionality for your self-hosted Laravel application.", - "keywords": [ - "auto update", - "auto-update", - "laravel", - "laravel application", - "self update", - "self-hosted laravel application", - "self-update", - "update" - ], - "support": { - "issues": "https://github.com/codedge/laravel-selfupdater/issues", - "source": "https://github.com/codedge/laravel-selfupdater" - }, - "funding": [ - { - "url": "https://github.com/codedge", - "type": "github" - } - ], - "time": "2023-01-29T23:25:52+00:00" - }, { "name": "cohensive/oembed", "version": "v0.17", @@ -473,16 +389,16 @@ }, { "name": "dasprid/enum", - "version": "1.0.6", + "version": "1.0.7", "source": { "type": "git", "url": "https://github.com/DASPRiD/Enum.git", - "reference": "8dfd07c6d2cf31c8da90c53b83c026c7696dda90" + "reference": "b5874fa9ed0043116c72162ec7f4fb50e02e7cce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/8dfd07c6d2cf31c8da90c53b83c026c7696dda90", - "reference": "8dfd07c6d2cf31c8da90c53b83c026c7696dda90", + "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/b5874fa9ed0043116c72162ec7f4fb50e02e7cce", + "reference": "b5874fa9ed0043116c72162ec7f4fb50e02e7cce", "shasum": "" }, "require": { @@ -517,9 +433,9 @@ ], "support": { "issues": "https://github.com/DASPRiD/Enum/issues", - "source": "https://github.com/DASPRiD/Enum/tree/1.0.6" + "source": "https://github.com/DASPRiD/Enum/tree/1.0.7" }, - "time": "2024-08-09T14:30:48+00:00" + "time": "2025-09-16T12:23:56+00:00" }, { "name": "dflydev/dot-access-data", @@ -596,135 +512,43 @@ }, "time": "2024-07-08T12:26:09+00:00" }, - { - "name": "doctrine/cache", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/cache.git", - "reference": "1ca8f21980e770095a31456042471a57bc4c68fb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb", - "reference": "1ca8f21980e770095a31456042471a57bc4c68fb", - "shasum": "" - }, - "require": { - "php": "~7.1 || ^8.0" - }, - "conflict": { - "doctrine/common": ">2.2,<2.4" - }, - "require-dev": { - "cache/integration-tests": "dev-master", - "doctrine/coding-standard": "^9", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "psr/cache": "^1.0 || ^2.0 || ^3.0", - "symfony/cache": "^4.4 || ^5.4 || ^6", - "symfony/var-exporter": "^4.4 || ^5.4 || ^6" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", - "homepage": "https://www.doctrine-project.org/projects/cache.html", - "keywords": [ - "abstraction", - "apcu", - "cache", - "caching", - "couchdb", - "memcached", - "php", - "redis", - "xcache" - ], - "support": { - "issues": "https://github.com/doctrine/cache/issues", - "source": "https://github.com/doctrine/cache/tree/2.2.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", - "type": "tidelift" - } - ], - "time": "2022-05-20T20:07:39+00:00" - }, { "name": "doctrine/dbal", - "version": "3.9.1", + "version": "3.10.4", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "d7dc08f98cba352b2bab5d32c5e58f7e745c11a7" + "reference": "63a46cb5aa6f60991186cc98c1d1b50c09311868" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/d7dc08f98cba352b2bab5d32c5e58f7e745c11a7", - "reference": "d7dc08f98cba352b2bab5d32c5e58f7e745c11a7", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/63a46cb5aa6f60991186cc98c1d1b50c09311868", + "reference": "63a46cb5aa6f60991186cc98c1d1b50c09311868", "shasum": "" }, "require": { "composer-runtime-api": "^2", - "doctrine/cache": "^1.11|^2.0", "doctrine/deprecations": "^0.5.3|^1", "doctrine/event-manager": "^1|^2", "php": "^7.4 || ^8.0", "psr/cache": "^1|^2|^3", "psr/log": "^1|^2|^3" }, + "conflict": { + "doctrine/cache": "< 1.11" + }, "require-dev": { - "doctrine/coding-standard": "12.0.0", + "doctrine/cache": "^1.11|^2.0", + "doctrine/coding-standard": "14.0.0", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "1.12.0", - "phpstan/phpstan-strict-rules": "^1.6", - "phpunit/phpunit": "9.6.20", - "psalm/plugin-phpunit": "0.18.4", - "slevomat/coding-standard": "8.13.1", - "squizlabs/php_codesniffer": "3.10.2", - "symfony/cache": "^5.4|^6.0|^7.0", - "symfony/console": "^4.4|^5.4|^6.0|^7.0", - "vimeo/psalm": "4.30.0" + "phpstan/phpstan": "2.1.30", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "9.6.29", + "slevomat/coding-standard": "8.24.0", + "squizlabs/php_codesniffer": "4.0.0", + "symfony/cache": "^5.4|^6.0|^7.0|^8.0", + "symfony/console": "^4.4|^5.4|^6.0|^7.0|^8.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -784,7 +608,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.9.1" + "source": "https://github.com/doctrine/dbal/tree/3.10.4" }, "funding": [ { @@ -800,33 +624,34 @@ "type": "tidelift" } ], - "time": "2024-09-01T13:49:23+00:00" + "time": "2025-11-29T10:46:08+00:00" }, { "name": "doctrine/deprecations", - "version": "1.1.3", + "version": "1.1.5", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" + "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", - "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", + "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, + "conflict": { + "phpunit/phpunit": "<=7.5 || >=13" + }, "require-dev": { - "doctrine/coding-standard": "^9", - "phpstan/phpstan": "1.4.10 || 1.10.15", - "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "psalm/plugin-phpunit": "0.18.4", - "psr/log": "^1 || ^2 || ^3", - "vimeo/psalm": "4.30.0 || 5.12.0" + "doctrine/coding-standard": "^9 || ^12 || ^13", + "phpstan/phpstan": "1.4.10 || 2.1.11", + "phpstan/phpstan-phpunit": "^1.0 || ^2", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12", + "psr/log": "^1 || ^2 || ^3" }, "suggest": { "psr/log": "Allows logging deprecations via PSR-3 logger implementation" @@ -834,7 +659,7 @@ "type": "library", "autoload": { "psr-4": { - "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + "Doctrine\\Deprecations\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -845,22 +670,22 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.3" + "source": "https://github.com/doctrine/deprecations/tree/1.1.5" }, - "time": "2024-01-30T19:34:25+00:00" + "time": "2025-04-07T20:06:18+00:00" }, { "name": "doctrine/event-manager", - "version": "2.0.1", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/event-manager.git", - "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e" + "reference": "c07799fcf5ad362050960a0fd068dded40b1e312" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/b680156fa328f1dfd874fd48c7026c41570b9c6e", - "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/c07799fcf5ad362050960a0fd068dded40b1e312", + "reference": "c07799fcf5ad362050960a0fd068dded40b1e312", "shasum": "" }, "require": { @@ -870,10 +695,10 @@ "doctrine/common": "<2.9" }, "require-dev": { - "doctrine/coding-standard": "^12", - "phpstan/phpstan": "^1.8.8", - "phpunit/phpunit": "^10.5", - "vimeo/psalm": "^5.24" + "doctrine/coding-standard": "^14", + "phpdocumentor/guides-cli": "^1.4", + "phpstan/phpstan": "^2.1.32", + "phpunit/phpunit": "^10.5.58" }, "type": "library", "autoload": { @@ -922,7 +747,7 @@ ], "support": { "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/2.0.1" + "source": "https://github.com/doctrine/event-manager/tree/2.1.0" }, "funding": [ { @@ -938,37 +763,36 @@ "type": "tidelift" } ], - "time": "2024-05-22T20:47:39+00:00" + "time": "2026-01-17T22:40:21+00:00" }, { "name": "doctrine/inflector", - "version": "2.0.10", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc" + "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc", - "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/6d6c96277ea252fc1304627204c3d5e6e15faa3b", + "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^11.0", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.1", - "phpstan/phpstan-strict-rules": "^1.3", - "phpunit/phpunit": "^8.5 || ^9.5", - "vimeo/psalm": "^4.25 || ^5.4" + "doctrine/coding-standard": "^12.0 || ^13.0", + "phpstan/phpstan": "^1.12 || ^2.0", + "phpstan/phpstan-phpunit": "^1.4 || ^2.0", + "phpstan/phpstan-strict-rules": "^1.6 || ^2.0", + "phpunit/phpunit": "^8.5 || ^12.2" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + "Doctrine\\Inflector\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1013,7 +837,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.10" + "source": "https://github.com/doctrine/inflector/tree/2.1.0" }, "funding": [ { @@ -1029,7 +853,7 @@ "type": "tidelift" } ], - "time": "2024-02-18T20:23:39+00:00" + "time": "2025-08-10T19:31:58+00:00" }, { "name": "doctrine/lexer", @@ -1110,32 +934,35 @@ }, { "name": "dragonmantank/cron-expression", - "version": "v3.3.3", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a" + "reference": "d61a8a9604ec1f8c3d150d09db6ce98b32675013" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", - "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/d61a8a9604ec1f8c3d150d09db6ce98b32675013", + "reference": "d61a8a9604ec1f8c3d150d09db6ce98b32675013", "shasum": "" }, "require": { - "php": "^7.2|^8.0", - "webmozart/assert": "^1.0" + "php": "^8.2|^8.3|^8.4|^8.5" }, "replace": { "mtdowling/cron-expression": "^1.0" }, "require-dev": { - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^1.0", - "phpstan/phpstan-webmozart-assert": "^1.0", - "phpunit/phpunit": "^7.0|^8.0|^9.0" + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^1.12.32|^2.1.31", + "phpunit/phpunit": "^8.5.48|^9.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, "autoload": { "psr-4": { "Cron\\": "src/Cron/" @@ -1159,7 +986,7 @@ ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.3" + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.6.0" }, "funding": [ { @@ -1167,20 +994,20 @@ "type": "github" } ], - "time": "2023-08-10T19:36:49+00:00" + "time": "2025-10-31T18:51:33+00:00" }, { "name": "egulias/email-validator", - "version": "4.0.2", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e" + "reference": "d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e", - "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa", + "reference": "d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa", "shasum": "" }, "require": { @@ -1226,7 +1053,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/4.0.2" + "source": "https://github.com/egulias/EmailValidator/tree/4.0.4" }, "funding": [ { @@ -1234,7 +1061,7 @@ "type": "github" } ], - "time": "2023-10-06T06:47:41+00:00" + "time": "2025-03-06T22:45:56+00:00" }, { "name": "fideloper/proxy", @@ -1296,16 +1123,16 @@ }, { "name": "firebase/php-jwt", - "version": "v6.10.1", + "version": "v7.0.2", "source": { "type": "git", "url": "https://github.com/firebase/php-jwt.git", - "reference": "500501c2ce893c824c801da135d02661199f60c5" + "reference": "5645b43af647b6947daac1d0f659dd1fbe8d3b65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/firebase/php-jwt/zipball/500501c2ce893c824c801da135d02661199f60c5", - "reference": "500501c2ce893c824c801da135d02661199f60c5", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/5645b43af647b6947daac1d0f659dd1fbe8d3b65", + "reference": "5645b43af647b6947daac1d0f659dd1fbe8d3b65", "shasum": "" }, "require": { @@ -1353,37 +1180,37 @@ ], "support": { "issues": "https://github.com/firebase/php-jwt/issues", - "source": "https://github.com/firebase/php-jwt/tree/v6.10.1" + "source": "https://github.com/firebase/php-jwt/tree/v7.0.2" }, - "time": "2024-05-18T18:05:11+00:00" + "time": "2025-12-16T22:17:28+00:00" }, { "name": "fruitcake/php-cors", - "version": "v1.3.0", + "version": "v1.4.0", "source": { "type": "git", "url": "https://github.com/fruitcake/php-cors.git", - "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b" + "reference": "38aaa6c3fd4c157ffe2a4d10aa8b9b16ba8de379" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/3d158f36e7875e2f040f37bc0573956240a5a38b", - "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b", + "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/38aaa6c3fd4c157ffe2a4d10aa8b9b16ba8de379", + "reference": "38aaa6c3fd4c157ffe2a4d10aa8b9b16ba8de379", "shasum": "" }, "require": { - "php": "^7.4|^8.0", - "symfony/http-foundation": "^4.4|^5.4|^6|^7" + "php": "^8.1", + "symfony/http-foundation": "^5.4|^6.4|^7.3|^8" }, "require-dev": { - "phpstan/phpstan": "^1.4", + "phpstan/phpstan": "^2", "phpunit/phpunit": "^9", - "squizlabs/php_codesniffer": "^3.5" + "squizlabs/php_codesniffer": "^4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.3-dev" } }, "autoload": { @@ -1414,7 +1241,7 @@ ], "support": { "issues": "https://github.com/fruitcake/php-cors/issues", - "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0" + "source": "https://github.com/fruitcake/php-cors/tree/v1.4.0" }, "funding": [ { @@ -1426,7 +1253,7 @@ "type": "github" } ], - "time": "2023-10-12T05:21:21+00:00" + "time": "2025-12-03T09:33:47+00:00" }, { "name": "geo-sot/laravel-env-editor", @@ -1454,12 +1281,12 @@ "type": "library", "extra": { "laravel": { - "providers": [ - "GeoSot\\EnvEditor\\ServiceProvider" - ], "aliases": { "EnvEditor": "GeoSot\\EnvEditor\\Facades\\EnvEditor" - } + }, + "providers": [ + "GeoSot\\EnvEditor\\ServiceProvider" + ] } }, "autoload": { @@ -1492,24 +1319,24 @@ }, { "name": "graham-campbell/result-type", - "version": "v1.1.3", + "version": "v1.1.4", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "3ba905c11371512af9d9bdd27d99b782216b6945" + "reference": "e01f4a821471308ba86aa202fed6698b6b695e3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945", - "reference": "3ba905c11371512af9d9bdd27d99b782216b6945", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/e01f4a821471308ba86aa202fed6698b6b695e3b", + "reference": "e01f4a821471308ba86aa202fed6698b6b695e3b", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.3" + "phpoption/phpoption": "^1.9.5" }, "require-dev": { - "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" + "phpunit/phpunit": "^8.5.41 || ^9.6.22 || ^10.5.45 || ^11.5.7" }, "type": "library", "autoload": { @@ -1538,7 +1365,7 @@ ], "support": { "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3" + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.4" }, "funding": [ { @@ -1550,26 +1377,26 @@ "type": "tidelift" } ], - "time": "2024-07-20T21:45:45+00:00" + "time": "2025-12-27T19:43:20+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "7.9.2", + "version": "7.10.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "d281ed313b989f213357e3be1a179f02196ac99b" + "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b", - "reference": "d281ed313b989f213357e3be1a179f02196ac99b", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", + "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0.3", - "guzzlehttp/psr7": "^2.7.0", + "guzzlehttp/promises": "^2.3", + "guzzlehttp/psr7": "^2.8", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -1660,7 +1487,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.9.2" + "source": "https://github.com/guzzle/guzzle/tree/7.10.0" }, "funding": [ { @@ -1676,20 +1503,20 @@ "type": "tidelift" } ], - "time": "2024-07-24T11:22:20+00:00" + "time": "2025-08-23T22:36:01+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.3", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8" + "reference": "481557b130ef3790cf82b713667b43030dc9c957" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", - "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", + "url": "https://api.github.com/repos/guzzle/promises/zipball/481557b130ef3790cf82b713667b43030dc9c957", + "reference": "481557b130ef3790cf82b713667b43030dc9c957", "shasum": "" }, "require": { @@ -1697,7 +1524,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.39 || ^9.6.20" + "phpunit/phpunit": "^8.5.44 || ^9.6.25" }, "type": "library", "extra": { @@ -1743,7 +1570,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.3" + "source": "https://github.com/guzzle/promises/tree/2.3.0" }, "funding": [ { @@ -1759,20 +1586,20 @@ "type": "tidelift" } ], - "time": "2024-07-18T10:29:17+00:00" + "time": "2025-08-22T14:34:08+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.7.0", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201" + "reference": "21dc724a0583619cd1652f673303492272778051" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201", - "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/21dc724a0583619cd1652f673303492272778051", + "reference": "21dc724a0583619cd1652f673303492272778051", "shasum": "" }, "require": { @@ -1788,7 +1615,7 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", "http-interop/http-factory-tests": "0.9.0", - "phpunit/phpunit": "^8.5.39 || ^9.6.20" + "phpunit/phpunit": "^8.5.44 || ^9.6.25" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -1859,7 +1686,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.7.0" + "source": "https://github.com/guzzle/psr7/tree/2.8.0" }, "funding": [ { @@ -1875,20 +1702,20 @@ "type": "tidelift" } ], - "time": "2024-07-18T11:15:46+00:00" + "time": "2025-08-23T21:21:41+00:00" }, { "name": "guzzlehttp/uri-template", - "version": "v1.0.3", + "version": "v1.0.5", "source": { "type": "git", "url": "https://github.com/guzzle/uri-template.git", - "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c" + "reference": "4f4bbd4e7172148801e76e3decc1e559bdee34e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/uri-template/zipball/ecea8feef63bd4fef1f037ecb288386999ecc11c", - "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/4f4bbd4e7172148801e76e3decc1e559bdee34e1", + "reference": "4f4bbd4e7172148801e76e3decc1e559bdee34e1", "shasum": "" }, "require": { @@ -1897,7 +1724,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "phpunit/phpunit": "^8.5.44 || ^9.6.25", "uri-template/tests": "1.0.0" }, "type": "library", @@ -1945,7 +1772,7 @@ ], "support": { "issues": "https://github.com/guzzle/uri-template/issues", - "source": "https://github.com/guzzle/uri-template/tree/v1.0.3" + "source": "https://github.com/guzzle/uri-template/tree/v1.0.5" }, "funding": [ { @@ -1961,24 +1788,24 @@ "type": "tidelift" } ], - "time": "2023-12-03T19:50:20+00:00" + "time": "2025-08-22T14:27:06+00:00" }, { "name": "jaybizzle/crawler-detect", - "version": "v1.2.120", + "version": "v1.3.6", "source": { "type": "git", "url": "https://github.com/JayBizzle/Crawler-Detect.git", - "reference": "2b325bdce46bbb8a2e96dc740ad37c743c9d8617" + "reference": "61f2ef1ad2d0ae922c265931cb0a8032a1ed2813" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JayBizzle/Crawler-Detect/zipball/2b325bdce46bbb8a2e96dc740ad37c743c9d8617", - "reference": "2b325bdce46bbb8a2e96dc740ad37c743c9d8617", + "url": "https://api.github.com/repos/JayBizzle/Crawler-Detect/zipball/61f2ef1ad2d0ae922c265931cb0a8032a1ed2813", + "reference": "61f2ef1ad2d0ae922c265931cb0a8032a1ed2813", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=7.1.0" }, "require-dev": { "phpunit/phpunit": "^4.8|^5.5|^6.5|^9.4" @@ -2011,9 +1838,9 @@ ], "support": { "issues": "https://github.com/JayBizzle/Crawler-Detect/issues", - "source": "https://github.com/JayBizzle/Crawler-Detect/tree/v1.2.120" + "source": "https://github.com/JayBizzle/Crawler-Detect/tree/v1.3.6" }, - "time": "2024-09-15T14:31:21+00:00" + "time": "2025-09-30T16:22:43+00:00" }, { "name": "jeroendesloovere/vcard", @@ -2070,16 +1897,16 @@ }, { "name": "laravel/framework", - "version": "v9.52.16", + "version": "v9.52.21", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "082345d76fc6a55b649572efe10b11b03e279d24" + "reference": "6055d9594c9da265ddbf1e27e7dd8f09624568bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/082345d76fc6a55b649572efe10b11b03e279d24", - "reference": "082345d76fc6a55b649572efe10b11b03e279d24", + "url": "https://api.github.com/repos/laravel/framework/zipball/6055d9594c9da265ddbf1e27e7dd8f09624568bc", + "reference": "6055d9594c9da265ddbf1e27e7dd8f09624568bc", "shasum": "" }, "require": { @@ -2264,20 +2091,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2023-10-03T13:02:30+00:00" + "time": "2025-09-30T14:57:50+00:00" }, { "name": "laravel/serializable-closure", - "version": "v1.3.5", + "version": "v1.3.7", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c" + "reference": "4f48ade902b94323ca3be7646db16209ec76be3d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c", - "reference": "1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/4f48ade902b94323ca3be7646db16209ec76be3d", + "reference": "4f48ade902b94323ca3be7646db16209ec76be3d", "shasum": "" }, "require": { @@ -2325,51 +2152,51 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2024-09-23T13:33:08+00:00" + "time": "2024-11-14T18:34:49+00:00" }, { "name": "laravel/socialite", - "version": "v5.16.0", + "version": "v5.24.2", "source": { "type": "git", "url": "https://github.com/laravel/socialite.git", - "reference": "40a2dc98c53d9dc6d55eadb0d490d3d72b73f1bf" + "reference": "5cea2eebf11ca4bc6c2f20495c82a70a9b3d1613" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/socialite/zipball/40a2dc98c53d9dc6d55eadb0d490d3d72b73f1bf", - "reference": "40a2dc98c53d9dc6d55eadb0d490d3d72b73f1bf", + "url": "https://api.github.com/repos/laravel/socialite/zipball/5cea2eebf11ca4bc6c2f20495c82a70a9b3d1613", + "reference": "5cea2eebf11ca4bc6c2f20495c82a70a9b3d1613", "shasum": "" }, "require": { "ext-json": "*", - "firebase/php-jwt": "^6.4", + "firebase/php-jwt": "^6.4|^7.0", "guzzlehttp/guzzle": "^6.0|^7.0", - "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", - "illuminate/http": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", - "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", - "league/oauth1-client": "^1.10.1", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/http": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "league/oauth1-client": "^1.11", "php": "^7.2|^8.0", "phpseclib/phpseclib": "^3.0" }, "require-dev": { "mockery/mockery": "^1.0", - "orchestra/testbench": "^4.0|^5.0|^6.0|^7.0|^8.0|^9.0", - "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^8.0|^9.3|^10.4" + "orchestra/testbench": "^4.18|^5.20|^6.47|^7.55|^8.36|^9.15|^10.8", + "phpstan/phpstan": "^1.12.23", + "phpunit/phpunit": "^8.0|^9.3|^10.4|^11.5|^12.0" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - }, "laravel": { - "providers": [ - "Laravel\\Socialite\\SocialiteServiceProvider" - ], "aliases": { "Socialite": "Laravel\\Socialite\\Facades\\Socialite" - } + }, + "providers": [ + "Laravel\\Socialite\\SocialiteServiceProvider" + ] + }, + "branch-alias": { + "dev-master": "5.x-dev" } }, "autoload": { @@ -2397,37 +2224,37 @@ "issues": "https://github.com/laravel/socialite/issues", "source": "https://github.com/laravel/socialite" }, - "time": "2024-09-03T09:46:57+00:00" + "time": "2026-01-10T16:07:28+00:00" }, { "name": "laravel/tinker", - "version": "v2.10.0", + "version": "v2.11.0", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "ba4d51eb56de7711b3a37d63aa0643e99a339ae5" + "reference": "3d34b97c9a1747a81a3fde90482c092bd8b66468" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/ba4d51eb56de7711b3a37d63aa0643e99a339ae5", - "reference": "ba4d51eb56de7711b3a37d63aa0643e99a339ae5", + "url": "https://api.github.com/repos/laravel/tinker/zipball/3d34b97c9a1747a81a3fde90482c092bd8b66468", + "reference": "3d34b97c9a1747a81a3fde90482c092bd8b66468", "shasum": "" }, "require": { - "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", - "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", - "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", "php": "^7.2.5|^8.0", "psy/psysh": "^0.11.1|^0.12.0", - "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0" + "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0|^8.0" }, "require-dev": { "mockery/mockery": "~1.3.3|^1.4.2", "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^8.5.8|^9.3.3" + "phpunit/phpunit": "^8.5.8|^9.3.3|^10.0" }, "suggest": { - "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)." + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0)." }, "type": "library", "extra": { @@ -2461,22 +2288,22 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.10.0" + "source": "https://github.com/laravel/tinker/tree/v2.11.0" }, - "time": "2024-09-23T13:32:56+00:00" + "time": "2025-12-19T19:16:45+00:00" }, { "name": "league/commonmark", - "version": "2.5.3", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "b650144166dfa7703e62a22e493b853b58d874b0" + "reference": "4efa10c1e56488e658d10adf7b7b7dcd19940bfb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/b650144166dfa7703e62a22e493b853b58d874b0", - "reference": "b650144166dfa7703e62a22e493b853b58d874b0", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/4efa10c1e56488e658d10adf7b7b7dcd19940bfb", + "reference": "4efa10c1e56488e658d10adf7b7b7dcd19940bfb", "shasum": "" }, "require": { @@ -2501,10 +2328,11 @@ "phpstan/phpstan": "^1.8.2", "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", "scrutinizer/ocular": "^1.8.1", - "symfony/finder": "^5.3 | ^6.0 || ^7.0", - "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 || ^7.0", + "symfony/finder": "^5.3 | ^6.0 | ^7.0", + "symfony/process": "^5.4 | ^6.0 | ^7.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 | ^7.0", "unleashedtech/php-coding-standard": "^3.1.1", - "vimeo/psalm": "^4.24.0 || ^5.0.0" + "vimeo/psalm": "^4.24.0 || ^5.0.0 || ^6.0.0" }, "suggest": { "symfony/yaml": "v2.3+ required if using the Front Matter extension" @@ -2512,7 +2340,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.6-dev" + "dev-main": "2.9-dev" } }, "autoload": { @@ -2569,7 +2397,7 @@ "type": "tidelift" } ], - "time": "2024-08-16T11:46:16+00:00" + "time": "2025-11-26T21:48:24+00:00" }, { "name": "league/config", @@ -2655,16 +2483,16 @@ }, { "name": "league/flysystem", - "version": "3.29.0", + "version": "3.31.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "0adc0d9a51852e170e0028a60bd271726626d3f0" + "reference": "1717e0b3642b0df65ecb0cc89cdd99fa840672ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/0adc0d9a51852e170e0028a60bd271726626d3f0", - "reference": "0adc0d9a51852e170e0028a60bd271726626d3f0", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/1717e0b3642b0df65ecb0cc89cdd99fa840672ff", + "reference": "1717e0b3642b0df65ecb0cc89cdd99fa840672ff", "shasum": "" }, "require": { @@ -2688,13 +2516,13 @@ "composer/semver": "^3.0", "ext-fileinfo": "*", "ext-ftp": "*", - "ext-mongodb": "^1.3", + "ext-mongodb": "^1.3|^2", "ext-zip": "*", "friendsofphp/php-cs-fixer": "^3.5", "google/cloud-storage": "^1.23", "guzzlehttp/psr7": "^2.6", "microsoft/azure-storage-blob": "^1.1", - "mongodb/mongodb": "^1.2", + "mongodb/mongodb": "^1.2|^2", "phpseclib/phpseclib": "^3.0.36", "phpstan/phpstan": "^1.10", "phpunit/phpunit": "^9.5.11|^10.0", @@ -2732,22 +2560,22 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.29.0" + "source": "https://github.com/thephpleague/flysystem/tree/3.31.0" }, - "time": "2024-09-29T11:59:11+00:00" + "time": "2026-01-23T15:38:47+00:00" }, { "name": "league/flysystem-local", - "version": "3.29.0", + "version": "3.31.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-local.git", - "reference": "e0e8d52ce4b2ed154148453d321e97c8e931bd27" + "reference": "2f669db18a4c20c755c2bb7d3a7b0b2340488079" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/e0e8d52ce4b2ed154148453d321e97c8e931bd27", - "reference": "e0e8d52ce4b2ed154148453d321e97c8e931bd27", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/2f669db18a4c20c755c2bb7d3a7b0b2340488079", + "reference": "2f669db18a4c20c755c2bb7d3a7b0b2340488079", "shasum": "" }, "require": { @@ -2781,9 +2609,9 @@ "local" ], "support": { - "source": "https://github.com/thephpleague/flysystem-local/tree/3.29.0" + "source": "https://github.com/thephpleague/flysystem-local/tree/3.31.0" }, - "time": "2024-08-09T21:24:39+00:00" + "time": "2026-01-23T15:30:45+00:00" }, { "name": "league/mime-type-detection", @@ -2843,16 +2671,16 @@ }, { "name": "league/oauth1-client", - "version": "v1.10.1", + "version": "v1.11.0", "source": { "type": "git", "url": "https://github.com/thephpleague/oauth1-client.git", - "reference": "d6365b901b5c287dd41f143033315e2f777e1167" + "reference": "f9c94b088837eb1aae1ad7c4f23eb65cc6993055" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/oauth1-client/zipball/d6365b901b5c287dd41f143033315e2f777e1167", - "reference": "d6365b901b5c287dd41f143033315e2f777e1167", + "url": "https://api.github.com/repos/thephpleague/oauth1-client/zipball/f9c94b088837eb1aae1ad7c4f23eb65cc6993055", + "reference": "f9c94b088837eb1aae1ad7c4f23eb65cc6993055", "shasum": "" }, "require": { @@ -2913,180 +2741,9 @@ ], "support": { "issues": "https://github.com/thephpleague/oauth1-client/issues", - "source": "https://github.com/thephpleague/oauth1-client/tree/v1.10.1" + "source": "https://github.com/thephpleague/oauth1-client/tree/v1.11.0" }, - "time": "2022-04-15T14:02:14+00:00" - }, - { - "name": "league/uri", - "version": "6.8.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/uri.git", - "reference": "a700b4656e4c54371b799ac61e300ab25a2d1d39" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri/zipball/a700b4656e4c54371b799ac61e300ab25a2d1d39", - "reference": "a700b4656e4c54371b799ac61e300ab25a2d1d39", - "shasum": "" - }, - "require": { - "ext-json": "*", - "league/uri-interfaces": "^2.3", - "php": "^8.1", - "psr/http-message": "^1.0.1" - }, - "conflict": { - "league/uri-schemes": "^1.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^v3.9.5", - "nyholm/psr7": "^1.5.1", - "php-http/psr7-integration-tests": "^1.1.1", - "phpbench/phpbench": "^1.2.6", - "phpstan/phpstan": "^1.8.5", - "phpstan/phpstan-deprecation-rules": "^1.0", - "phpstan/phpstan-phpunit": "^1.1.1", - "phpstan/phpstan-strict-rules": "^1.4.3", - "phpunit/phpunit": "^9.5.24", - "psr/http-factory": "^1.0.1" - }, - "suggest": { - "ext-fileinfo": "Needed to create Data URI from a filepath", - "ext-intl": "Needed to improve host validation", - "league/uri-components": "Needed to easily manipulate URI objects", - "psr/http-factory": "Needed to use the URI factory" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.x-dev" - } - }, - "autoload": { - "psr-4": { - "League\\Uri\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ignace Nyamagana Butera", - "email": "nyamsprod@gmail.com", - "homepage": "https://nyamsprod.com" - } - ], - "description": "URI manipulation library", - "homepage": "https://uri.thephpleague.com", - "keywords": [ - "data-uri", - "file-uri", - "ftp", - "hostname", - "http", - "https", - "middleware", - "parse_str", - "parse_url", - "psr-7", - "query-string", - "querystring", - "rfc3986", - "rfc3987", - "rfc6570", - "uri", - "uri-template", - "url", - "ws" - ], - "support": { - "docs": "https://uri.thephpleague.com", - "forum": "https://thephpleague.slack.com", - "issues": "https://github.com/thephpleague/uri/issues", - "source": "https://github.com/thephpleague/uri/tree/6.8.0" - }, - "funding": [ - { - "url": "https://github.com/sponsors/nyamsprod", - "type": "github" - } - ], - "time": "2022-09-13T19:58:47+00:00" - }, - { - "name": "league/uri-interfaces", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/uri-interfaces.git", - "reference": "00e7e2943f76d8cb50c7dfdc2f6dee356e15e383" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/00e7e2943f76d8cb50c7dfdc2f6dee356e15e383", - "reference": "00e7e2943f76d8cb50c7dfdc2f6dee356e15e383", - "shasum": "" - }, - "require": { - "ext-json": "*", - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.19", - "phpstan/phpstan": "^0.12.90", - "phpstan/phpstan-phpunit": "^0.12.19", - "phpstan/phpstan-strict-rules": "^0.12.9", - "phpunit/phpunit": "^8.5.15 || ^9.5" - }, - "suggest": { - "ext-intl": "to use the IDNA feature", - "symfony/intl": "to use the IDNA feature via Symfony Polyfill" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "League\\Uri\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ignace Nyamagana Butera", - "email": "nyamsprod@gmail.com", - "homepage": "https://nyamsprod.com" - } - ], - "description": "Common interface for URI representation", - "homepage": "http://github.com/thephpleague/uri-interfaces", - "keywords": [ - "rfc3986", - "rfc3987", - "uri", - "url" - ], - "support": { - "issues": "https://github.com/thephpleague/uri-interfaces/issues", - "source": "https://github.com/thephpleague/uri-interfaces/tree/2.3.0" - }, - "funding": [ - { - "url": "https://github.com/sponsors/nyamsprod", - "type": "github" - } - ], - "time": "2021-06-28T04:27:21+00:00" + "time": "2024-12-10T19:59:05+00:00" }, { "name": "livewire/livewire", @@ -3122,12 +2779,12 @@ "type": "library", "extra": { "laravel": { - "providers": [ - "Livewire\\LivewireServiceProvider" - ], "aliases": { "Livewire": "Livewire\\Livewire" - } + }, + "providers": [ + "Livewire\\LivewireServiceProvider" + ] } }, "autoload": { @@ -3163,16 +2820,16 @@ }, { "name": "monolog/monolog", - "version": "2.9.3", + "version": "2.11.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "a30bfe2e142720dfa990d0a7e573997f5d884215" + "reference": "37308608e599f34a1a4845b16440047ec98a172a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/a30bfe2e142720dfa990d0a7e573997f5d884215", - "reference": "a30bfe2e142720dfa990d0a7e573997f5d884215", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/37308608e599f34a1a4845b16440047ec98a172a", + "reference": "37308608e599f34a1a4845b16440047ec98a172a", "shasum": "" }, "require": { @@ -3190,7 +2847,7 @@ "graylog2/gelf-php": "^1.4.2 || ^2@dev", "guzzlehttp/guzzle": "^7.4", "guzzlehttp/psr7": "^2.2", - "mongodb/mongodb": "^1.8", + "mongodb/mongodb": "^1.8 || ^2.0", "php-amqplib/php-amqplib": "~2.4 || ^3", "phpspec/prophecy": "^1.15", "phpstan/phpstan": "^1.10", @@ -3249,7 +2906,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.9.3" + "source": "https://github.com/Seldaek/monolog/tree/2.11.0" }, "funding": [ { @@ -3261,20 +2918,20 @@ "type": "tidelift" } ], - "time": "2024-04-12T20:52:51+00:00" + "time": "2026-01-01T13:05:00+00:00" }, { "name": "nesbot/carbon", - "version": "2.72.5", + "version": "2.73.0", "source": { "type": "git", - "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed" + "url": "https://github.com/CarbonPHP/carbon.git", + "reference": "9228ce90e1035ff2f0db84b40ec2e023ed802075" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/afd46589c216118ecd48ff2b95d77596af1e57ed", - "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/9228ce90e1035ff2f0db84b40ec2e023ed802075", + "reference": "9228ce90e1035ff2f0db84b40ec2e023ed802075", "shasum": "" }, "require": { @@ -3294,7 +2951,7 @@ "doctrine/orm": "^2.7 || ^3.0", "friendsofphp/php-cs-fixer": "^3.0", "kylekatarnls/multi-tester": "^2.0", - "ondrejmirtes/better-reflection": "*", + "ondrejmirtes/better-reflection": "<6", "phpmd/phpmd": "^2.9", "phpstan/extension-installer": "^1.0", "phpstan/phpstan": "^0.12.99 || ^1.7.14", @@ -3307,10 +2964,6 @@ ], "type": "library", "extra": { - "branch-alias": { - "dev-master": "3.x-dev", - "dev-2.x": "2.x-dev" - }, "laravel": { "providers": [ "Carbon\\Laravel\\ServiceProvider" @@ -3320,6 +2973,10 @@ "includes": [ "extension.neon" ] + }, + "branch-alias": { + "dev-2.x": "2.x-dev", + "dev-master": "3.x-dev" } }, "autoload": { @@ -3368,29 +3025,29 @@ "type": "tidelift" } ], - "time": "2024-06-03T19:18:41+00:00" + "time": "2025-01-08T20:10:23+00:00" }, { "name": "nette/schema", - "version": "v1.3.2", + "version": "v1.3.3", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "da801d52f0354f70a638673c4a0f04e16529431d" + "reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/da801d52f0354f70a638673c4a0f04e16529431d", - "reference": "da801d52f0354f70a638673c4a0f04e16529431d", + "url": "https://api.github.com/repos/nette/schema/zipball/2befc2f42d7c715fd9d95efc31b1081e5d765004", + "reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004", "shasum": "" }, "require": { "nette/utils": "^4.0", - "php": "8.1 - 8.4" + "php": "8.1 - 8.5" }, "require-dev": { "nette/tester": "^2.5.2", - "phpstan/phpstan-nette": "^1.0", + "phpstan/phpstan-nette": "^2.0@stable", "tracy/tracy": "^2.8" }, "type": "library", @@ -3400,6 +3057,9 @@ } }, "autoload": { + "psr-4": { + "Nette\\": "src" + }, "classmap": [ "src/" ] @@ -3428,35 +3088,35 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.3.2" + "source": "https://github.com/nette/schema/tree/v1.3.3" }, - "time": "2024-10-06T23:10:23+00:00" + "time": "2025-10-30T22:57:59+00:00" }, { "name": "nette/utils", - "version": "v4.0.5", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96" + "reference": "c99059c0315591f1a0db7ad6002000288ab8dc72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/736c567e257dbe0fcf6ce81b4d6dbe05c6899f96", - "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96", + "url": "https://api.github.com/repos/nette/utils/zipball/c99059c0315591f1a0db7ad6002000288ab8dc72", + "reference": "c99059c0315591f1a0db7ad6002000288ab8dc72", "shasum": "" }, "require": { - "php": "8.0 - 8.4" + "php": "8.2 - 8.5" }, "conflict": { "nette/finder": "<3", "nette/schema": "<1.2.2" }, "require-dev": { - "jetbrains/phpstorm-attributes": "dev-master", + "jetbrains/phpstorm-attributes": "^1.2", "nette/tester": "^2.5", - "phpstan/phpstan": "^1.0", + "phpstan/phpstan-nette": "^2.0@stable", "tracy/tracy": "^2.9" }, "suggest": { @@ -3470,10 +3130,13 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "4.1-dev" } }, "autoload": { + "psr-4": { + "Nette\\": "src" + }, "classmap": [ "src/" ] @@ -3514,22 +3177,22 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.5" + "source": "https://github.com/nette/utils/tree/v4.1.1" }, - "time": "2024-08-07T15:39:19+00:00" + "time": "2025-12-22T12:14:32+00:00" }, { "name": "nikic/php-parser", - "version": "v5.3.0", + "version": "v5.7.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "3abf7425cd284141dc5d8d14a9ee444de3345d1a" + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/3abf7425cd284141dc5d8d14a9ee444de3345d1a", - "reference": "3abf7425cd284141dc5d8d14a9ee444de3345d1a", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82", + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82", "shasum": "" }, "require": { @@ -3548,7 +3211,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-master": "5.x-dev" } }, "autoload": { @@ -3572,39 +3235,38 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.3.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0" }, - "time": "2024-09-29T13:56:26+00:00" + "time": "2025-12-06T11:56:16+00:00" }, { "name": "nunomaduro/termwind", - "version": "v1.15.1", + "version": "v1.17.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/termwind.git", - "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc" + "reference": "5369ef84d8142c1d87e4ec278711d4ece3cbf301" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/8ab0b32c8caa4a2e09700ea32925441385e4a5dc", - "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/5369ef84d8142c1d87e4ec278711d4ece3cbf301", + "reference": "5369ef84d8142c1d87e4ec278711d4ece3cbf301", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": "^8.0", - "symfony/console": "^5.3.0|^6.0.0" + "php": "^8.1", + "symfony/console": "^6.4.15" }, "require-dev": { - "ergebnis/phpstan-rules": "^1.0.", - "illuminate/console": "^8.0|^9.0", - "illuminate/support": "^8.0|^9.0", - "laravel/pint": "^1.0.0", - "pestphp/pest": "^1.21.0", - "pestphp/pest-plugin-mock": "^1.0", - "phpstan/phpstan": "^1.4.6", - "phpstan/phpstan-strict-rules": "^1.1.0", - "symfony/var-dumper": "^5.2.7|^6.0.0", + "illuminate/console": "^10.48.24", + "illuminate/support": "^10.48.24", + "laravel/pint": "^1.18.2", + "pestphp/pest": "^2.36.0", + "pestphp/pest-plugin-mock": "2.0.0", + "phpstan/phpstan": "^1.12.11", + "phpstan/phpstan-strict-rules": "^1.6.1", + "symfony/var-dumper": "^6.4.15", "thecodingmachine/phpstan-strict-rules": "^1.0.0" }, "type": "library", @@ -3644,7 +3306,7 @@ ], "support": { "issues": "https://github.com/nunomaduro/termwind/issues", - "source": "https://github.com/nunomaduro/termwind/tree/v1.15.1" + "source": "https://github.com/nunomaduro/termwind/tree/v1.17.0" }, "funding": [ { @@ -3660,28 +3322,30 @@ "type": "github" } ], - "time": "2023-02-08T01:06:31+00:00" + "time": "2024-11-21T10:36:35+00:00" }, { "name": "paragonie/constant_time_encoding", - "version": "v3.0.0", + "version": "v3.1.3", "source": { "type": "git", "url": "https://github.com/paragonie/constant_time_encoding.git", - "reference": "df1e7fde177501eee2037dd159cf04f5f301a512" + "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/df1e7fde177501eee2037dd159cf04f5f301a512", - "reference": "df1e7fde177501eee2037dd159cf04f5f301a512", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77", + "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77", "shasum": "" }, "require": { "php": "^8" }, "require-dev": { - "phpunit/phpunit": "^9", - "vimeo/psalm": "^4|^5" + "infection/infection": "^0", + "nikic/php-fuzzer": "^0", + "phpunit/phpunit": "^9|^10|^11", + "vimeo/psalm": "^4|^5|^6" }, "type": "library", "autoload": { @@ -3727,7 +3391,7 @@ "issues": "https://github.com/paragonie/constant_time_encoding/issues", "source": "https://github.com/paragonie/constant_time_encoding" }, - "time": "2024-05-08T12:36:18+00:00" + "time": "2025-09-24T15:06:41+00:00" }, { "name": "paragonie/random_compat", @@ -3781,16 +3445,16 @@ }, { "name": "phpoption/phpoption", - "version": "1.9.3", + "version": "1.9.5", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54" + "reference": "75365b91986c2405cf5e1e012c5595cd487a98be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54", - "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/75365b91986c2405cf5e1e012c5595cd487a98be", + "reference": "75365b91986c2405cf5e1e012c5595cd487a98be", "shasum": "" }, "require": { @@ -3798,7 +3462,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" + "phpunit/phpunit": "^8.5.44 || ^9.6.25 || ^10.5.53 || ^11.5.34" }, "type": "library", "extra": { @@ -3840,7 +3504,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.9.3" + "source": "https://github.com/schmittjoh/php-option/tree/1.9.5" }, "funding": [ { @@ -3852,20 +3516,20 @@ "type": "tidelift" } ], - "time": "2024-07-20T21:41:07+00:00" + "time": "2025-12-27T19:41:33+00:00" }, { "name": "phpseclib/phpseclib", - "version": "3.0.42", + "version": "3.0.48", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "db92f1b1987b12b13f248fe76c3a52cadb67bb98" + "reference": "64065a5679c50acb886e82c07aa139b0f757bb89" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/db92f1b1987b12b13f248fe76c3a52cadb67bb98", - "reference": "db92f1b1987b12b13f248fe76c3a52cadb67bb98", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/64065a5679c50acb886e82c07aa139b0f757bb89", + "reference": "64065a5679c50acb886e82c07aa139b0f757bb89", "shasum": "" }, "require": { @@ -3946,7 +3610,7 @@ ], "support": { "issues": "https://github.com/phpseclib/phpseclib/issues", - "source": "https://github.com/phpseclib/phpseclib/tree/3.0.42" + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.48" }, "funding": [ { @@ -3962,165 +3626,7 @@ "type": "tidelift" } ], - "time": "2024-09-16T03:06:04+00:00" - }, - { - "name": "phpstan/extension-installer", - "version": "1.4.3", - "source": { - "type": "git", - "url": "https://github.com/phpstan/extension-installer.git", - "reference": "85e90b3942d06b2326fba0403ec24fe912372936" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpstan/extension-installer/zipball/85e90b3942d06b2326fba0403ec24fe912372936", - "reference": "85e90b3942d06b2326fba0403ec24fe912372936", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^2.0", - "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.9.0 || ^2.0" - }, - "require-dev": { - "composer/composer": "^2.0", - "php-parallel-lint/php-parallel-lint": "^1.2.0", - "phpstan/phpstan-strict-rules": "^0.11 || ^0.12 || ^1.0" - }, - "type": "composer-plugin", - "extra": { - "class": "PHPStan\\ExtensionInstaller\\Plugin" - }, - "autoload": { - "psr-4": { - "PHPStan\\ExtensionInstaller\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Composer plugin for automatic installation of PHPStan extensions", - "keywords": [ - "dev", - "static analysis" - ], - "support": { - "issues": "https://github.com/phpstan/extension-installer/issues", - "source": "https://github.com/phpstan/extension-installer/tree/1.4.3" - }, - "time": "2024-09-04T20:21:43+00:00" - }, - { - "name": "phpstan/phpstan", - "version": "1.12.6", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "dc4d2f145a88ea7141ae698effd64d9df46527ae" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/dc4d2f145a88ea7141ae698effd64d9df46527ae", - "reference": "dc4d2f145a88ea7141ae698effd64d9df46527ae", - "shasum": "" - }, - "require": { - "php": "^7.2|^8.0" - }, - "conflict": { - "phpstan/phpstan-shim": "*" - }, - "bin": [ - "phpstan", - "phpstan.phar" - ], - "type": "library", - "autoload": { - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "PHPStan - PHP Static Analysis Tool", - "keywords": [ - "dev", - "static analysis" - ], - "support": { - "docs": "https://phpstan.org/user-guide/getting-started", - "forum": "https://github.com/phpstan/phpstan/discussions", - "issues": "https://github.com/phpstan/phpstan/issues", - "security": "https://github.com/phpstan/phpstan/security/policy", - "source": "https://github.com/phpstan/phpstan-src" - }, - "funding": [ - { - "url": "https://github.com/ondrejmirtes", - "type": "github" - }, - { - "url": "https://github.com/phpstan", - "type": "github" - } - ], - "time": "2024-10-06T15:03:59+00:00" - }, - { - "name": "phpstan/phpstan-phpunit", - "version": "1.4.0", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpstan-phpunit.git", - "reference": "f3ea021866f4263f07ca3636bf22c64be9610c11" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/f3ea021866f4263f07ca3636bf22c64be9610c11", - "reference": "f3ea021866f4263f07ca3636bf22c64be9610c11", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.11" - }, - "conflict": { - "phpunit/phpunit": "<7.0" - }, - "require-dev": { - "nikic/php-parser": "^4.13.0", - "php-parallel-lint/php-parallel-lint": "^1.2", - "phpstan/phpstan-strict-rules": "^1.5.1", - "phpunit/phpunit": "^9.5" - }, - "type": "phpstan-extension", - "extra": { - "phpstan": { - "includes": [ - "extension.neon", - "rules.neon" - ] - } - }, - "autoload": { - "psr-4": { - "PHPStan\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "PHPUnit extensions and rules for PHPStan", - "support": { - "issues": "https://github.com/phpstan/phpstan-phpunit/issues", - "source": "https://github.com/phpstan/phpstan-phpunit/tree/1.4.0" - }, - "time": "2024-04-20T06:39:00+00:00" + "time": "2025-12-15T11:51:42+00:00" }, { "name": "psr/cache", @@ -4431,16 +3937,16 @@ }, { "name": "psr/http-message", - "version": "1.1", + "version": "2.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", - "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", "shasum": "" }, "require": { @@ -4449,7 +3955,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -4464,7 +3970,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for HTTP messages", @@ -4478,9 +3984,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/1.1" + "source": "https://github.com/php-fig/http-message/tree/2.0" }, - "time": "2023-04-04T09:50:52+00:00" + "time": "2023-04-04T09:54:51+00:00" }, { "name": "psr/log", @@ -4585,16 +4091,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.4", + "version": "v0.12.18", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "2fd717afa05341b4f8152547f142cd2f130f6818" + "reference": "ddff0ac01beddc251786fe70367cd8bbdb258196" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/2fd717afa05341b4f8152547f142cd2f130f6818", - "reference": "2fd717afa05341b4f8152547f142cd2f130f6818", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/ddff0ac01beddc251786fe70367cd8bbdb258196", + "reference": "ddff0ac01beddc251786fe70367cd8bbdb258196", "shasum": "" }, "require": { @@ -4602,18 +4108,19 @@ "ext-tokenizer": "*", "nikic/php-parser": "^5.0 || ^4.0", "php": "^8.0 || ^7.4", - "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", - "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" + "symfony/console": "^8.0 || ^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^8.0 || ^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" }, "conflict": { "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.2" + "bamarni/composer-bin-plugin": "^1.2", + "composer/class-map-generator": "^1.6" }, "suggest": { + "composer/class-map-generator": "Improved tab completion performance with better class discovery.", "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", - "ext-pdo-sqlite": "The doc command requires SQLite to work.", "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." }, "bin": [ @@ -4621,12 +4128,12 @@ ], "type": "library", "extra": { - "branch-alias": { - "dev-main": "0.12.x-dev" - }, "bamarni-bin": { "bin-links": false, "forward-command": false + }, + "branch-alias": { + "dev-main": "0.12.x-dev" } }, "autoload": { @@ -4644,12 +4151,11 @@ "authors": [ { "name": "Justin Hileman", - "email": "justin@justinhileman.info", - "homepage": "http://justinhileman.com" + "email": "justin@justinhileman.info" } ], "description": "An interactive shell for modern PHP.", - "homepage": "http://psysh.org", + "homepage": "https://psysh.org", "keywords": [ "REPL", "console", @@ -4658,9 +4164,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.4" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.18" }, - "time": "2024-06-10T01:18:23+00:00" + "time": "2025-12-17T14:35:46+00:00" }, { "name": "ralouphie/getallheaders", @@ -4708,16 +4214,16 @@ }, { "name": "ramsey/collection", - "version": "2.0.0", + "version": "2.1.1", "source": { "type": "git", "url": "https://github.com/ramsey/collection.git", - "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5" + "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", - "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", + "url": "https://api.github.com/repos/ramsey/collection/zipball/344572933ad0181accbf4ba763e85a0306a8c5e2", + "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2", "shasum": "" }, "require": { @@ -4725,25 +4231,22 @@ }, "require-dev": { "captainhook/plugin-composer": "^5.3", - "ergebnis/composer-normalize": "^2.28.3", - "fakerphp/faker": "^1.21", + "ergebnis/composer-normalize": "^2.45", + "fakerphp/faker": "^1.24", "hamcrest/hamcrest-php": "^2.0", - "jangregor/phpstan-prophecy": "^1.0", - "mockery/mockery": "^1.5", + "jangregor/phpstan-prophecy": "^2.1", + "mockery/mockery": "^1.6", "php-parallel-lint/php-console-highlighter": "^1.0", - "php-parallel-lint/php-parallel-lint": "^1.3", - "phpcsstandards/phpcsutils": "^1.0.0-rc1", - "phpspec/prophecy-phpunit": "^2.0", - "phpstan/extension-installer": "^1.2", - "phpstan/phpstan": "^1.9", - "phpstan/phpstan-mockery": "^1.1", - "phpstan/phpstan-phpunit": "^1.3", - "phpunit/phpunit": "^9.5", - "psalm/plugin-mockery": "^1.1", - "psalm/plugin-phpunit": "^0.18.4", - "ramsey/coding-standard": "^2.0.3", - "ramsey/conventional-commits": "^1.3", - "vimeo/psalm": "^5.4" + "php-parallel-lint/php-parallel-lint": "^1.4", + "phpspec/prophecy-phpunit": "^2.3", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-mockery": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^10.5", + "ramsey/coding-standard": "^2.3", + "ramsey/conventional-commits": "^1.6", + "roave/security-advisories": "dev-latest" }, "type": "library", "extra": { @@ -4781,37 +4284,26 @@ ], "support": { "issues": "https://github.com/ramsey/collection/issues", - "source": "https://github.com/ramsey/collection/tree/2.0.0" + "source": "https://github.com/ramsey/collection/tree/2.1.1" }, - "funding": [ - { - "url": "https://github.com/ramsey", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", - "type": "tidelift" - } - ], - "time": "2022-12-31T21:50:55+00:00" + "time": "2025-03-22T05:38:12+00:00" }, { "name": "ramsey/uuid", - "version": "4.7.6", + "version": "4.9.2", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "91039bc1faa45ba123c4328958e620d382ec7088" + "reference": "8429c78ca35a09f27565311b98101e2826affde0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088", - "reference": "91039bc1faa45ba123c4328958e620d382ec7088", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/8429c78ca35a09f27565311b98101e2826affde0", + "reference": "8429c78ca35a09f27565311b98101e2826affde0", "shasum": "" }, "require": { - "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12", - "ext-json": "*", + "brick/math": "^0.8.16 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14", "php": "^8.0", "ramsey/collection": "^1.2 || ^2.0" }, @@ -4819,26 +4311,23 @@ "rhumsaa/uuid": "self.version" }, "require-dev": { - "captainhook/captainhook": "^5.10", + "captainhook/captainhook": "^5.25", "captainhook/plugin-composer": "^5.3", - "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", - "doctrine/annotations": "^1.8", - "ergebnis/composer-normalize": "^2.15", - "mockery/mockery": "^1.3", + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "ergebnis/composer-normalize": "^2.47", + "mockery/mockery": "^1.6", "paragonie/random-lib": "^2", - "php-mock/php-mock": "^2.2", - "php-mock/php-mock-mockery": "^1.3", - "php-parallel-lint/php-parallel-lint": "^1.1", - "phpbench/phpbench": "^1.0", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-mockery": "^1.1", - "phpstan/phpstan-phpunit": "^1.1", - "phpunit/phpunit": "^8.5 || ^9", - "ramsey/composer-repl": "^1.4", - "slevomat/coding-standard": "^8.4", - "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "^4.9" + "php-mock/php-mock": "^2.6", + "php-mock/php-mock-mockery": "^1.5", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpbench/phpbench": "^1.2.14", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-mockery": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^9.6", + "slevomat/coding-standard": "^8.18", + "squizlabs/php_codesniffer": "^3.13" }, "suggest": { "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", @@ -4873,19 +4362,9 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.7.6" + "source": "https://github.com/ramsey/uuid/tree/4.9.2" }, - "funding": [ - { - "url": "https://github.com/ramsey", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", - "type": "tidelift" - } - ], - "time": "2024-04-27T21:32:50+00:00" + "time": "2025-12-14T04:43:48+00:00" }, { "name": "rappasoft/laravel-livewire-tables", @@ -4989,12 +4468,12 @@ "type": "library", "extra": { "laravel": { - "providers": [ - "SimpleSoftwareIO\\QrCode\\QrCodeServiceProvider" - ], "aliases": { "QrCode": "SimpleSoftwareIO\\QrCode\\Facades\\QrCode" - } + }, + "providers": [ + "SimpleSoftwareIO\\QrCode\\QrCodeServiceProvider" + ] } }, "autoload": { @@ -5029,21 +4508,21 @@ }, { "name": "spatie/db-dumper", - "version": "3.7.0", + "version": "3.8.3", "source": { "type": "git", "url": "https://github.com/spatie/db-dumper.git", - "reference": "22553ab8c34a9bb70645cb9bc2d9f236f3135705" + "reference": "eac3221fbe27fac51f388600d27b67b1b079406e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/db-dumper/zipball/22553ab8c34a9bb70645cb9bc2d9f236f3135705", - "reference": "22553ab8c34a9bb70645cb9bc2d9f236f3135705", + "url": "https://api.github.com/repos/spatie/db-dumper/zipball/eac3221fbe27fac51f388600d27b67b1b079406e", + "reference": "eac3221fbe27fac51f388600d27b67b1b079406e", "shasum": "" }, "require": { "php": "^8.0", - "symfony/process": "^5.0|^6.0|^7.0" + "symfony/process": "^5.0|^6.0|^7.0|^8.0" }, "require-dev": { "pestphp/pest": "^1.22" @@ -5076,7 +4555,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/db-dumper/tree/3.7.0" + "source": "https://github.com/spatie/db-dumper/tree/3.8.3" }, "funding": [ { @@ -5088,7 +4567,7 @@ "type": "github" } ], - "time": "2024-09-23T08:58:35+00:00" + "time": "2026-01-05T16:26:03+00:00" }, { "name": "spatie/laravel-backup", @@ -5191,28 +4670,29 @@ }, { "name": "spatie/laravel-package-tools", - "version": "1.16.5", + "version": "1.92.7", "source": { "type": "git", "url": "https://github.com/spatie/laravel-package-tools.git", - "reference": "c7413972cf22ffdff97b68499c22baa04eddb6a2" + "reference": "f09a799850b1ed765103a4f0b4355006360c49a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/c7413972cf22ffdff97b68499c22baa04eddb6a2", - "reference": "c7413972cf22ffdff97b68499c22baa04eddb6a2", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/f09a799850b1ed765103a4f0b4355006360c49a5", + "reference": "f09a799850b1ed765103a4f0b4355006360c49a5", "shasum": "" }, "require": { - "illuminate/contracts": "^9.28|^10.0|^11.0", + "illuminate/contracts": "^9.28|^10.0|^11.0|^12.0", "php": "^8.0" }, "require-dev": { "mockery/mockery": "^1.5", - "orchestra/testbench": "^7.7|^8.0", - "pestphp/pest": "^1.22", - "phpunit/phpunit": "^9.5.24", - "spatie/pest-plugin-test-time": "^1.1" + "orchestra/testbench": "^7.7|^8.0|^9.0|^10.0", + "pestphp/pest": "^1.23|^2.1|^3.1", + "phpunit/php-code-coverage": "^9.0|^10.0|^11.0", + "phpunit/phpunit": "^9.5.24|^10.5|^11.5", + "spatie/pest-plugin-test-time": "^1.1|^2.2" }, "type": "library", "autoload": { @@ -5239,7 +4719,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-package-tools/issues", - "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.5" + "source": "https://github.com/spatie/laravel-package-tools/tree/1.92.7" }, "funding": [ { @@ -5247,31 +4727,31 @@ "type": "github" } ], - "time": "2024-08-27T18:56:10+00:00" + "time": "2025-07-17T15:46:43+00:00" }, { "name": "spatie/laravel-referer", - "version": "1.9.0", + "version": "1.9.1", "source": { "type": "git", "url": "https://github.com/spatie/laravel-referer.git", - "reference": "127ad9752f7bca860291ce38873d0985bd831b7c" + "reference": "0f37bc6509483ae0f729a6f97ac96f1f8f009c72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-referer/zipball/127ad9752f7bca860291ce38873d0985bd831b7c", - "reference": "127ad9752f7bca860291ce38873d0985bd831b7c", + "url": "https://api.github.com/repos/spatie/laravel-referer/zipball/0f37bc6509483ae0f729a6f97ac96f1f8f009c72", + "reference": "0f37bc6509483ae0f729a6f97ac96f1f8f009c72", "shasum": "" }, "require": { - "illuminate/contracts": "^8.73|^9.0|^10.0|^11.0", - "illuminate/http": "^8.73|^9.0|^10.0|^11.0", - "illuminate/support": "^8.73|^9.0|^10.0|^11.0", + "illuminate/contracts": "^8.73|^9.0|^10.0|^11.0|^12.0", + "illuminate/http": "^8.73|^9.0|^10.0|^11.0|^12.0", + "illuminate/support": "^8.73|^9.0|^10.0|^11.0|^12.0", "php": "^7.4|^8.0" }, "require-dev": { - "orchestra/testbench": "^6.23|^7.0|^8.0|^9.0", - "phpunit/phpunit": "^9.5|^10.5" + "orchestra/testbench": "^6.23|^7.0|^8.0|^9.0|^10.0", + "phpunit/phpunit": "^9.5|^10.5|^11.5.3" }, "type": "library", "extra": { @@ -5306,7 +4786,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-referer/issues", - "source": "https://github.com/spatie/laravel-referer/tree/1.9.0" + "source": "https://github.com/spatie/laravel-referer/tree/1.9.1" }, "funding": [ { @@ -5318,7 +4798,7 @@ "type": "github" } ], - "time": "2024-04-08T07:56:33+00:00" + "time": "2025-02-20T13:41:02+00:00" }, { "name": "spatie/laravel-signal-aware-command", @@ -5351,12 +4831,12 @@ "type": "library", "extra": { "laravel": { - "providers": [ - "Spatie\\SignalAwareCommand\\SignalAwareCommandServiceProvider" - ], "aliases": { "Signal": "Spatie\\SignalAwareCommand\\Facades\\Signal" - } + }, + "providers": [ + "Spatie\\SignalAwareCommand\\SignalAwareCommandServiceProvider" + ] } }, "autoload": { @@ -5396,16 +4876,16 @@ }, { "name": "spatie/temporary-directory", - "version": "2.2.1", + "version": "2.3.1", "source": { "type": "git", "url": "https://github.com/spatie/temporary-directory.git", - "reference": "76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a" + "reference": "662e481d6ec07ef29fd05010433428851a42cd07" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a", - "reference": "76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a", + "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/662e481d6ec07ef29fd05010433428851a42cd07", + "reference": "662e481d6ec07ef29fd05010433428851a42cd07", "shasum": "" }, "require": { @@ -5441,7 +4921,7 @@ ], "support": { "issues": "https://github.com/spatie/temporary-directory/issues", - "source": "https://github.com/spatie/temporary-directory/tree/2.2.1" + "source": "https://github.com/spatie/temporary-directory/tree/2.3.1" }, "funding": [ { @@ -5453,20 +4933,20 @@ "type": "github" } ], - "time": "2023-12-25T11:46:58+00:00" + "time": "2026-01-12T07:42:22+00:00" }, { "name": "symfony/console", - "version": "v6.4.12", + "version": "v6.4.32", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "72d080eb9edf80e36c19be61f72c98ed8273b765" + "reference": "0bc2199c6c1f05276b05956f1ddc63f6d7eb5fc3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/72d080eb9edf80e36c19be61f72c98ed8273b765", - "reference": "72d080eb9edf80e36c19be61f72c98ed8273b765", + "url": "https://api.github.com/repos/symfony/console/zipball/0bc2199c6c1f05276b05956f1ddc63f6d7eb5fc3", + "reference": "0bc2199c6c1f05276b05956f1ddc63f6d7eb5fc3", "shasum": "" }, "require": { @@ -5531,7 +5011,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.12" + "source": "https://github.com/symfony/console/tree/v6.4.32" }, "funding": [ { @@ -5542,25 +5022,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-20T08:15:52+00:00" + "time": "2026-01-13T08:45:59+00:00" }, { "name": "symfony/css-selector", - "version": "v7.1.1", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "1c7cee86c6f812896af54434f8ce29c8d94f9ff4" + "reference": "ab862f478513e7ca2fe9ec117a6f01a8da6e1135" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/1c7cee86c6f812896af54434f8ce29c8d94f9ff4", - "reference": "1c7cee86c6f812896af54434f8ce29c8d94f9ff4", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/ab862f478513e7ca2fe9ec117a6f01a8da6e1135", + "reference": "ab862f478513e7ca2fe9ec117a6f01a8da6e1135", "shasum": "" }, "require": { @@ -5596,7 +5080,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v7.1.1" + "source": "https://github.com/symfony/css-selector/tree/v7.4.0" }, "funding": [ { @@ -5607,25 +5091,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2025-10-30T13:39:42+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.5.0", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", "shasum": "" }, "require": { @@ -5633,12 +5121,12 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.5-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" } }, "autoload": { @@ -5663,7 +5151,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" }, "funding": [ { @@ -5679,20 +5167,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/error-handler", - "version": "v6.4.10", + "version": "v6.4.32", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "231f1b2ee80f72daa1972f7340297d67439224f0" + "reference": "8c18400784fcb014dc73c8d5601a9576af7f8ad4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/231f1b2ee80f72daa1972f7340297d67439224f0", - "reference": "231f1b2ee80f72daa1972f7340297d67439224f0", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/8c18400784fcb014dc73c8d5601a9576af7f8ad4", + "reference": "8c18400784fcb014dc73c8d5601a9576af7f8ad4", "shasum": "" }, "require": { @@ -5738,7 +5226,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.10" + "source": "https://github.com/symfony/error-handler/tree/v6.4.32" }, "funding": [ { @@ -5749,25 +5237,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-07-26T12:30:32+00:00" + "time": "2026-01-19T19:28:19+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.1.1", + "version": "v7.4.4", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7" + "reference": "dc2c0eba1af673e736bb851d747d266108aea746" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7", - "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/dc2c0eba1af673e736bb851d747d266108aea746", + "reference": "dc2c0eba1af673e736bb851d747d266108aea746", "shasum": "" }, "require": { @@ -5784,13 +5276,14 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/error-handler": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/error-handler": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/framework-bundle": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^6.4|^7.0" + "symfony/stopwatch": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -5818,7 +5311,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.1.1" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.4.4" }, "funding": [ { @@ -5829,25 +5322,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2026-01-05T11:45:34+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.5.0", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50" + "reference": "59eb412e93815df44f05f342958efa9f46b1e586" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50", - "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586", + "reference": "59eb412e93815df44f05f342958efa9f46b1e586", "shasum": "" }, "require": { @@ -5856,12 +5353,12 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.5-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" } }, "autoload": { @@ -5894,7 +5391,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.0" }, "funding": [ { @@ -5910,20 +5407,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/finder", - "version": "v6.4.11", + "version": "v6.4.32", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453" + "reference": "3ec24885c1d9ababbb9c8f63bb42fea3c8c9b6de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/d7eb6daf8cd7e9ac4976e9576b32042ef7253453", - "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453", + "url": "https://api.github.com/repos/symfony/finder/zipball/3ec24885c1d9ababbb9c8f63bb42fea3c8c9b6de", + "reference": "3ec24885c1d9ababbb9c8f63bb42fea3c8c9b6de", "shasum": "" }, "require": { @@ -5958,7 +5455,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.11" + "source": "https://github.com/symfony/finder/tree/v6.4.32" }, "funding": [ { @@ -5969,32 +5466,36 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-08-13T14:27:37+00:00" + "time": "2026-01-10T14:09:00+00:00" }, { "name": "symfony/http-client", - "version": "v5.4.44", + "version": "v5.4.49", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "58d3dc6bfa5fb37137e32d52ddc202ba4d1cea04" + "reference": "d77d8e212cde7b5c4a64142bf431522f19487c28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/58d3dc6bfa5fb37137e32d52ddc202ba4d1cea04", - "reference": "58d3dc6bfa5fb37137e32d52ddc202ba4d1cea04", + "url": "https://api.github.com/repos/symfony/http-client/zipball/d77d8e212cde7b5c4a64142bf431522f19487c28", + "reference": "d77d8e212cde7b5c4a64142bf431522f19487c28", "shasum": "" }, "require": { "php": ">=7.2.5", "psr/log": "^1|^2|^3", "symfony/deprecation-contracts": "^2.1|^3", - "symfony/http-client-contracts": "^2.5.3", + "symfony/http-client-contracts": "^2.5.4", "symfony/polyfill-php73": "^1.11", "symfony/polyfill-php80": "^1.16", "symfony/service-contracts": "^1.0|^2|^3" @@ -6049,7 +5550,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v5.4.44" + "source": "https://github.com/symfony/http-client/tree/v5.4.49" }, "funding": [ { @@ -6065,20 +5566,20 @@ "type": "tidelift" } ], - "time": "2024-09-16T14:04:28+00:00" + "time": "2024-11-28T08:37:04+00:00" }, { "name": "symfony/http-client-contracts", - "version": "v2.5.3", + "version": "v2.5.5", "source": { "type": "git", "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "e5cc97c2b4a4db0ba26bebc154f1426e3fd1d2f1" + "reference": "48ef1d0a082885877b664332b9427662065a360c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/e5cc97c2b4a4db0ba26bebc154f1426e3fd1d2f1", - "reference": "e5cc97c2b4a4db0ba26bebc154f1426e3fd1d2f1", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/48ef1d0a082885877b664332b9427662065a360c", + "reference": "48ef1d0a082885877b664332b9427662065a360c", "shasum": "" }, "require": { @@ -6089,12 +5590,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "2.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -6127,7 +5628,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.3" + "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.5" }, "funding": [ { @@ -6143,20 +5644,20 @@ "type": "tidelift" } ], - "time": "2024-03-26T19:42:53+00:00" + "time": "2024-11-28T08:37:04+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.4.12", + "version": "v6.4.32", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "133ac043875f59c26c55e79cf074562127cce4d2" + "reference": "a7c652d0d0a6be8fbf9dead2e36f31e46c482adf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/133ac043875f59c26c55e79cf074562127cce4d2", - "reference": "133ac043875f59c26c55e79cf074562127cce4d2", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/a7c652d0d0a6be8fbf9dead2e36f31e46c482adf", + "reference": "a7c652d0d0a6be8fbf9dead2e36f31e46c482adf", "shasum": "" }, "require": { @@ -6166,12 +5667,12 @@ "symfony/polyfill-php83": "^1.27" }, "conflict": { - "symfony/cache": "<6.3" + "symfony/cache": "<6.4.12|>=7.0,<7.1.5" }, "require-dev": { "doctrine/dbal": "^2.13.1|^3|^4", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.3|^7.0", + "symfony/cache": "^6.4.12|^7.1.5", "symfony/dependency-injection": "^5.4|^6.0|^7.0", "symfony/expression-language": "^5.4|^6.0|^7.0", "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", @@ -6204,7 +5705,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.12" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.32" }, "funding": [ { @@ -6215,25 +5716,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-20T08:18:25+00:00" + "time": "2026-01-09T09:10:39+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.12", + "version": "v6.4.32", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "96df83d51b5f78804f70c093b97310794fd6257b" + "reference": "e40d93fce00d928a553ba0f323da4b3f8506f858" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/96df83d51b5f78804f70c093b97310794fd6257b", - "reference": "96df83d51b5f78804f70c093b97310794fd6257b", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e40d93fce00d928a553ba0f323da4b3f8506f858", + "reference": "e40d93fce00d928a553ba0f323da4b3f8506f858", "shasum": "" }, "require": { @@ -6318,7 +5823,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.12" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.32" }, "funding": [ { @@ -6329,25 +5834,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-21T06:02:57+00:00" + "time": "2026-01-24T16:04:03+00:00" }, { "name": "symfony/mailer", - "version": "v6.4.12", + "version": "v6.4.31", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "b6a25408c569ae2366b3f663a4edad19420a9c26" + "reference": "8835f93333474780fda1b987cae37e33c3e026ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/b6a25408c569ae2366b3f663a4edad19420a9c26", - "reference": "b6a25408c569ae2366b3f663a4edad19420a9c26", + "url": "https://api.github.com/repos/symfony/mailer/zipball/8835f93333474780fda1b987cae37e33c3e026ca", + "reference": "8835f93333474780fda1b987cae37e33c3e026ca", "shasum": "" }, "require": { @@ -6398,7 +5907,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.4.12" + "source": "https://github.com/symfony/mailer/tree/v6.4.31" }, "funding": [ { @@ -6409,25 +5918,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-08T12:30:05+00:00" + "time": "2025-12-12T07:33:25+00:00" }, { "name": "symfony/mime", - "version": "v6.4.12", + "version": "v6.4.32", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "abe16ee7790b16aa525877419deb0f113953f0e1" + "reference": "7409686879ca36c09fc970a5fa8ff6e93504dba4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/abe16ee7790b16aa525877419deb0f113953f0e1", - "reference": "abe16ee7790b16aa525877419deb0f113953f0e1", + "url": "https://api.github.com/repos/symfony/mime/zipball/7409686879ca36c09fc970a5fa8ff6e93504dba4", + "reference": "7409686879ca36c09fc970a5fa8ff6e93504dba4", "shasum": "" }, "require": { @@ -6483,7 +5996,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.12" + "source": "https://github.com/symfony/mime/tree/v6.4.32" }, "funding": [ { @@ -6494,16 +6007,20 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-20T08:18:25+00:00" + "time": "2026-01-04T11:53:14+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -6527,8 +6044,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -6562,7 +6079,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" }, "funding": [ { @@ -6573,6 +6090,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -6582,16 +6103,16 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", - "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70", + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70", "shasum": "" }, "require": { @@ -6603,8 +6124,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -6640,7 +6161,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0" }, "funding": [ { @@ -6651,25 +6172,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2025-06-27T09:58:17+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773" + "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c36586dcf89a12315939e00ec9b4474adcb1d773", - "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/9614ac4d8061dc257ecc64cba1b140873dce8ad3", + "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3", "shasum": "" }, "require": { @@ -6682,8 +6207,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -6723,7 +6248,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.33.0" }, "funding": [ { @@ -6734,16 +6259,20 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2024-09-10T14:38:51+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -6764,8 +6293,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -6804,7 +6333,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" }, "funding": [ { @@ -6815,6 +6344,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -6824,19 +6357,20 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", "shasum": "" }, "require": { + "ext-iconv": "*", "php": ">=7.2" }, "provide": { @@ -6848,8 +6382,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -6884,7 +6418,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" }, "funding": [ { @@ -6895,16 +6429,20 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2024-12-23T08:48:59+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", @@ -6922,8 +6460,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -6960,7 +6498,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.33.0" }, "funding": [ { @@ -6971,6 +6509,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -6980,16 +6522,16 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608", + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608", "shasum": "" }, "require": { @@ -6998,8 +6540,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -7040,7 +6582,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0" }, "funding": [ { @@ -7051,25 +6593,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2025-01-02T08:10:11+00:00" }, { "name": "symfony/polyfill-php83", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491" + "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491", - "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5", + "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5", "shasum": "" }, "require": { @@ -7078,8 +6624,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -7116,7 +6662,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.33.0" }, "funding": [ { @@ -7127,16 +6673,20 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2025-07-08T02:45:35+00:00" }, { "name": "symfony/polyfill-uuid", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-uuid.git", @@ -7160,8 +6710,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -7195,7 +6745,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/polyfill-uuid/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.33.0" }, "funding": [ { @@ -7206,6 +6756,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -7215,16 +6769,16 @@ }, { "name": "symfony/process", - "version": "v6.4.12", + "version": "v6.4.32", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "3f94e5f13ff58df371a7ead461b6e8068900fbb3" + "reference": "c593135be689b21e6164b1e8f6f5dbf1506b065c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/3f94e5f13ff58df371a7ead461b6e8068900fbb3", - "reference": "3f94e5f13ff58df371a7ead461b6e8068900fbb3", + "url": "https://api.github.com/repos/symfony/process/zipball/c593135be689b21e6164b1e8f6f5dbf1506b065c", + "reference": "c593135be689b21e6164b1e8f6f5dbf1506b065c", "shasum": "" }, "require": { @@ -7256,7 +6810,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.12" + "source": "https://github.com/symfony/process/tree/v6.4.32" }, "funding": [ { @@ -7267,25 +6821,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-17T12:47:12+00:00" + "time": "2026-01-15T13:23:20+00:00" }, { "name": "symfony/routing", - "version": "v6.4.12", + "version": "v6.4.32", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "a7c8036bd159486228dc9be3e846a00a0dda9f9f" + "reference": "0dc6253e864e71b486e8ba4970a56ab849106ebe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/a7c8036bd159486228dc9be3e846a00a0dda9f9f", - "reference": "a7c8036bd159486228dc9be3e846a00a0dda9f9f", + "url": "https://api.github.com/repos/symfony/routing/zipball/0dc6253e864e71b486e8ba4970a56ab849106ebe", + "reference": "0dc6253e864e71b486e8ba4970a56ab849106ebe", "shasum": "" }, "require": { @@ -7339,7 +6897,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.12" + "source": "https://github.com/symfony/routing/tree/v6.4.32" }, "funding": [ { @@ -7350,25 +6908,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-20T08:32:26+00:00" + "time": "2026-01-12T08:31:19+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.5.0", + "version": "v3.6.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", - "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43", + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43", "shasum": "" }, "require": { @@ -7381,12 +6943,12 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.5-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" } }, "autoload": { @@ -7422,7 +6984,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.6.1" }, "funding": [ { @@ -7433,31 +6995,36 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2025-07-15T11:30:57+00:00" }, { "name": "symfony/string", - "version": "v7.1.5", + "version": "v7.4.4", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "d66f9c343fa894ec2037cc928381df90a7ad4306" + "reference": "1c4b10461bf2ec27537b5f36105337262f5f5d6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/d66f9c343fa894ec2037cc928381df90a7ad4306", - "reference": "d66f9c343fa894ec2037cc928381df90a7ad4306", + "url": "https://api.github.com/repos/symfony/string/zipball/1c4b10461bf2ec27537b5f36105337262f5f5d6f", + "reference": "1c4b10461bf2ec27537b5f36105337262f5f5d6f", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-grapheme": "~1.33", "symfony/polyfill-intl-normalizer": "~1.0", "symfony/polyfill-mbstring": "~1.0" }, @@ -7465,12 +7032,11 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/emoji": "^7.1", - "symfony/error-handler": "^6.4|^7.0", - "symfony/http-client": "^6.4|^7.0", - "symfony/intl": "^6.4|^7.0", + "symfony/emoji": "^7.1|^8.0", + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/intl": "^6.4|^7.0|^8.0", "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4|^7.0" + "symfony/var-exporter": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -7509,7 +7075,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.1.5" + "source": "https://github.com/symfony/string/tree/v7.4.4" }, "funding": [ { @@ -7520,25 +7086,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-20T08:28:38+00:00" + "time": "2026-01-12T10:54:30+00:00" }, { "name": "symfony/translation", - "version": "v6.4.12", + "version": "v6.4.32", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "cf8360b8352b086be620fae8342c4d96e391a489" + "reference": "d6cc8e2fdd484f2f41d25938b0e8e3915de3cfbc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/cf8360b8352b086be620fae8342c4d96e391a489", - "reference": "cf8360b8352b086be620fae8342c4d96e391a489", + "url": "https://api.github.com/repos/symfony/translation/zipball/d6cc8e2fdd484f2f41d25938b0e8e3915de3cfbc", + "reference": "d6cc8e2fdd484f2f41d25938b0e8e3915de3cfbc", "shasum": "" }, "require": { @@ -7604,7 +7174,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.12" + "source": "https://github.com/symfony/translation/tree/v6.4.32" }, "funding": [ { @@ -7615,25 +7185,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-16T06:02:54+00:00" + "time": "2026-01-12T19:15:33+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.5.0", + "version": "v3.6.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a" + "reference": "65a8bc82080447fae78373aa10f8d13b38338977" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", - "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/65a8bc82080447fae78373aa10f8d13b38338977", + "reference": "65a8bc82080447fae78373aa10f8d13b38338977", "shasum": "" }, "require": { @@ -7641,12 +7215,12 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.5-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" } }, "autoload": { @@ -7682,7 +7256,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.6.1" }, "funding": [ { @@ -7693,25 +7267,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2025-07-15T13:41:35+00:00" }, { "name": "symfony/uid", - "version": "v6.4.12", + "version": "v6.4.32", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "2f16054e0a9b194b8ca581d4a64eee3f7d4a9d4d" + "reference": "6b973c385f00341b246f697d82dc01a09107acdd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/2f16054e0a9b194b8ca581d4a64eee3f7d4a9d4d", - "reference": "2f16054e0a9b194b8ca581d4a64eee3f7d4a9d4d", + "url": "https://api.github.com/repos/symfony/uid/zipball/6b973c385f00341b246f697d82dc01a09107acdd", + "reference": "6b973c385f00341b246f697d82dc01a09107acdd", "shasum": "" }, "require": { @@ -7756,7 +7334,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v6.4.12" + "source": "https://github.com/symfony/uid/tree/v6.4.32" }, "funding": [ { @@ -7767,25 +7345,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-20T08:32:26+00:00" + "time": "2025-12-23T15:07:59+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.11", + "version": "v6.4.32", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "ee14c8254a480913268b1e3b1cba8045ed122694" + "reference": "131fc9915e0343052af5ed5040401b481ca192aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ee14c8254a480913268b1e3b1cba8045ed122694", - "reference": "ee14c8254a480913268b1e3b1cba8045ed122694", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/131fc9915e0343052af5ed5040401b481ca192aa", + "reference": "131fc9915e0343052af5ed5040401b481ca192aa", "shasum": "" }, "require": { @@ -7797,7 +7379,6 @@ "symfony/console": "<5.4" }, "require-dev": { - "ext-iconv": "*", "symfony/console": "^5.4|^6.0|^7.0", "symfony/error-handler": "^6.3|^7.0", "symfony/http-kernel": "^5.4|^6.0|^7.0", @@ -7841,7 +7422,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.11" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.32" }, "funding": [ { @@ -7852,40 +7433,46 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-08-30T16:03:21+00:00" + "time": "2026-01-01T13:34:06+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", - "version": "v2.2.7", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb" + "reference": "f0292ccf0ec75843d65027214426b6b163b48b41" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/83ee6f38df0a63106a9e4536e3060458b74ccedb", - "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/f0292ccf0ec75843d65027214426b6b163b48b41", + "reference": "f0292ccf0ec75843d65027214426b6b163b48b41", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", - "php": "^5.5 || ^7.0 || ^8.0", - "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0" + "php": "^7.4 || ^8.0", + "symfony/css-selector": "^5.4 || ^6.0 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10" + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^8.5.21 || ^9.5.10" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { @@ -7908,28 +7495,28 @@ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", "support": { "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", - "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.2.7" + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.4.0" }, - "time": "2023-12-08T13:03:43+00:00" + "time": "2025-12-02T11:56:42+00:00" }, { "name": "torann/geoip", - "version": "3.0.8", + "version": "3.0.9", "source": { "type": "git", "url": "https://github.com/Torann/laravel-geoip.git", - "reference": "22a82647d866572af7fcdf90b033188090c91504" + "reference": "1ea60c7e1a1608de3885e8cd76389cfe5c8424de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Torann/laravel-geoip/zipball/22a82647d866572af7fcdf90b033188090c91504", - "reference": "22a82647d866572af7fcdf90b033188090c91504", + "url": "https://api.github.com/repos/Torann/laravel-geoip/zipball/1ea60c7e1a1608de3885e8cd76389cfe5c8424de", + "reference": "1ea60c7e1a1608de3885e8cd76389cfe5c8424de", "shasum": "" }, "require": { - "illuminate/cache": "^8.0|^9.0|^10.0|^11.0", - "illuminate/console": "^8.0|^9.0|^10.0|^11.0", - "illuminate/support": "^8.0|^9.0|^10.0|^11.0", + "illuminate/cache": "^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/console": "^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0", "php": "^8.0|^8.1|^8.2|^8.3" }, "require-dev": { @@ -7946,16 +7533,16 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - }, "laravel": { - "providers": [ - "Torann\\GeoIP\\GeoIPServiceProvider" - ], "aliases": { "GeoIP": "Torann\\GeoIP\\Facades\\GeoIP" - } + }, + "providers": [ + "Torann\\GeoIP\\GeoIPServiceProvider" + ] + }, + "branch-alias": { + "dev-master": "1.0-dev" } }, "autoload": { @@ -7988,32 +7575,32 @@ ], "support": { "issues": "https://github.com/Torann/laravel-geoip/issues", - "source": "https://github.com/Torann/laravel-geoip/tree/3.0.8" + "source": "https://github.com/Torann/laravel-geoip/tree/3.0.9" }, - "time": "2024-07-23T12:56:44+00:00" + "time": "2025-02-25T18:24:54+00:00" }, { "name": "vlucas/phpdotenv", - "version": "v5.6.1", + "version": "v5.6.3", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2" + "reference": "955e7815d677a3eaa7075231212f2110983adecc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2", - "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/955e7815d677a3eaa7075231212f2110983adecc", + "reference": "955e7815d677a3eaa7075231212f2110983adecc", "shasum": "" }, "require": { "ext-pcre": "*", - "graham-campbell/result-type": "^1.1.3", + "graham-campbell/result-type": "^1.1.4", "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.3", - "symfony/polyfill-ctype": "^1.24", - "symfony/polyfill-mbstring": "^1.24", - "symfony/polyfill-php80": "^1.24" + "phpoption/phpoption": "^1.9.5", + "symfony/polyfill-ctype": "^1.26", + "symfony/polyfill-mbstring": "^1.26", + "symfony/polyfill-php80": "^1.26" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", @@ -8062,7 +7649,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.3" }, "funding": [ { @@ -8074,20 +7661,20 @@ "type": "tidelift" } ], - "time": "2024-07-20T21:52:34+00:00" + "time": "2025-12-27T19:49:13+00:00" }, { "name": "voku/portable-ascii", - "version": "2.0.1", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/voku/portable-ascii.git", - "reference": "b56450eed252f6801410d810c8e1727224ae0743" + "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743", - "reference": "b56450eed252f6801410d810c8e1727224ae0743", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b1d923f88091c6bf09699efcd7c8a1b1bfd7351d", + "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d", "shasum": "" }, "require": { @@ -8112,7 +7699,7 @@ "authors": [ { "name": "Lars Moelleken", - "homepage": "http://www.moelleken.org/" + "homepage": "https://www.moelleken.org/" } ], "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", @@ -8124,7 +7711,7 @@ ], "support": { "issues": "https://github.com/voku/portable-ascii/issues", - "source": "https://github.com/voku/portable-ascii/tree/2.0.1" + "source": "https://github.com/voku/portable-ascii/tree/2.0.3" }, "funding": [ { @@ -8148,65 +7735,7 @@ "type": "tidelift" } ], - "time": "2022-03-08T17:03:00+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.11.0", - "source": { - "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "php": "^7.2 || ^8.0" - }, - "conflict": { - "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<4.6.1 || 4.6.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.13" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.10-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.11.0" - }, - "time": "2022-06-03T18:03:27+00:00" + "time": "2024-11-21T01:49:47+00:00" } ], "packages-dev": [ @@ -8252,13 +7781,13 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "2.15-dev" - }, "laravel": { "providers": [ "Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider" ] + }, + "branch-alias": { + "dev-master": "2.15-dev" } }, "autoload": { @@ -8306,20 +7835,20 @@ }, { "name": "barryvdh/reflection-docblock", - "version": "v2.1.1", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/barryvdh/ReflectionDocBlock.git", - "reference": "e6811e927f0ecc37cc4deaa6627033150343e597" + "reference": "d103774cbe7e94ddee7e4870f97f727b43fe7201" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/e6811e927f0ecc37cc4deaa6627033150343e597", - "reference": "e6811e927f0ecc37cc4deaa6627033150343e597", + "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/d103774cbe7e94ddee7e4870f97f727b43fe7201", + "reference": "d103774cbe7e94ddee7e4870f97f727b43fe7201", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "require-dev": { "phpunit/phpunit": "^8.5.14|^9" @@ -8331,7 +7860,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "2.3.x-dev" } }, "autoload": { @@ -8352,36 +7881,36 @@ } ], "support": { - "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.1.1" + "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.4.0" }, - "time": "2023-06-14T05:06:27+00:00" + "time": "2025-07-17T06:07:30+00:00" }, { "name": "composer/class-map-generator", - "version": "1.4.0", + "version": "1.7.1", "source": { "type": "git", "url": "https://github.com/composer/class-map-generator.git", - "reference": "98bbf6780e56e0fd2404fe4b82eb665a0f93b783" + "reference": "8f5fa3cc214230e71f54924bd0197a3bcc705eb1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/class-map-generator/zipball/98bbf6780e56e0fd2404fe4b82eb665a0f93b783", - "reference": "98bbf6780e56e0fd2404fe4b82eb665a0f93b783", + "url": "https://api.github.com/repos/composer/class-map-generator/zipball/8f5fa3cc214230e71f54924bd0197a3bcc705eb1", + "reference": "8f5fa3cc214230e71f54924bd0197a3bcc705eb1", "shasum": "" }, "require": { "composer/pcre": "^2.1 || ^3.1", "php": "^7.2 || ^8.0", - "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7" + "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7 || ^8" }, "require-dev": { - "phpstan/phpstan": "^1.6", - "phpstan/phpstan-deprecation-rules": "^1", - "phpstan/phpstan-phpunit": "^1", - "phpstan/phpstan-strict-rules": "^1.1", + "phpstan/phpstan": "^1.12 || ^2", + "phpstan/phpstan-deprecation-rules": "^1 || ^2", + "phpstan/phpstan-phpunit": "^1 || ^2", + "phpstan/phpstan-strict-rules": "^1.1 || ^2", "phpunit/phpunit": "^8", - "symfony/filesystem": "^5.4 || ^6" + "symfony/filesystem": "^5.4 || ^6 || ^7 || ^8" }, "type": "library", "extra": { @@ -8411,7 +7940,7 @@ ], "support": { "issues": "https://github.com/composer/class-map-generator/issues", - "source": "https://github.com/composer/class-map-generator/tree/1.4.0" + "source": "https://github.com/composer/class-map-generator/tree/1.7.1" }, "funding": [ { @@ -8421,26 +7950,22 @@ { "url": "https://github.com/composer", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "time": "2024-10-03T18:14:00+00:00" + "time": "2025-12-29T13:15:25+00:00" }, { "name": "composer/pcre", - "version": "3.3.1", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4" + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/63aaeac21d7e775ff9bc9d45021e1745c97521c4", - "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4", + "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e", + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e", "shasum": "" }, "require": { @@ -8450,19 +7975,19 @@ "phpstan/phpstan": "<1.11.10" }, "require-dev": { - "phpstan/phpstan": "^1.11.10", - "phpstan/phpstan-strict-rules": "^1.1", + "phpstan/phpstan": "^1.12 || ^2", + "phpstan/phpstan-strict-rules": "^1 || ^2", "phpunit/phpunit": "^8 || ^9" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - }, "phpstan": { "includes": [ "extension.neon" ] + }, + "branch-alias": { + "dev-main": "3.x-dev" } }, "autoload": { @@ -8490,7 +8015,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.3.1" + "source": "https://github.com/composer/pcre/tree/3.3.2" }, "funding": [ { @@ -8506,7 +8031,7 @@ "type": "tidelift" } ], - "time": "2024-08-27T18:44:43+00:00" + "time": "2024-11-12T16:29:46+00:00" }, { "name": "doctrine/instantiator", @@ -8580,16 +8105,16 @@ }, { "name": "dragon-code/contracts", - "version": "2.23.0", + "version": "2.24.0", "source": { "type": "git", "url": "https://github.com/TheDragonCode/contracts.git", - "reference": "44dbad923f152e0dc2699fbac2d33b65dd6a8f7d" + "reference": "c21ea4fc0a399bd803a2805a7f2c989749083896" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/TheDragonCode/contracts/zipball/44dbad923f152e0dc2699fbac2d33b65dd6a8f7d", - "reference": "44dbad923f152e0dc2699fbac2d33b65dd6a8f7d", + "url": "https://api.github.com/repos/TheDragonCode/contracts/zipball/c21ea4fc0a399bd803a2805a7f2c989749083896", + "reference": "c21ea4fc0a399bd803a2805a7f2c989749083896", "shasum": "" }, "require": { @@ -8602,7 +8127,7 @@ "andrey-helldar/contracts": "*" }, "require-dev": { - "illuminate/database": "^10.0 || ^11.0", + "illuminate/database": "^10.0 || ^11.0 || ^12.0", "phpdocumentor/reflection-docblock": "^5.0" }, "type": "library", @@ -8635,29 +8160,25 @@ "url": "https://boosty.to/dragon-code", "type": "boosty" }, - { - "url": "https://www.donationalerts.com/r/dragon_code", - "type": "donationalerts" - }, { "url": "https://yoomoney.ru/to/410012608840929", "type": "yoomoney" } ], - "time": "2024-03-11T20:15:12+00:00" + "time": "2025-02-23T23:11:50+00:00" }, { "name": "dragon-code/pretty-array", - "version": "v4.1.0", + "version": "4.2.0", "source": { "type": "git", "url": "https://github.com/TheDragonCode/pretty-array.git", - "reference": "6c84e2454491b414efbd37985c322712cdf9012f" + "reference": "b94034d92172a5d14a578822d68b2a8f8b5388e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/TheDragonCode/pretty-array/zipball/6c84e2454491b414efbd37985c322712cdf9012f", - "reference": "6c84e2454491b414efbd37985c322712cdf9012f", + "url": "https://api.github.com/repos/TheDragonCode/pretty-array/zipball/b94034d92172a5d14a578822d68b2a8f8b5388e0", + "reference": "b94034d92172a5d14a578822d68b2a8f8b5388e0", "shasum": "" }, "require": { @@ -8668,7 +8189,7 @@ "php": "^8.0" }, "require-dev": { - "phpunit/phpunit": "^9.6 || ^10.2" + "phpunit/phpunit": "^9.6 || ^10.0 || ^11.0 || ^12.0" }, "suggest": { "symfony/thanks": "Give thanks (in the form of a GitHub) to your fellow PHP package maintainers" @@ -8687,7 +8208,7 @@ { "name": "Andrey Helldar", "email": "helldar@dragon-code.pro", - "homepage": "https://github.com/andrey-helldar" + "homepage": "https://dragon-code.pro" } ], "description": "Simple conversion of an array to a pretty view", @@ -8708,33 +8229,25 @@ "url": "https://boosty.to/dragon-code", "type": "boosty" }, - { - "url": "https://github.com/sponsors/TheDragonCode", - "type": "github" - }, - { - "url": "https://opencollective.com/dragon-code", - "type": "open_collective" - }, { "url": "https://yoomoney.ru/to/410012608840929", "type": "yoomoney" } ], - "time": "2023-06-02T11:37:44+00:00" + "time": "2025-02-24T15:35:24+00:00" }, { "name": "dragon-code/support", - "version": "6.15.0", + "version": "6.16.0", "source": { "type": "git", "url": "https://github.com/TheDragonCode/support.git", - "reference": "087d7baaa963cdbb24e901dc27e10cdc31c2529c" + "reference": "ab9b657a307e75f6ba5b2b39e1e45207dc1a065a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/TheDragonCode/support/zipball/087d7baaa963cdbb24e901dc27e10cdc31c2529c", - "reference": "087d7baaa963cdbb24e901dc27e10cdc31c2529c", + "url": "https://api.github.com/repos/TheDragonCode/support/zipball/ab9b657a307e75f6ba5b2b39e1e45207dc1a065a", + "reference": "ab9b657a307e75f6ba5b2b39e1e45207dc1a065a", "shasum": "" }, "require": { @@ -8753,8 +8266,8 @@ "andrey-helldar/support": "*" }, "require-dev": { - "illuminate/contracts": "^9.0 || ^10.0 || ^11.0", - "phpunit/phpunit": "^9.6 || ^11.0", + "illuminate/contracts": "^9.0 || ^10.0 || ^11.0 || ^12.0", + "phpunit/phpunit": "^9.6 || ^11.0 || ^12.0", "symfony/var-dumper": "^6.0 || ^7.0" }, "suggest": { @@ -8811,29 +8324,25 @@ "url": "https://boosty.to/dragon-code", "type": "boosty" }, - { - "url": "https://www.donationalerts.com/r/dragon_code", - "type": "donationalerts" - }, { "url": "https://yoomoney.ru/to/410012608840929", "type": "yoomoney" } ], - "time": "2024-09-07T13:27:37+00:00" + "time": "2025-02-24T14:01:52+00:00" }, { "name": "fakerphp/faker", - "version": "v1.23.1", + "version": "v1.24.1", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b" + "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b", - "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5", + "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5", "shasum": "" }, "require": { @@ -8881,22 +8390,22 @@ ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1" + "source": "https://github.com/FakerPHP/Faker/tree/v1.24.1" }, - "time": "2024-01-02T13:46:09+00:00" + "time": "2024-11-21T13:46:39+00:00" }, { "name": "filp/whoops", - "version": "2.16.0", + "version": "2.18.4", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "befcdc0e5dce67252aa6322d82424be928214fa2" + "reference": "d2102955e48b9fd9ab24280a7ad12ed552752c4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/befcdc0e5dce67252aa6322d82424be928214fa2", - "reference": "befcdc0e5dce67252aa6322d82424be928214fa2", + "url": "https://api.github.com/repos/filp/whoops/zipball/d2102955e48b9fd9ab24280a7ad12ed552752c4d", + "reference": "d2102955e48b9fd9ab24280a7ad12ed552752c4d", "shasum": "" }, "require": { @@ -8946,7 +8455,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.16.0" + "source": "https://github.com/filp/whoops/tree/2.18.4" }, "funding": [ { @@ -8954,24 +8463,24 @@ "type": "github" } ], - "time": "2024-09-25T12:00:00+00:00" + "time": "2025-08-08T12:00:00+00:00" }, { "name": "hamcrest/hamcrest-php", - "version": "v2.0.1", + "version": "v2.1.1", "source": { "type": "git", "url": "https://github.com/hamcrest/hamcrest-php.git", - "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3" + "reference": "f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", - "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487", + "reference": "f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487", "shasum": "" }, "require": { - "php": "^5.3|^7.0|^8.0" + "php": "^7.4|^8.0" }, "replace": { "cordoval/hamcrest-php": "*", @@ -8979,8 +8488,8 @@ "kodova/hamcrest-php": "*" }, "require-dev": { - "phpunit/php-file-iterator": "^1.4 || ^2.0", - "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0" + "phpunit/php-file-iterator": "^1.4 || ^2.0 || ^3.0", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0 || ^8.0 || ^9.0" }, "type": "library", "extra": { @@ -9003,9 +8512,9 @@ ], "support": { "issues": "https://github.com/hamcrest/hamcrest-php/issues", - "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" + "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.1.1" }, - "time": "2020-07-09T08:09:16+00:00" + "time": "2025-04-30T06:54:44+00:00" }, { "name": "laravel-lang/attributes", @@ -9437,13 +8946,13 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - }, "laravel": { "providers": [ "Laravel\\Breeze\\BreezeServiceProvider" ] + }, + "branch-alias": { + "dev-master": "1.x-dev" } }, "autoload": { @@ -9474,29 +8983,29 @@ }, { "name": "laravel/sail", - "version": "v1.34.0", + "version": "v1.52.0", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "511e9c95b0f3ee778dc9e11e242bcd2af8e002cd" + "reference": "64ac7d8abb2dbcf2b76e61289451bae79066b0b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/511e9c95b0f3ee778dc9e11e242bcd2af8e002cd", - "reference": "511e9c95b0f3ee778dc9e11e242bcd2af8e002cd", + "url": "https://api.github.com/repos/laravel/sail/zipball/64ac7d8abb2dbcf2b76e61289451bae79066b0b3", + "reference": "64ac7d8abb2dbcf2b76e61289451bae79066b0b3", "shasum": "" }, "require": { - "illuminate/console": "^9.52.16|^10.0|^11.0", - "illuminate/contracts": "^9.52.16|^10.0|^11.0", - "illuminate/support": "^9.52.16|^10.0|^11.0", + "illuminate/console": "^9.52.16|^10.0|^11.0|^12.0", + "illuminate/contracts": "^9.52.16|^10.0|^11.0|^12.0", + "illuminate/support": "^9.52.16|^10.0|^11.0|^12.0", "php": "^8.0", "symfony/console": "^6.0|^7.0", "symfony/yaml": "^6.0|^7.0" }, "require-dev": { - "orchestra/testbench": "^7.0|^8.0|^9.0", - "phpstan/phpstan": "^1.10" + "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", + "phpstan/phpstan": "^2.0" }, "bin": [ "bin/sail" @@ -9533,7 +9042,7 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2024-09-27T14:58:09+00:00" + "time": "2026-01-01T02:46:03+00:00" }, { "name": "mockery/mockery", @@ -9620,16 +9129,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.12.0", + "version": "1.13.4", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", "shasum": "" }, "require": { @@ -9668,7 +9177,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" }, "funding": [ { @@ -9676,7 +9185,7 @@ "type": "tidelift" } ], - "time": "2024-06-12T14:39:25+00:00" + "time": "2025-08-01T08:46:24+00:00" }, { "name": "nunomaduro/collision", @@ -9709,13 +9218,13 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-develop": "6.x-dev" - }, "laravel": { "providers": [ "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" ] + }, + "branch-alias": { + "dev-develop": "6.x-dev" } }, "autoload": { @@ -9939,23 +9448,23 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.8.2", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "153ae662783729388a584b4361f2545e4d841e3c" + "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c", - "reference": "153ae662783729388a584b4361f2545e4d841e3c", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/92a98ada2b93d9b201a613cb5a33584dde25f195", + "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195", "shasum": "" }, "require": { "doctrine/deprecations": "^1.0", "php": "^7.3 || ^8.0", "phpdocumentor/reflection-common": "^2.0", - "phpstan/phpdoc-parser": "^1.13" + "phpstan/phpdoc-parser": "^1.18|^2.0" }, "require-dev": { "ext-tokenizer": "*", @@ -9991,36 +9500,36 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.12.0" }, - "time": "2024-02-23T11:10:43+00:00" + "time": "2025-11-21T15:09:14+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "1.32.0", + "version": "2.3.2", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "6ca22b154efdd9e3c68c56f5d94670920a1c19a4" + "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/6ca22b154efdd9e3c68c56f5d94670920a1c19a4", - "reference": "6ca22b154efdd9e3c68c56f5d94670920a1c19a4", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/a004701b11273a26cd7955a61d67a7f1e525a45a", + "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { "doctrine/annotations": "^2.0", - "nikic/php-parser": "^4.15", + "nikic/php-parser": "^5.3.0", "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^1.5", - "phpstan/phpstan-phpunit": "^1.1", - "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/phpunit": "^9.5", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^9.6", "symfony/process": "^5.2" }, "type": "library", @@ -10038,9 +9547,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.32.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.2" }, - "time": "2024-09-26T07:23:32+00:00" + "time": "2026-01-25T14:56:51+00:00" }, { "name": "phpunit/php-code-coverage", @@ -10363,16 +9872,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.21", + "version": "9.6.32", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa" + "reference": "492ee10a8369a1c1ac390a3b46e0c846e384c5a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa", - "reference": "de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/492ee10a8369a1c1ac390a3b46e0c846e384c5a4", + "reference": "492ee10a8369a1c1ac390a3b46e0c846e384c5a4", "shasum": "" }, "require": { @@ -10383,7 +9892,7 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.12.0", + "myclabs/deep-copy": "^1.13.4", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=7.3", @@ -10394,11 +9903,11 @@ "phpunit/php-timer": "^5.0.3", "sebastian/cli-parser": "^1.0.2", "sebastian/code-unit": "^1.0.8", - "sebastian/comparator": "^4.0.8", + "sebastian/comparator": "^4.0.10", "sebastian/diff": "^4.0.6", "sebastian/environment": "^5.1.5", - "sebastian/exporter": "^4.0.6", - "sebastian/global-state": "^5.0.7", + "sebastian/exporter": "^4.0.8", + "sebastian/global-state": "^5.0.8", "sebastian/object-enumerator": "^4.0.4", "sebastian/resource-operations": "^3.0.4", "sebastian/type": "^3.2.1", @@ -10446,7 +9955,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.21" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.32" }, "funding": [ { @@ -10457,12 +9966,20 @@ "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/phpunit/phpunit", "type": "tidelift" } ], - "time": "2024-09-19T10:50:18+00:00" + "time": "2026-01-24T16:04:20+00:00" }, { "name": "sebastian/cli-parser", @@ -10633,16 +10150,16 @@ }, { "name": "sebastian/comparator", - "version": "4.0.8", + "version": "4.0.10", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + "reference": "e4df00b9b3571187db2831ae9aada2c6efbd715d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/e4df00b9b3571187db2831ae9aada2c6efbd715d", + "reference": "e4df00b9b3571187db2831ae9aada2c6efbd715d", "shasum": "" }, "require": { @@ -10695,15 +10212,27 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.10" }, "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": "2022-09-14T12:41:17+00:00" + "time": "2026-01-24T09:22:56+00:00" }, { "name": "sebastian/complexity", @@ -10893,16 +10422,16 @@ }, { "name": "sebastian/exporter", - "version": "4.0.6", + "version": "4.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72" + "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72", - "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/14c6ba52f95a36c3d27c835d65efc7123c446e8c", + "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c", "shasum": "" }, "require": { @@ -10958,28 +10487,40 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.8" }, "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/exporter", + "type": "tidelift" } ], - "time": "2024-03-02T06:33:00+00:00" + "time": "2025-09-24T06:03:27+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.7", + "version": "5.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9" + "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", - "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b6781316bdcd28260904e7cc18ec983d0d2ef4f6", + "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6", "shasum": "" }, "require": { @@ -11022,15 +10563,27 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.8" }, "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/global-state", + "type": "tidelift" } ], - "time": "2024-03-02T06:35:11+00:00" + "time": "2025-08-10T07:10:35+00:00" }, { "name": "sebastian/lines-of-code", @@ -11203,16 +10756,16 @@ }, { "name": "sebastian/recursion-context", - "version": "4.0.5", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + "reference": "539c6691e0623af6dc6f9c20384c120f963465a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/539c6691e0623af6dc6f9c20384c120f963465a0", + "reference": "539c6691e0623af6dc6f9c20384c120f963465a0", "shasum": "" }, "require": { @@ -11254,15 +10807,27 @@ "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.6" }, "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/recursion-context", + "type": "tidelift" } ], - "time": "2023-02-03T06:07:39+00:00" + "time": "2025-08-10T06:57:39+00:00" }, { "name": "sebastian/resource-operations", @@ -11429,27 +10994,27 @@ }, { "name": "spatie/backtrace", - "version": "1.6.2", + "version": "1.8.1", "source": { "type": "git", "url": "https://github.com/spatie/backtrace.git", - "reference": "1a9a145b044677ae3424693f7b06479fc8c137a9" + "reference": "8c0f16a59ae35ec8c62d85c3c17585158f430110" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/backtrace/zipball/1a9a145b044677ae3424693f7b06479fc8c137a9", - "reference": "1a9a145b044677ae3424693f7b06479fc8c137a9", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/8c0f16a59ae35ec8c62d85c3c17585158f430110", + "reference": "8c0f16a59ae35ec8c62d85c3c17585158f430110", "shasum": "" }, "require": { - "php": "^7.3|^8.0" + "php": "^7.3 || ^8.0" }, "require-dev": { "ext-json": "*", - "laravel/serializable-closure": "^1.3", - "phpunit/phpunit": "^9.3", - "spatie/phpunit-snapshot-assertions": "^4.2", - "symfony/var-dumper": "^5.1" + "laravel/serializable-closure": "^1.3 || ^2.0", + "phpunit/phpunit": "^9.3 || ^11.4.3", + "spatie/phpunit-snapshot-assertions": "^4.2 || ^5.1.6", + "symfony/var-dumper": "^5.1 || ^6.0 || ^7.0" }, "type": "library", "autoload": { @@ -11476,7 +11041,8 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/backtrace/tree/1.6.2" + "issues": "https://github.com/spatie/backtrace/issues", + "source": "https://github.com/spatie/backtrace/tree/1.8.1" }, "funding": [ { @@ -11488,24 +11054,24 @@ "type": "other" } ], - "time": "2024-07-22T08:21:24+00:00" + "time": "2025-08-26T08:22:30+00:00" }, { "name": "spatie/flare-client-php", - "version": "1.8.0", + "version": "1.10.1", "source": { "type": "git", "url": "https://github.com/spatie/flare-client-php.git", - "reference": "180f8ca4c0d0d6fc51477bd8c53ce37ab5a96122" + "reference": "bf1716eb98bd689451b071548ae9e70738dce62f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/180f8ca4c0d0d6fc51477bd8c53ce37ab5a96122", - "reference": "180f8ca4c0d0d6fc51477bd8c53ce37ab5a96122", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/bf1716eb98bd689451b071548ae9e70738dce62f", + "reference": "bf1716eb98bd689451b071548ae9e70738dce62f", "shasum": "" }, "require": { - "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0", + "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0|^12.0", "php": "^8.0", "spatie/backtrace": "^1.6.1", "symfony/http-foundation": "^5.2|^6.0|^7.0", @@ -11549,7 +11115,7 @@ ], "support": { "issues": "https://github.com/spatie/flare-client-php/issues", - "source": "https://github.com/spatie/flare-client-php/tree/1.8.0" + "source": "https://github.com/spatie/flare-client-php/tree/1.10.1" }, "funding": [ { @@ -11557,7 +11123,7 @@ "type": "github" } ], - "time": "2024-08-01T08:27:26+00:00" + "time": "2025-02-14T13:42:06+00:00" }, { "name": "spatie/ignition", @@ -11683,12 +11249,12 @@ "type": "library", "extra": { "laravel": { - "providers": [ - "Spatie\\LaravelIgnition\\IgnitionServiceProvider" - ], "aliases": { "Flare": "Spatie\\LaravelIgnition\\Facades\\Flare" - } + }, + "providers": [ + "Spatie\\LaravelIgnition\\IgnitionServiceProvider" + ] } }, "autoload": { @@ -11734,7 +11300,7 @@ }, { "name": "symfony/polyfill-php81", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", @@ -11752,8 +11318,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -11790,7 +11356,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.33.0" }, "funding": [ { @@ -11801,6 +11367,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -11810,27 +11380,28 @@ }, { "name": "symfony/yaml", - "version": "v7.1.5", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "4e561c316e135e053bd758bf3b3eb291d9919de4" + "reference": "24dd4de28d2e3988b311751ac49e684d783e2345" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/4e561c316e135e053bd758bf3b3eb291d9919de4", - "reference": "4e561c316e135e053bd758bf3b3eb291d9919de4", + "url": "https://api.github.com/repos/symfony/yaml/zipball/24dd4de28d2e3988b311751ac49e684d783e2345", + "reference": "24dd4de28d2e3988b311751ac49e684d783e2345", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "^1.8" }, "conflict": { "symfony/console": "<6.4" }, "require-dev": { - "symfony/console": "^6.4|^7.0" + "symfony/console": "^6.4|^7.0|^8.0" }, "bin": [ "Resources/bin/yaml-lint" @@ -11861,7 +11432,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.1.5" + "source": "https://github.com/symfony/yaml/tree/v7.4.1" }, "funding": [ { @@ -11872,25 +11443,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-17T12:49:58+00:00" + "time": "2025-12-04T18:11:45+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.3", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", "shasum": "" }, "require": { @@ -11919,7 +11494,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.3" + "source": "https://github.com/theseer/tokenizer/tree/1.3.1" }, "funding": [ { @@ -11927,17 +11502,17 @@ "type": "github" } ], - "time": "2024-03-03T12:36:25+00:00" + "time": "2025-11-17T20:03:58+00:00" } ], "aliases": [], "minimum-stability": "dev", - "stability-flags": [], + "stability-flags": {}, "prefer-stable": true, "prefer-lowest": false, "platform": { "php": ">=8.0" }, - "platform-dev": [], + "platform-dev": {}, "plugin-api-version": "2.6.0" } diff --git a/resources/views/components/config/backups.blade.php b/resources/views/components/config/backups.blade.php index 5fb835e5..08f3f969 100644 --- a/resources/views/components/config/backups.blade.php +++ b/resources/views/components/config/backups.blade.php @@ -1,44 +1,129 @@ + - - - @if (file_exists(base_path('backups/updater-backups/')) and is_dir(base_path('backups/updater-backups/'))) - @if($_SERVER['QUERY_STRING'] != '') - + button:hover { + background-color: #0065c1; + color: #FFF; + box-shadow: 0 10px 20px -10px rgba(0, 0, 0, 0.6); + } + + .buttondm { + display: inline-block; + text-decoration: none; + height: 48px; + text-align: center; + vertical-align: middle; + font-size: 18px; + width: 300px; + font-weight: 700; + line-height: 48px; + letter-spacing: .1px; + white-space: wrap; + border-radius: 8px; + cursor: pointer + } + + .button-hover, + .credit-hover { + display: inline-block; + -webkit-transform: perspective(1px) translateZ(0); + transform: perspective(1px) translateZ(0); + box-shadow: 0 0 1px rgba(0, 0, 0, 0); + -webkit-transition-duration: .3s; + transition-duration: .3s; + -webkit-transition-property: transform; + transition-property: transform + } + + .button-hover:active, + .credit-hover:active, + .button-hover:focus, + .credit-hover:focus, + .button-hover:hover, + .credit-hover:hover { + -webkit-transform: scale(1.06); + transform: scale(1.06) + } + + .container { + align-items: center; + display: flex; + flex-direction: column; + justify-content: center; + height: 50%; + width: 100% + } + + + +@if (file_exists(base_path('backups/updater-backups/')) and is_dir(base_path('backups/updater-backups/'))) + @if ($_SERVER['QUERY_STRING'] != '') + @endif - -
-

{{__('messages.Download your updater backups:')}}

-{{__('messages.The server will never store more that two backups at a time')}}


-   '; print_r($entrys); echo '

'; - }}} ?> - - @else -
-

{{__('messages.No backups found')}}

- @endif -
+
+

+

{{ __('messages.Download your updater backups:') }}

+ {{ __('messages.The server will never store more that two backups at a time') }}


+   '; + print_r($entrys); + echo '

'; + } + } + } ?> + +@else +
+

{{ __('messages.No backups found') }}

+
+@endif +
diff --git a/resources/views/panel/backups.blade.php b/resources/views/panel/backups.blade.php index 98cb4a76..9f691a4f 100644 --- a/resources/views/panel/backups.blade.php +++ b/resources/views/panel/backups.blade.php @@ -1,25 +1,45 @@ @extends('layouts.sidebar') @section('content') - @if (file_exists(base_path('backups/updater-backups/')) and is_dir(base_path('backups/updater-backups/'))) - - @endif - -@endsection \ No newline at end of file + @if (file_exists(base_path('backups/updater-backups/')) && is_dir(base_path('backups/updater-backups/'))) + + @endif + @endsection + \ No newline at end of file From 0204a15d5d4d578c63df476ab32eb9613648702b Mon Sep 17 00:00:00 2001 From: Julian Prieber Date: Mon, 26 Jan 2026 19:03:54 +0100 Subject: [PATCH 09/21] Update Ubuntu --- .github/workflows/release.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 29946b6c..15e8c42a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,7 +6,7 @@ on: jobs: setup-ubuntu: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Check for GitHub API key @@ -180,5 +180,4 @@ jobs: sshpass -p "${{ secrets.SERVER_PASSWORD }}" ssh -o StrictHostKeyChecking=no -p ${{ secrets.SERVER_PORT }} ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }} "rm -rf ${{ secrets.REMOTE_PATH }}/*" # Use SSH to upload the file to the remote server - sshpass -p "${{ secrets.SERVER_PASSWORD }}" scp -o StrictHostKeyChecking=no -P ${{ secrets.SERVER_PORT }} $version.zip ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }}:${{ secrets.REMOTE_PATH }} - + sshpass -p "${{ secrets.SERVER_PASSWORD }}" scp -o StrictHostKeyChecking=no -P ${{ secrets.SERVER_PORT }} $version.zip ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }}:${{ secrets.REMOTE_PATH }} \ No newline at end of file From 67e5146232d6f87116f656a1aec7ef9631d33bc6 Mon Sep 17 00:00:00 2001 From: Julian Prieber Date: Mon, 26 Jan 2026 19:09:40 +0100 Subject: [PATCH 10/21] Test fix PHP 8 --- .github/workflows/release.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 15e8c42a..c62056c9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,15 +21,15 @@ jobs: echo "GitHub API key found." fi + - name: Setup PHP 8.0 + uses: shivammathur/setup-php@v2 + with: + php-version: '8.0' + tools: composer + coverage: none + - name: Updating Dependencies + zip run: | - cd ~ - curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php - HASH=`curl -sS https://composer.github.io/installer.sig` - sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer - - sudo update-alternatives --set php /usr/bin/php8.0 - cd /tmp mkdir linkstack cd linkstack From 0673282a0b58c4fbccc23b8894a93441091179e2 Mon Sep 17 00:00:00 2001 From: Julian Prieber Date: Mon, 26 Jan 2026 19:11:27 +0100 Subject: [PATCH 11/21] Revert "Test fix PHP 8" This reverts commit 67e5146232d6f87116f656a1aec7ef9631d33bc6. --- .github/workflows/release.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c62056c9..15e8c42a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,15 +21,15 @@ jobs: echo "GitHub API key found." fi - - name: Setup PHP 8.0 - uses: shivammathur/setup-php@v2 - with: - php-version: '8.0' - tools: composer - coverage: none - - name: Updating Dependencies + zip run: | + cd ~ + curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php + HASH=`curl -sS https://composer.github.io/installer.sig` + sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer + + sudo update-alternatives --set php /usr/bin/php8.0 + cd /tmp mkdir linkstack cd linkstack From 7ad4a65df2b4dcf710beabcb0c7c823c968e7c7c Mon Sep 17 00:00:00 2001 From: Julian Prieber Date: Mon, 26 Jan 2026 19:17:55 +0100 Subject: [PATCH 12/21] Install extensions manually --- .github/workflows/release.yml | 61 ++++++++++++++++++++++++++++------- 1 file changed, 49 insertions(+), 12 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 15e8c42a..f6fa1836 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,6 +21,44 @@ jobs: echo "GitHub API key found." fi + - name: Install PHP 8.0 and extensions + run: | + sudo apt-get update + + # Core PHP 8.0 + CLI + sudo apt-get install -y \ + php8.0 \ + php8.0-cli \ + php8.0-common + + # Extensions + sudo apt-get install -y \ + php8.0-bcmath \ + php8.0-bz2 \ + php8.0-curl \ + php8.0-gd \ + php8.0-intl \ + php8.0-mbstring \ + php8.0-mysql \ + php8.0-pgsql \ + php8.0-sqlite3 \ + php8.0-xml \ + php8.0-zip \ + php8.0-readline \ + php-redis \ + unzip \ + tzdata + + # Register php8.0 as the default php + if update-alternatives --query php >/dev/null 2>&1; then + sudo update-alternatives --set php /usr/bin/php8.0 + else + sudo update-alternatives --install /usr/bin/php php /usr/bin/php8.0 1 + fi + + php -v + php -m + - name: Updating Dependencies + zip run: | cd ~ @@ -28,8 +66,6 @@ jobs: HASH=`curl -sS https://composer.github.io/installer.sig` sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer - sudo update-alternatives --set php /usr/bin/php8.0 - cd /tmp mkdir linkstack cd linkstack @@ -168,16 +204,17 @@ jobs: - name: Upload to Update Server if: ${{ github.event_name == 'push' }} run: | - cd /tmp/linkstack - ls - TAG_VERSION="${GITHUB_REF##*/}" - version=${TAG_VERSION#"v"} + cd /tmp/linkstack + ls + TAG_VERSION="${GITHUB_REF##*/}" + version=${TAG_VERSION#"v"} - # Install the OpenSSH client - sudo apt-get install -y openssh-client + # Install the OpenSSH client and sshpass + sudo apt-get update + sudo apt-get install -y openssh-client sshpass - # Clear the remote directory - sshpass -p "${{ secrets.SERVER_PASSWORD }}" ssh -o StrictHostKeyChecking=no -p ${{ secrets.SERVER_PORT }} ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }} "rm -rf ${{ secrets.REMOTE_PATH }}/*" + # Clear the remote directory + sshpass -p "${{ secrets.SERVER_PASSWORD }}" ssh -o StrictHostKeyChecking=no -p ${{ secrets.SERVER_PORT }} ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }} "rm -rf ${{ secrets.REMOTE_PATH }}/*" - # Use SSH to upload the file to the remote server - sshpass -p "${{ secrets.SERVER_PASSWORD }}" scp -o StrictHostKeyChecking=no -P ${{ secrets.SERVER_PORT }} $version.zip ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }}:${{ secrets.REMOTE_PATH }} \ No newline at end of file + # Use SSH to upload the file to the remote server + sshpass -p "${{ secrets.SERVER_PASSWORD }}" scp -o StrictHostKeyChecking=no -P ${{ secrets.SERVER_PORT }} $version.zip ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }}:${{ secrets.REMOTE_PATH }} \ No newline at end of file From b7c788133b0e2603ccf62b9cbec134feeb3323d0 Mon Sep 17 00:00:00 2001 From: Julian Prieber Date: Mon, 26 Jan 2026 19:27:38 +0100 Subject: [PATCH 13/21] Rever to ubuntu-20.04 --- .github/workflows/release.yml | 63 ++++++++--------------------------- 1 file changed, 13 insertions(+), 50 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f6fa1836..063c05c0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,7 +6,7 @@ on: jobs: setup-ubuntu: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - name: Check for GitHub API key @@ -21,44 +21,6 @@ jobs: echo "GitHub API key found." fi - - name: Install PHP 8.0 and extensions - run: | - sudo apt-get update - - # Core PHP 8.0 + CLI - sudo apt-get install -y \ - php8.0 \ - php8.0-cli \ - php8.0-common - - # Extensions - sudo apt-get install -y \ - php8.0-bcmath \ - php8.0-bz2 \ - php8.0-curl \ - php8.0-gd \ - php8.0-intl \ - php8.0-mbstring \ - php8.0-mysql \ - php8.0-pgsql \ - php8.0-sqlite3 \ - php8.0-xml \ - php8.0-zip \ - php8.0-readline \ - php-redis \ - unzip \ - tzdata - - # Register php8.0 as the default php - if update-alternatives --query php >/dev/null 2>&1; then - sudo update-alternatives --set php /usr/bin/php8.0 - else - sudo update-alternatives --install /usr/bin/php php /usr/bin/php8.0 1 - fi - - php -v - php -m - - name: Updating Dependencies + zip run: | cd ~ @@ -66,6 +28,8 @@ jobs: HASH=`curl -sS https://composer.github.io/installer.sig` sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer + sudo update-alternatives --set php /usr/bin/php8.0 + cd /tmp mkdir linkstack cd linkstack @@ -204,17 +168,16 @@ jobs: - name: Upload to Update Server if: ${{ github.event_name == 'push' }} run: | - cd /tmp/linkstack - ls - TAG_VERSION="${GITHUB_REF##*/}" - version=${TAG_VERSION#"v"} + cd /tmp/linkstack + ls + TAG_VERSION="${GITHUB_REF##*/}" + version=${TAG_VERSION#"v"} - # Install the OpenSSH client and sshpass - sudo apt-get update - sudo apt-get install -y openssh-client sshpass + # Install the OpenSSH client + sudo apt-get install -y openssh-client - # Clear the remote directory - sshpass -p "${{ secrets.SERVER_PASSWORD }}" ssh -o StrictHostKeyChecking=no -p ${{ secrets.SERVER_PORT }} ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }} "rm -rf ${{ secrets.REMOTE_PATH }}/*" + # Clear the remote directory + sshpass -p "${{ secrets.SERVER_PASSWORD }}" ssh -o StrictHostKeyChecking=no -p ${{ secrets.SERVER_PORT }} ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }} "rm -rf ${{ secrets.REMOTE_PATH }}/*" - # Use SSH to upload the file to the remote server - sshpass -p "${{ secrets.SERVER_PASSWORD }}" scp -o StrictHostKeyChecking=no -P ${{ secrets.SERVER_PORT }} $version.zip ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }}:${{ secrets.REMOTE_PATH }} \ No newline at end of file + # Use SSH to upload the file to the remote server + sshpass -p "${{ secrets.SERVER_PASSWORD }}" scp -o StrictHostKeyChecking=no -P ${{ secrets.SERVER_PORT }} $version.zip ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }}:${{ secrets.REMOTE_PATH }} From bfac2134a9863efe4cdfc43029e1ad81bcc76dda Mon Sep 17 00:00:00 2001 From: Julian Prieber Date: Mon, 26 Jan 2026 19:40:05 +0100 Subject: [PATCH 14/21] Test shivammathur/setup-php --- .github/workflows/release.yml | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 063c05c0..5c719cd5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,7 +6,7 @@ on: jobs: setup-ubuntu: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - name: Check for GitHub API key @@ -21,14 +21,21 @@ jobs: echo "GitHub API key found." fi + - name: Setup PHP 8.0 and Composer + uses: shivammathur/setup-php@v2 + with: + php-version: '8.0' + tools: composer:v2 + extensions: mbstring, intl, zip, curl, sqlite, pdo_sqlite + coverage: none + + - name: Verify PHP version + run: php -v + - name: Updating Dependencies + zip run: | cd ~ - curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php - HASH=`curl -sS https://composer.github.io/installer.sig` - sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer - - sudo update-alternatives --set php /usr/bin/php8.0 + # Composer already provided by setup-php cd /tmp mkdir linkstack @@ -173,11 +180,12 @@ jobs: TAG_VERSION="${GITHUB_REF##*/}" version=${TAG_VERSION#"v"} - # Install the OpenSSH client - sudo apt-get install -y openssh-client + # Install required clients + sudo apt-get update + sudo apt-get install -y openssh-client sshpass # Clear the remote directory sshpass -p "${{ secrets.SERVER_PASSWORD }}" ssh -o StrictHostKeyChecking=no -p ${{ secrets.SERVER_PORT }} ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }} "rm -rf ${{ secrets.REMOTE_PATH }}/*" # Use SSH to upload the file to the remote server - sshpass -p "${{ secrets.SERVER_PASSWORD }}" scp -o StrictHostKeyChecking=no -P ${{ secrets.SERVER_PORT }} $version.zip ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }}:${{ secrets.REMOTE_PATH }} + sshpass -p "${{ secrets.SERVER_PASSWORD }}" scp -o StrictHostKeyChecking=no -P ${{ secrets.SERVER_PORT }} $version.zip ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }}:${{ secrets.REMOTE_PATH }} \ No newline at end of file From f4649ea1686c727ed23fec1a529969eb4498593d Mon Sep 17 00:00:00 2001 From: Julian Prieber Date: Mon, 26 Jan 2026 19:46:19 +0100 Subject: [PATCH 15/21] Remove discontinued dependency --- .github/workflows/release.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5c719cd5..2c5b60b9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -60,8 +60,6 @@ jobs: cp "../../version.json" "version.json" composer update --no-dev --no-scripts - - php artisan lang:update php artisan migrate php artisan db:seed From dca586e8b8946a779cb212d21791cff6308fa7c0 Mon Sep 17 00:00:00 2001 From: Julian Prieber Date: Mon, 26 Jan 2026 19:47:44 +0100 Subject: [PATCH 16/21] Update version.json to 4.8.5 --- version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.json b/version.json index 57c4b30b..bb6ebd31 100644 --- a/version.json +++ b/version.json @@ -1 +1 @@ -4.8.4 +4.8.5 From f8734c1b80739a35bb53e888e8db91601480f208 Mon Sep 17 00:00:00 2001 From: Julian Prieber Date: Tue, 17 Feb 2026 17:49:51 +0100 Subject: [PATCH 17/21] Fix dependencies production dependencies --- composer.json | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/composer.json b/composer.json index 3a51d876..c86f0d1e 100644 --- a/composer.json +++ b/composer.json @@ -13,24 +13,25 @@ "geo-sot/laravel-env-editor": "^2.0", "guzzlehttp/guzzle": "^7.4", "jeroendesloovere/vcard": "^1.7", + "laravel-lang/common": "^2.0", "laravel/framework": "^9.52.4", "laravel/socialite": "^5.5", "laravel/tinker": "^2.5", "livewire/livewire": "^2.12", + "nunomaduro/collision": "^6.1", "rappasoft/laravel-livewire-tables": "^2.15", "simplesoftwareio/simple-qrcode": "~4", - "spatie/laravel-backup": "^8.1.5" + "spatie/laravel-backup": "^8.1.5", + "symfony/yaml": "^7.4" }, "require-dev": { "barryvdh/laravel-ide-helper": "^2.12", "fakerphp/faker": "^1.9.1", - "laravel-lang/common": "^2.0", "laravel/breeze": "^1.1", "laravel/sail": "^1.0.1", "mockery/mockery": "^1.4.2", - "nunomaduro/collision": "^6.1", - "phpunit/phpunit": "^9.3.3", - "spatie/laravel-ignition": "^1.0" + "spatie/laravel-ignition": "^1.0", + "phpunit/phpunit": "^9.3.3" }, "autoload": { "files": [ From 46ba4d0c5d7deea5b741a93c55e8671893f3fbb4 Mon Sep 17 00:00:00 2001 From: Julian Prieber Date: Tue, 17 Feb 2026 17:54:45 +0100 Subject: [PATCH 18/21] Update version.json to 4.8.6 --- version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.json b/version.json index bb6ebd31..7ea59483 100644 --- a/version.json +++ b/version.json @@ -1 +1 @@ -4.8.5 +4.8.6 From e2631c0d09f3e8fe2ddb6b4f10e4534276a45d2c Mon Sep 17 00:00:00 2001 From: Julian Prieber Date: Tue, 17 Feb 2026 18:38:54 +0100 Subject: [PATCH 19/21] Fix main beta version missmatch https://github.com/LinkStackOrg/LinkStack/issues/967 --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index c86f0d1e..a830b32f 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "rappasoft/laravel-livewire-tables": "^2.15", "simplesoftwareio/simple-qrcode": "~4", "spatie/laravel-backup": "^8.1.5", - "symfony/yaml": "^7.4" + "symfony/yaml": "^6.4" }, "require-dev": { "barryvdh/laravel-ide-helper": "^2.12", From 965ddb7c2e99897f32b3840af4ef304fa1ed0576 Mon Sep 17 00:00:00 2001 From: Julian Prieber Date: Tue, 17 Feb 2026 18:43:00 +0100 Subject: [PATCH 20/21] Update composer.json --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index a830b32f..49aa1185 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "rappasoft/laravel-livewire-tables": "^2.15", "simplesoftwareio/simple-qrcode": "~4", "spatie/laravel-backup": "^8.1.5", - "symfony/yaml": "^6.4" + "symfony/yaml": "^6.0" }, "require-dev": { "barryvdh/laravel-ide-helper": "^2.12", From 2dfa5444c13abaa74ab9d6d857c8b0f2a73351f7 Mon Sep 17 00:00:00 2001 From: Julian Prieber Date: Tue, 17 Feb 2026 18:44:33 +0100 Subject: [PATCH 21/21] Update version.json to 4.8.6