mirror of
https://github.com/usetrmnl/byos_laravel.git
synced 2026-01-14 15:37:53 +00:00
Compare commits
7 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
730260bf42 | ||
|
|
d7f6237265 | ||
|
|
c2c553461f | ||
|
|
fceacfe4b3 | ||
|
|
3032c09778 | ||
|
|
f1903bcbe8 | ||
|
|
621c108e78 |
10 changed files with 259 additions and 87 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -34,3 +34,6 @@ yarn-error.log
|
|||
/boost.json
|
||||
/.gemini
|
||||
/GEMINI.md
|
||||
/.claude
|
||||
/AGENTS.md
|
||||
/opencode.json
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@
|
|||
"livewire/flux": "^2.0",
|
||||
"livewire/volt": "^1.7",
|
||||
"om/icalparser": "^3.2",
|
||||
"simplesoftwareio/simple-qrcode": "^4.2",
|
||||
"spatie/browsershot": "^5.0",
|
||||
"stevebauman/purify": "^6.3",
|
||||
"symfony/yaml": "^7.3",
|
||||
|
|
|
|||
286
composer.lock
generated
286
composer.lock
generated
|
|
@ -4,7 +4,7 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "25c2a1a4a2f2594adefe25ddb6a072fb",
|
||||
"content-hash": "4de5f1df0160f59d08f428e36e81262e",
|
||||
"packages": [
|
||||
{
|
||||
"name": "aws/aws-crt-php",
|
||||
|
|
@ -62,16 +62,16 @@
|
|||
},
|
||||
{
|
||||
"name": "aws/aws-sdk-php",
|
||||
"version": "3.369.10",
|
||||
"version": "3.369.12",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/aws/aws-sdk-php.git",
|
||||
"reference": "e179090bf2d658be7be37afc146111966ba6f41b"
|
||||
"reference": "36ee8894743a254ae2650bad4968c874b76bc7de"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/e179090bf2d658be7be37afc146111966ba6f41b",
|
||||
"reference": "e179090bf2d658be7be37afc146111966ba6f41b",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/36ee8894743a254ae2650bad4968c874b76bc7de",
|
||||
"reference": "36ee8894743a254ae2650bad4968c874b76bc7de",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -153,9 +153,63 @@
|
|||
"support": {
|
||||
"forum": "https://github.com/aws/aws-sdk-php/discussions",
|
||||
"issues": "https://github.com/aws/aws-sdk-php/issues",
|
||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.369.10"
|
||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.369.12"
|
||||
},
|
||||
"time": "2026-01-09T19:08:12+00:00"
|
||||
"time": "2026-01-13T19:12:08+00:00"
|
||||
},
|
||||
{
|
||||
"name": "bacon/bacon-qr-code",
|
||||
"version": "2.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Bacon/BaconQrCode.git",
|
||||
"reference": "8674e51bb65af933a5ffaf1c308a660387c35c22"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/8674e51bb65af933a5ffaf1c308a660387c35c22",
|
||||
"reference": "8674e51bb65af933a5ffaf1c308a660387c35c22",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"dasprid/enum": "^1.0.3",
|
||||
"ext-iconv": "*",
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phly/keep-a-changelog": "^2.1",
|
||||
"phpunit/phpunit": "^7 | ^8 | ^9",
|
||||
"spatie/phpunit-snapshot-assertions": "^4.2.9",
|
||||
"squizlabs/php_codesniffer": "^3.4"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-imagick": "to generate QR code images"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"BaconQrCode\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-2-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Ben Scholzen 'DASPRiD'",
|
||||
"email": "mail@dasprids.de",
|
||||
"homepage": "https://dasprids.de/",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "BaconQrCode is a QR code generator for PHP.",
|
||||
"homepage": "https://github.com/Bacon/BaconQrCode",
|
||||
"support": {
|
||||
"issues": "https://github.com/Bacon/BaconQrCode/issues",
|
||||
"source": "https://github.com/Bacon/BaconQrCode/tree/2.0.8"
|
||||
},
|
||||
"time": "2022-12-07T17:46:57+00:00"
|
||||
},
|
||||
{
|
||||
"name": "bnussbau/laravel-trmnl-blade",
|
||||
|
|
@ -441,6 +495,56 @@
|
|||
],
|
||||
"time": "2024-02-09T16:56:22+00:00"
|
||||
},
|
||||
{
|
||||
"name": "dasprid/enum",
|
||||
"version": "1.0.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/DASPRiD/Enum.git",
|
||||
"reference": "b5874fa9ed0043116c72162ec7f4fb50e02e7cce"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/DASPRiD/Enum/zipball/b5874fa9ed0043116c72162ec7f4fb50e02e7cce",
|
||||
"reference": "b5874fa9ed0043116c72162ec7f4fb50e02e7cce",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1 <9.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^7 || ^8 || ^9 || ^10 || ^11",
|
||||
"squizlabs/php_codesniffer": "*"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"DASPRiD\\Enum\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-2-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Ben Scholzen 'DASPRiD'",
|
||||
"email": "mail@dasprids.de",
|
||||
"homepage": "https://dasprids.de/",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "PHP 7.1 enum implementation",
|
||||
"keywords": [
|
||||
"enum",
|
||||
"map"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/DASPRiD/Enum/issues",
|
||||
"source": "https://github.com/DASPRiD/Enum/tree/1.0.7"
|
||||
},
|
||||
"time": "2025-09-16T12:23:56+00:00"
|
||||
},
|
||||
{
|
||||
"name": "dflydev/dot-access-data",
|
||||
"version": "v3.0.3",
|
||||
|
|
@ -1678,16 +1782,16 @@
|
|||
},
|
||||
{
|
||||
"name": "laravel/framework",
|
||||
"version": "v12.46.0",
|
||||
"version": "v12.47.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/framework.git",
|
||||
"reference": "9dcff48d25a632c1fadb713024c952fec489c4ae"
|
||||
"reference": "ab8114c2e78f32e64eb238fc4b495bea3f8b80ec"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/9dcff48d25a632c1fadb713024c952fec489c4ae",
|
||||
"reference": "9dcff48d25a632c1fadb713024c952fec489c4ae",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/ab8114c2e78f32e64eb238fc4b495bea3f8b80ec",
|
||||
"reference": "ab8114c2e78f32e64eb238fc4b495bea3f8b80ec",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -1896,20 +2000,20 @@
|
|||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2026-01-07T23:26:53+00:00"
|
||||
"time": "2026-01-13T15:29:06+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/prompts",
|
||||
"version": "v0.3.8",
|
||||
"version": "v0.3.9",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/prompts.git",
|
||||
"reference": "096748cdfb81988f60090bbb839ce3205ace0d35"
|
||||
"reference": "5c41bf0555b7cfefaad4e66d3046675829581ac4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/prompts/zipball/096748cdfb81988f60090bbb839ce3205ace0d35",
|
||||
"reference": "096748cdfb81988f60090bbb839ce3205ace0d35",
|
||||
"url": "https://api.github.com/repos/laravel/prompts/zipball/5c41bf0555b7cfefaad4e66d3046675829581ac4",
|
||||
"reference": "5c41bf0555b7cfefaad4e66d3046675829581ac4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -1953,22 +2057,22 @@
|
|||
"description": "Add beautiful and user-friendly forms to your command-line applications.",
|
||||
"support": {
|
||||
"issues": "https://github.com/laravel/prompts/issues",
|
||||
"source": "https://github.com/laravel/prompts/tree/v0.3.8"
|
||||
"source": "https://github.com/laravel/prompts/tree/v0.3.9"
|
||||
},
|
||||
"time": "2025-11-21T20:52:52+00:00"
|
||||
"time": "2026-01-07T21:00:29+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/sanctum",
|
||||
"version": "v4.2.2",
|
||||
"version": "v4.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/sanctum.git",
|
||||
"reference": "fd447754d2d3f56950d53b930128af2e3b617de9"
|
||||
"reference": "47d26f1d310879ff757b971f5a6fc631d18663fd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/sanctum/zipball/fd447754d2d3f56950d53b930128af2e3b617de9",
|
||||
"reference": "fd447754d2d3f56950d53b930128af2e3b617de9",
|
||||
"url": "https://api.github.com/repos/laravel/sanctum/zipball/47d26f1d310879ff757b971f5a6fc631d18663fd",
|
||||
"reference": "47d26f1d310879ff757b971f5a6fc631d18663fd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -2018,20 +2122,20 @@
|
|||
"issues": "https://github.com/laravel/sanctum/issues",
|
||||
"source": "https://github.com/laravel/sanctum"
|
||||
},
|
||||
"time": "2026-01-06T23:11:51+00:00"
|
||||
"time": "2026-01-11T18:20:25+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/serializable-closure",
|
||||
"version": "v2.0.7",
|
||||
"version": "v2.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/serializable-closure.git",
|
||||
"reference": "cb291e4c998ac50637c7eeb58189c14f5de5b9dd"
|
||||
"reference": "7581a4407012f5f53365e11bafc520fd7f36bc9b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/cb291e4c998ac50637c7eeb58189c14f5de5b9dd",
|
||||
"reference": "cb291e4c998ac50637c7eeb58189c14f5de5b9dd",
|
||||
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/7581a4407012f5f53365e11bafc520fd7f36bc9b",
|
||||
"reference": "7581a4407012f5f53365e11bafc520fd7f36bc9b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -2079,20 +2183,20 @@
|
|||
"issues": "https://github.com/laravel/serializable-closure/issues",
|
||||
"source": "https://github.com/laravel/serializable-closure"
|
||||
},
|
||||
"time": "2025-11-21T20:52:36+00:00"
|
||||
"time": "2026-01-08T16:22:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/socialite",
|
||||
"version": "v5.24.1",
|
||||
"version": "v5.24.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/socialite.git",
|
||||
"reference": "25e28c14d55404886777af1d77cf030e0f633142"
|
||||
"reference": "5cea2eebf11ca4bc6c2f20495c82a70a9b3d1613"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/socialite/zipball/25e28c14d55404886777af1d77cf030e0f633142",
|
||||
"reference": "25e28c14d55404886777af1d77cf030e0f633142",
|
||||
"url": "https://api.github.com/repos/laravel/socialite/zipball/5cea2eebf11ca4bc6c2f20495c82a70a9b3d1613",
|
||||
"reference": "5cea2eebf11ca4bc6c2f20495c82a70a9b3d1613",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -2151,7 +2255,7 @@
|
|||
"issues": "https://github.com/laravel/socialite/issues",
|
||||
"source": "https://github.com/laravel/socialite"
|
||||
},
|
||||
"time": "2026-01-01T02:57:21+00:00"
|
||||
"time": "2026-01-10T16:07:28+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/tinker",
|
||||
|
|
@ -4818,6 +4922,74 @@
|
|||
},
|
||||
"time": "2025-12-14T04:43:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "simplesoftwareio/simple-qrcode",
|
||||
"version": "4.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/SimpleSoftwareIO/simple-qrcode.git",
|
||||
"reference": "916db7948ca6772d54bb617259c768c9cdc8d537"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/SimpleSoftwareIO/simple-qrcode/zipball/916db7948ca6772d54bb617259c768c9cdc8d537",
|
||||
"reference": "916db7948ca6772d54bb617259c768c9cdc8d537",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"bacon/bacon-qr-code": "^2.0",
|
||||
"ext-gd": "*",
|
||||
"php": ">=7.2|^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "~1",
|
||||
"phpunit/phpunit": "~9"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-imagick": "Allows the generation of PNG QrCodes.",
|
||||
"illuminate/support": "Allows for use within Laravel."
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"aliases": {
|
||||
"QrCode": "SimpleSoftwareIO\\QrCode\\Facades\\QrCode"
|
||||
},
|
||||
"providers": [
|
||||
"SimpleSoftwareIO\\QrCode\\QrCodeServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"SimpleSoftwareIO\\QrCode\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Simple Software LLC",
|
||||
"email": "support@simplesoftware.io"
|
||||
}
|
||||
],
|
||||
"description": "Simple QrCode is a QR code generator made for Laravel.",
|
||||
"homepage": "https://www.simplesoftware.io/#/docs/simple-qrcode",
|
||||
"keywords": [
|
||||
"Simple",
|
||||
"generator",
|
||||
"laravel",
|
||||
"qrcode",
|
||||
"wrapper"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/SimpleSoftwareIO/simple-qrcode/issues",
|
||||
"source": "https://github.com/SimpleSoftwareIO/simple-qrcode/tree/4.2.0"
|
||||
},
|
||||
"time": "2021-02-08T20:43:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spatie/browsershot",
|
||||
"version": "5.2.0",
|
||||
|
|
@ -4949,16 +5121,16 @@
|
|||
},
|
||||
{
|
||||
"name": "spatie/temporary-directory",
|
||||
"version": "2.3.0",
|
||||
"version": "2.3.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatie/temporary-directory.git",
|
||||
"reference": "580eddfe9a0a41a902cac6eeb8f066b42e65a32b"
|
||||
"reference": "662e481d6ec07ef29fd05010433428851a42cd07"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/spatie/temporary-directory/zipball/580eddfe9a0a41a902cac6eeb8f066b42e65a32b",
|
||||
"reference": "580eddfe9a0a41a902cac6eeb8f066b42e65a32b",
|
||||
"url": "https://api.github.com/repos/spatie/temporary-directory/zipball/662e481d6ec07ef29fd05010433428851a42cd07",
|
||||
"reference": "662e481d6ec07ef29fd05010433428851a42cd07",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -4994,7 +5166,7 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/spatie/temporary-directory/issues",
|
||||
"source": "https://github.com/spatie/temporary-directory/tree/2.3.0"
|
||||
"source": "https://github.com/spatie/temporary-directory/tree/2.3.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -5006,7 +5178,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2025-01-13T13:04:43+00:00"
|
||||
"time": "2026-01-12T07:42:22+00:00"
|
||||
},
|
||||
{
|
||||
"name": "stevebauman/purify",
|
||||
|
|
@ -10149,16 +10321,16 @@
|
|||
},
|
||||
{
|
||||
"name": "phpstan/phpdoc-parser",
|
||||
"version": "2.3.0",
|
||||
"version": "2.3.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpstan/phpdoc-parser.git",
|
||||
"reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495"
|
||||
"reference": "16dbf9937da8d4528ceb2145c9c7c0bd29e26374"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1e0cd5370df5dd2e556a36b9c62f62e555870495",
|
||||
"reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495",
|
||||
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/16dbf9937da8d4528ceb2145c9c7c0bd29e26374",
|
||||
"reference": "16dbf9937da8d4528ceb2145c9c7c0bd29e26374",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -10190,9 +10362,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/2.3.0"
|
||||
"source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.1"
|
||||
},
|
||||
"time": "2025-08-30T15:50:23+00:00"
|
||||
"time": "2026-01-12T11:33:04+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpstan/phpstan",
|
||||
|
|
@ -10688,16 +10860,16 @@
|
|||
},
|
||||
{
|
||||
"name": "rector/rector",
|
||||
"version": "2.3.0",
|
||||
"version": "2.3.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/rectorphp/rector.git",
|
||||
"reference": "f7166355dcf47482f27be59169b0825995f51c7d"
|
||||
"reference": "9afc1bb43571b25629f353c61a9315b5ef31383a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/rectorphp/rector/zipball/f7166355dcf47482f27be59169b0825995f51c7d",
|
||||
"reference": "f7166355dcf47482f27be59169b0825995f51c7d",
|
||||
"url": "https://api.github.com/repos/rectorphp/rector/zipball/9afc1bb43571b25629f353c61a9315b5ef31383a",
|
||||
"reference": "9afc1bb43571b25629f353c61a9315b5ef31383a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -10736,7 +10908,7 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/rectorphp/rector/issues",
|
||||
"source": "https://github.com/rectorphp/rector/tree/2.3.0"
|
||||
"source": "https://github.com/rectorphp/rector/tree/2.3.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -10744,7 +10916,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2025-12-25T22:00:18+00:00"
|
||||
"time": "2026-01-13T15:13:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/cli-parser",
|
||||
|
|
@ -11806,16 +11978,16 @@
|
|||
},
|
||||
{
|
||||
"name": "webmozart/assert",
|
||||
"version": "2.1.1",
|
||||
"version": "2.1.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/webmozarts/assert.git",
|
||||
"reference": "bdbabc199a7ba9965484e4725d66170e5711323b"
|
||||
"reference": "ce6a2f100c404b2d32a1dd1270f9b59ad4f57649"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/webmozarts/assert/zipball/bdbabc199a7ba9965484e4725d66170e5711323b",
|
||||
"reference": "bdbabc199a7ba9965484e4725d66170e5711323b",
|
||||
"url": "https://api.github.com/repos/webmozarts/assert/zipball/ce6a2f100c404b2d32a1dd1270f9b59ad4f57649",
|
||||
"reference": "ce6a2f100c404b2d32a1dd1270f9b59ad4f57649",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -11862,9 +12034,9 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/webmozarts/assert/issues",
|
||||
"source": "https://github.com/webmozarts/assert/tree/2.1.1"
|
||||
"source": "https://github.com/webmozarts/assert/tree/2.1.2"
|
||||
},
|
||||
"time": "2026-01-08T11:28:40+00:00"
|
||||
"time": "2026-01-13T14:02:24+00:00"
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
<?php
|
||||
|
||||
use App\Models\Plugin;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
|
|
@ -13,16 +13,16 @@ return new class extends Migration
|
|||
public function up(): void
|
||||
{
|
||||
// Find and handle duplicate (user_id, trmnlp_id) combinations
|
||||
$duplicates = DB::table('plugins')
|
||||
->select('user_id', 'trmnlp_id', DB::raw('COUNT(*) as count'))
|
||||
$duplicates = Plugin::query()
|
||||
->selectRaw('user_id, trmnlp_id, COUNT(*) as duplicate_count')
|
||||
->whereNotNull('trmnlp_id')
|
||||
->groupBy('user_id', 'trmnlp_id')
|
||||
->having('count', '>', 1)
|
||||
->havingRaw('COUNT(*) > ?', [1])
|
||||
->get();
|
||||
|
||||
// For each duplicate combination, keep the first one (by id) and set others to null
|
||||
foreach ($duplicates as $duplicate) {
|
||||
$plugins = DB::table('plugins')
|
||||
$plugins = Plugin::query()
|
||||
->where('user_id', $duplicate->user_id)
|
||||
->where('trmnlp_id', $duplicate->trmnlp_id)
|
||||
->orderBy('id')
|
||||
|
|
@ -37,9 +37,7 @@ return new class extends Migration
|
|||
continue;
|
||||
}
|
||||
|
||||
DB::table('plugins')
|
||||
->where('id', $plugin->id)
|
||||
->update(['trmnlp_id' => null]);
|
||||
$plugin->update(['trmnlp_id' => null]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ class ExampleRecipesSeeder extends Seeder
|
|||
public function run($user_id = 1): void
|
||||
{
|
||||
Plugin::updateOrCreate(
|
||||
['uuid' => '9e46c6cf-358c-4bfe-8998-436b3a207fec'],
|
||||
[
|
||||
'uuid' => '9e46c6cf-358c-4bfe-8998-436b3a207fec',
|
||||
'name' => 'ÖBB Departures',
|
||||
'user_id' => $user_id,
|
||||
'data_payload' => null,
|
||||
|
|
@ -32,8 +32,8 @@ class ExampleRecipesSeeder extends Seeder
|
|||
);
|
||||
|
||||
Plugin::updateOrCreate(
|
||||
['uuid' => '3b046eda-34e9-4232-b935-c33b989a284b'],
|
||||
[
|
||||
'uuid' => '3b046eda-34e9-4232-b935-c33b989a284b',
|
||||
'name' => 'Weather',
|
||||
'user_id' => $user_id,
|
||||
'data_payload' => null,
|
||||
|
|
@ -51,8 +51,8 @@ class ExampleRecipesSeeder extends Seeder
|
|||
);
|
||||
|
||||
Plugin::updateOrCreate(
|
||||
['uuid' => '21464b16-5f5a-4099-a967-f5c915e3da54'],
|
||||
[
|
||||
'uuid' => '21464b16-5f5a-4099-a967-f5c915e3da54',
|
||||
'name' => 'Zen Quotes',
|
||||
'user_id' => $user_id,
|
||||
'data_payload' => null,
|
||||
|
|
@ -70,8 +70,8 @@ class ExampleRecipesSeeder extends Seeder
|
|||
);
|
||||
|
||||
Plugin::updateOrCreate(
|
||||
['uuid' => '8d472959-400f-46ee-afb2-4a9f1cfd521f'],
|
||||
[
|
||||
'uuid' => '8d472959-400f-46ee-afb2-4a9f1cfd521f',
|
||||
'name' => 'This Day in History',
|
||||
'user_id' => $user_id,
|
||||
'data_payload' => null,
|
||||
|
|
@ -89,8 +89,8 @@ class ExampleRecipesSeeder extends Seeder
|
|||
);
|
||||
|
||||
Plugin::updateOrCreate(
|
||||
['uuid' => '4349fdad-a273-450b-aa00-3d32f2de788d'],
|
||||
[
|
||||
'uuid' => '4349fdad-a273-450b-aa00-3d32f2de788d',
|
||||
'name' => 'Home Assistant',
|
||||
'user_id' => $user_id,
|
||||
'data_payload' => null,
|
||||
|
|
@ -108,8 +108,8 @@ class ExampleRecipesSeeder extends Seeder
|
|||
);
|
||||
|
||||
Plugin::updateOrCreate(
|
||||
['uuid' => 'be5f7e1f-3ad8-4d66-93b2-36f7d6dcbd80'],
|
||||
[
|
||||
'uuid' => 'be5f7e1f-3ad8-4d66-93b2-36f7d6dcbd80',
|
||||
'name' => 'Sunrise/Sunset',
|
||||
'user_id' => $user_id,
|
||||
'data_payload' => null,
|
||||
|
|
@ -127,8 +127,8 @@ class ExampleRecipesSeeder extends Seeder
|
|||
);
|
||||
|
||||
Plugin::updateOrCreate(
|
||||
['uuid' => '82d3ee14-d578-4969-bda5-2bbf825435fe'],
|
||||
[
|
||||
'uuid' => '82d3ee14-d578-4969-bda5-2bbf825435fe',
|
||||
'name' => 'Pollen Forecast',
|
||||
'user_id' => $user_id,
|
||||
'data_payload' => null,
|
||||
|
|
@ -146,8 +146,8 @@ class ExampleRecipesSeeder extends Seeder
|
|||
);
|
||||
|
||||
Plugin::updateOrCreate(
|
||||
['uuid' => '1d98bca4-837d-4b01-b1a1-e3b6e56eca90'],
|
||||
[
|
||||
'uuid' => '1d98bca4-837d-4b01-b1a1-e3b6e56eca90',
|
||||
'name' => 'Holidays (iCal)',
|
||||
'user_id' => $user_id,
|
||||
'data_payload' => null,
|
||||
|
|
|
|||
|
|
@ -803,7 +803,7 @@ HTML;
|
|||
</flux:field>
|
||||
</div>
|
||||
|
||||
<flux:button variant="primary" icon="cloud-arrow-down" wire:click="updateData" class="w-full mt-4">
|
||||
<flux:button icon="cloud-arrow-down" wire:click="updateData" class="w-full mt-4">
|
||||
Fetch data now
|
||||
</flux:button>
|
||||
</div>
|
||||
|
|
@ -950,7 +950,7 @@ HTML;
|
|||
/>
|
||||
<div
|
||||
x-data="codeEditorFormComponent({
|
||||
isDisabled: false,
|
||||
isDisabled: @js((bool)$plugin->render_markup_view),
|
||||
language: 'liquid',
|
||||
state: $wire.entangle('markup_code'),
|
||||
textareaId: @js($textareaId)
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ new class extends Component {
|
|||
|
||||
<flux:field>
|
||||
<flux:checkbox wire:model.live="alias" label="Enable Alias" />
|
||||
<flux:description>Enable a public alias URL for this recipe.</flux:description>
|
||||
<flux:description>Enable an Alias URL for this recipe. Your server does not need to be exposed to the internet, but your device must be able to reach the URL. <a href="https://help.usetrmnl.com/en/articles/10701448-alias-plugin">Docs</a></flux:description>
|
||||
</flux:field>
|
||||
|
||||
@if($alias)
|
||||
|
|
@ -87,7 +87,7 @@ new class extends Component {
|
|||
readonly
|
||||
copyable
|
||||
/>
|
||||
<flux:description>Use this URL to access the recipe image directly. Add <code>?device-model=name</code> to specify a device model.</flux:description>
|
||||
<flux:description>Copy this URL to your TRMNL Dashboard. By default, image is created for TRMNL OG; use parameter <code>?device-model=</code> to specify a device model.</flux:description>
|
||||
</flux:field>
|
||||
@endif
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -3,11 +3,11 @@
|
|||
<x-trmnl::view size="{{ $size }}">
|
||||
<x-trmnl::layout>
|
||||
<x-trmnl::layout class="layout--col">
|
||||
<div class="b-h-gray-1">{{$data[0]['a']}}</div>
|
||||
@if (strlen($data[0]['q']) < 300 && $size != 'quadrant')
|
||||
<p class="value">{{ $data[0]['q'] }}</p>
|
||||
<div class="b-h-gray-1">{{$data['data'][0]['a'] ?? ''}}</div>
|
||||
@if (strlen($data['data'][0]['q'] ?? '') < 300 && $size != 'quadrant')
|
||||
<p class="value">{{ $data['data'][0]['q'] ?? '' }}</p>
|
||||
@else
|
||||
<p class="value--small">{{ $data[0]['q'] }}</p>
|
||||
<p class="value--small">{{ $data['data'][0]['q'] ?? '' }}</p>
|
||||
@endif
|
||||
</x-trmnl::layout>
|
||||
</x-trmnl::layout>
|
||||
|
|
|
|||
|
|
@ -18,15 +18,13 @@ use Illuminate\Support\Str;
|
|||
Route::get('/display', function (Request $request) {
|
||||
$mac_address = $request->header('id');
|
||||
$access_token = $request->header('access-token');
|
||||
$device = Device::where('mac_address', mb_strtoupper($mac_address ?? ''))
|
||||
->where('api_key', $access_token)
|
||||
->first();
|
||||
$device = Device::where('api_key', $access_token)->first();
|
||||
|
||||
if (! $device) {
|
||||
// Check if there's a user with assign_new_devices enabled
|
||||
$auto_assign_user = User::where('assign_new_devices', true)->first();
|
||||
|
||||
if ($auto_assign_user) {
|
||||
if ($auto_assign_user && $mac_address) {
|
||||
// Create a new device and assign it to this user
|
||||
$device = Device::create([
|
||||
'mac_address' => mb_strtoupper($mac_address ?? ''),
|
||||
|
|
@ -39,7 +37,7 @@ Route::get('/display', function (Request $request) {
|
|||
]);
|
||||
} else {
|
||||
return response()->json([
|
||||
'message' => 'MAC Address not registered or invalid access token',
|
||||
'message' => 'MAC Address not registered (or not set), or invalid access token',
|
||||
], 404);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -263,7 +263,7 @@ test('invalid device credentials return error', function (): void {
|
|||
])->get('/api/display');
|
||||
|
||||
$response->assertNotFound()
|
||||
->assertJson(['message' => 'MAC Address not registered or invalid access token']);
|
||||
->assertJson(['message' => 'MAC Address not registered (or not set), or invalid access token']);
|
||||
});
|
||||
|
||||
test('log endpoint requires valid device credentials', function (): void {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue