From 0891256d837f9d3ee31216108bc5db5cc1773217 Mon Sep 17 00:00:00 2001 From: Will Browning Date: Fri, 16 Dec 2022 11:27:55 +0000 Subject: [PATCH] Fixes #400 --- .husky/_/husky.sh | 11 +- .../Mime/Crypto/OpenPGPEncrypter.php | 102 +----- app/Models/Domain.php | 73 +++-- composer.lock | 298 +++++++++--------- config/anonaddy.php | 2 +- package-lock.json | 158 +++++----- 6 files changed, 300 insertions(+), 344 deletions(-) diff --git a/.husky/_/husky.sh b/.husky/_/husky.sh index 6809ccc..cec959a 100644 --- a/.husky/_/husky.sh +++ b/.husky/_/husky.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/usr/bin/env sh if [ -z "$husky_skip_init" ]; then debug () { if [ "$HUSKY_DEBUG" = "1" ]; then @@ -6,7 +6,7 @@ if [ -z "$husky_skip_init" ]; then fi } - readonly hook_name="$(basename "$0")" + readonly hook_name="$(basename -- "$0")" debug "starting $hook_name..." if [ "$HUSKY" = "0" ]; then @@ -19,7 +19,8 @@ if [ -z "$husky_skip_init" ]; then . ~/.huskyrc fi - export readonly husky_skip_init=1 + readonly husky_skip_init=1 + export husky_skip_init sh -e "$0" "$@" exitCode="$?" @@ -27,5 +28,9 @@ if [ -z "$husky_skip_init" ]; then echo "husky - $hook_name hook exited with code $exitCode (error)" fi + if [ $exitCode = 127 ]; then + echo "husky - command not found in PATH=$PATH" + fi + exit $exitCode fi diff --git a/app/CustomMailDriver/Mime/Crypto/OpenPGPEncrypter.php b/app/CustomMailDriver/Mime/Crypto/OpenPGPEncrypter.php index 02cbd2e..3b63a86 100644 --- a/app/CustomMailDriver/Mime/Crypto/OpenPGPEncrypter.php +++ b/app/CustomMailDriver/Mime/Crypto/OpenPGPEncrypter.php @@ -115,23 +115,12 @@ class OpenPGPEncrypter $boundary = strtr(base64_encode(random_bytes(6)), '+/', '-_'); - $headers->setHeaderBody('Parameterized', 'Content-Type', 'multipart/signed'); - $headers->setHeaderParameter('Content-Type', 'micalg', sprintf('pgp-%s', strtolower($this->micalg))); - $headers->setHeaderParameter('Content-Type', 'protocol', 'application/pgp-signature'); + $headers->setHeaderBody('Parameterized', 'Content-Type', 'multipart/encrypted'); + $headers->setHeaderParameter('Content-Type', 'protocol', 'application/pgp-encrypted'); $headers->setHeaderParameter('Content-Type', 'boundary', $boundary); $message->setHeaders($headers); - if (! $this->signingKey) { - foreach ($message->getFrom() as $key => $value) { - $this->addSignature($this->getKey($key, 'sign')); - } - } - - if (! $this->signingKey) { - throw new RuntimeException('Signing has been enabled, but no signature has been added. Use autoAddSignature() or addSignature()'); - } - // If the email does not have any text part then we need to add a text/plain legacy display part if ($this->usesProtectedHeaders && is_null($originalMessage->getTextBody())) { $originalMessage->text($headers->get('Subject')->toString()); @@ -160,34 +149,10 @@ class OpenPGPEncrypter } // Remove excess trailing newlines (RFC3156 section 5.4) - $signedBody = rtrim(implode('', $lines))."\r\n"; + $originalBody = rtrim(implode('', $lines))."\r\n"; - $signature = $this->pgpSignString($signedBody, $this->signingKey); - - // Fixes DKIM signature incorrect body hash for custom domains - $body = "This is an OpenPGP/MIME signed message (RFC 4880 and 3156)\r\n\r\n"; - $body .= "--{$boundary}\r\n"; - $body .= $signedBody."\r\n"; - $body .= "--{$boundary}\r\n"; - $body .= "Content-Type: application/pgp-signature; name=\"signature.asc\"\r\n"; - $body .= "Content-Description: OpenPGP digital signature\r\n"; - $body .= "Content-Disposition: attachment; filename=\"signature.asc\"\r\n\r\n"; - $body .= $signature."\r\n\r\n"; - $body .= "--{$boundary}--"; - - $signed = sprintf("%s\r\n%s", $message->getHeaders()->get('content-type')->toString(), $body); - - if (! $this->recipientKey) { - throw new RuntimeException('Encryption has been enabled, but no recipients have been added. Use autoAddRecipients() or addRecipient()'); - } - - //Create body from signed message - $encryptedBody = $this->pgpEncryptString($signed, $this->recipientKey); - - $headers->setHeaderBody('Parameterized', 'Content-Type', 'multipart/encrypted'); - $headers->setHeaderParameter('Content-Type', 'micalg', null); - $headers->setHeaderParameter('Content-Type', 'protocol', 'application/pgp-encrypted'); - $headers->setHeaderParameter('Content-Type', 'boundary', $boundary); + // Create encrypted body from original message + $encryptedBody = $this->pgpEncryptAndSignString($originalBody, $this->recipientKey, $this->signingKey); // Fixes DKIM signature incorrect body hash for custom domains $body = "This is an OpenPGP/MIME encrypted message (RFC 4880 and 3156)\r\n\r\n"; @@ -263,35 +228,6 @@ class OpenPGPEncrypter $this->gnupg->seterrormode(\gnupg::ERROR_EXCEPTION); } - /** - * @param $plaintext - * @param $keyFingerprint - * @return string - * - * @throws RuntimeException - */ - protected function pgpSignString($plaintext, $keyFingerprint) - { - if (isset($this->keyPassphrases[$keyFingerprint]) && ! $this->keyPassphrases[$keyFingerprint]) { - $passPhrase = $this->keyPassphrases[$keyFingerprint]; - } else { - $passPhrase = null; - } - - $this->gnupg->clearsignkeys(); - $this->gnupg->addsignkey($keyFingerprint, $passPhrase); - $this->gnupg->setsignmode(\gnupg::SIG_MODE_DETACH); - $this->gnupg->setarmor(1); - - $signed = $this->gnupg->sign($plaintext); - - if ($signed) { - return $signed; - } - - throw new RuntimeException('Unable to sign message (perhaps the secret key is encrypted with a passphrase?)'); - } - /** * @param $plaintext * @param $keyFingerprints @@ -299,31 +235,7 @@ class OpenPGPEncrypter * * @throws RuntimeException */ - protected function pgpEncryptString($plaintext, $keyFingerprint) - { - $this->gnupg->clearencryptkeys(); - - $this->gnupg->addencryptkey($keyFingerprint); - - $this->gnupg->setarmor(1); - - $encrypted = $this->gnupg->encrypt($plaintext); - - if ($encrypted) { - return $encrypted; - } - - throw new RuntimeException('Unable to encrypt message'); - } - - /** - * @param $plaintext - * @param $keyFingerprints - * @return string - * - * @throws RuntimeException - */ - protected function pgpEncryptAndSignString($plaintext, $keyFingerprint, $signingKeyFingerprint) + protected function pgpEncryptAndSignString($text, $keyFingerprint, $signingKeyFingerprint) { if (isset($this->keyPassphrases[$signingKeyFingerprint]) && ! $this->keyPassphrases[$signingKeyFingerprint]) { $passPhrase = $this->keyPassphrases[$signingKeyFingerprint]; @@ -337,7 +249,7 @@ class OpenPGPEncrypter $this->gnupg->addencryptkey($keyFingerprint); $this->gnupg->setarmor(1); - $encrypted = $this->gnupg->encryptsign($plaintext); + $encrypted = $this->gnupg->encryptsign($text); if ($encrypted) { return $encrypted; diff --git a/app/Models/Domain.php b/app/Models/Domain.php index 6479113..6f08cd7 100644 --- a/app/Models/Domain.php +++ b/app/Models/Domain.php @@ -5,9 +5,11 @@ namespace App\Models; use App\Http\Resources\DomainResource; use App\Traits\HasEncryptedAttributes; use App\Traits\HasUuid; +use Exception; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\App; +use Illuminate\Support\Facades\Log; class Domain extends Model { @@ -193,10 +195,16 @@ class Domain extends Model return true; } - return collect(dns_get_record($this->domain.'.', DNS_TXT)) + try { + return collect(dns_get_record($this->domain.'.', DNS_TXT)) ->contains(function ($r) { return trim($r['txt']) === 'aa-verify='.sha1(config('anonaddy.secret').user()->id.user()->domains->count()); }); + } catch (Exception $e) { + Log::info('DNS Get TXT Error:', ['domain' => $this->domain, 'user' => $this->user?->username, 'error' => $e->getMessage()]); + + return false; + } } /** @@ -208,9 +216,20 @@ class Domain extends Model return true; } - $mx = collect(dns_get_record($this->domain.'.', DNS_MX)) - ->sortBy('pri') - ->first(); + try { + $mx = collect(dns_get_record($this->domain.'.', DNS_MX)) + ->sortBy('pri') + ->first(); + } catch (Exception $e) { + Log::info('DNS Get MX Error:', ['domain' => $this->domain, 'user' => $this->user?->username, 'error' => $e->getMessage()]); + + // If an error occurs then do not unverify + if (! is_null($this->domain_mx_validated_at)) { + return true; + } + + return false; + } if (! isset($mx['target'])) { return false; @@ -237,10 +256,16 @@ class Domain extends Model ]); } - $spf = collect(dns_get_record($this->domain.'.', DNS_TXT)) - ->contains(function ($r) { - return preg_match("/^(v=spf1).*(include:spf\.".config('anonaddy.domain').'|mx).*(-|~)all$/', $r['txt']); - }); + try { + $spf = collect(dns_get_record($this->domain.'.', DNS_TXT)) + ->contains(function ($r) { + return preg_match("/^(v=spf1).*(include:spf\.".config('anonaddy.domain').'|mx).*(-|~)all$/', $r['txt']); + }); + } catch (Exception $e) { + Log::info('DNS Get SPF Error:', ['domain' => $this->domain, 'user' => $this->user?->username, 'error' => $e->getMessage()]); + + $spf = null; + } if (! $spf) { return response()->json([ @@ -249,10 +274,16 @@ class Domain extends Model ]); } - $dmarc = collect(dns_get_record('_dmarc.'.$this->domain.'.', DNS_TXT)) - ->contains(function ($r) { - return preg_match('/^(v=DMARC1).*(p=quarantine|reject).*/', $r['txt']); - }); + try { + $dmarc = collect(dns_get_record('_dmarc.'.$this->domain.'.', DNS_TXT)) + ->contains(function ($r) { + return preg_match('/^(v=DMARC1).*(p=quarantine|reject).*/', $r['txt']); + }); + } catch (Exception $e) { + Log::info('DNS Get DMARC Error:', ['domain' => $this->domain, 'user' => $this->user?->username, 'error' => $e->getMessage()]); + + $dmarc = null; + } if (! $dmarc) { return response()->json([ @@ -261,15 +292,21 @@ class Domain extends Model ]); } - $def = collect(dns_get_record('default._domainkey.'.$this->domain.'.', DNS_CNAME)) - ->contains(function ($r) { - return $r['target'] === 'default._domainkey.'.config('anonaddy.domain'); - }); + try { + $dkim = collect(dns_get_record(config('anonaddy.dkim_selector').'._domainkey.'.$this->domain.'.', DNS_CNAME)) + ->contains(function ($r) { + return $r['target'] === config('anonaddy.dkim_selector').'._domainkey.'.config('anonaddy.domain'); + }); + } catch (Exception $e) { + Log::info('DNS Get DKIM Error:', ['domain' => $this->domain, 'user' => $this->user?->username, 'error' => $e->getMessage()]); - if (! $def) { + $dkim = null; + } + + if (! $dkim) { return response()->json([ 'success' => false, - 'message' => 'CNAME default._domainkey record not found. This could be due to DNS caching, please try again later.', + 'message' => 'CNAME '.config('anonaddy.dkim_selector').'._domainkey record not found. This could be due to DNS caching, please try again later.', ]); } diff --git a/composer.lock b/composer.lock index 7ca0cb5..e4b7026 100644 --- a/composer.lock +++ b/composer.lock @@ -96,16 +96,16 @@ }, { "name": "bacon/bacon-qr-code", - "version": "2.0.7", + "version": "2.0.8", "source": { "type": "git", "url": "https://github.com/Bacon/BaconQrCode.git", - "reference": "d70c840f68657ce49094b8d91f9ee0cc07fbf66c" + "reference": "8674e51bb65af933a5ffaf1c308a660387c35c22" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/d70c840f68657ce49094b8d91f9ee0cc07fbf66c", - "reference": "d70c840f68657ce49094b8d91f9ee0cc07fbf66c", + "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/8674e51bb65af933a5ffaf1c308a660387c35c22", + "reference": "8674e51bb65af933a5ffaf1c308a660387c35c22", "shasum": "" }, "require": { @@ -144,9 +144,9 @@ "homepage": "https://github.com/Bacon/BaconQrCode", "support": { "issues": "https://github.com/Bacon/BaconQrCode/issues", - "source": "https://github.com/Bacon/BaconQrCode/tree/2.0.7" + "source": "https://github.com/Bacon/BaconQrCode/tree/2.0.8" }, - "time": "2022-03-14T02:02:36+00:00" + "time": "2022-12-07T17:46:57+00:00" }, { "name": "brick/math", @@ -1788,16 +1788,16 @@ }, { "name": "laravel/framework", - "version": "v9.42.2", + "version": "v9.44.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "607d7867c93706eae20e28e46679f8a66e2a23ec" + "reference": "60808a7d9acd53461fd69634c08fc7e0a99fbf98" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/607d7867c93706eae20e28e46679f8a66e2a23ec", - "reference": "607d7867c93706eae20e28e46679f8a66e2a23ec", + "url": "https://api.github.com/repos/laravel/framework/zipball/60808a7d9acd53461fd69634c08fc7e0a99fbf98", + "reference": "60808a7d9acd53461fd69634c08fc7e0a99fbf98", "shasum": "" }, "require": { @@ -1970,7 +1970,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2022-11-30T16:23:52+00:00" + "time": "2022-12-15T14:56:36+00:00" }, { "name": "laravel/sanctum", @@ -2167,16 +2167,16 @@ }, { "name": "laravel/ui", - "version": "v4.1.0", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/laravel/ui.git", - "reference": "f2f879e9f0947a1ede12b0ff7446ce4e249479cd" + "reference": "ac94e596ffd39c63cfa41f5407b765b07df97483" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/ui/zipball/f2f879e9f0947a1ede12b0ff7446ce4e249479cd", - "reference": "f2f879e9f0947a1ede12b0ff7446ce4e249479cd", + "url": "https://api.github.com/repos/laravel/ui/zipball/ac94e596ffd39c63cfa41f5407b765b07df97483", + "reference": "ac94e596ffd39c63cfa41f5407b765b07df97483", "shasum": "" }, "require": { @@ -2222,9 +2222,9 @@ "ui" ], "support": { - "source": "https://github.com/laravel/ui/tree/v4.1.0" + "source": "https://github.com/laravel/ui/tree/v4.1.1" }, - "time": "2022-11-15T14:36:57+00:00" + "time": "2022-12-05T15:09:21+00:00" }, { "name": "lcobucci/clock", @@ -2289,16 +2289,16 @@ }, { "name": "league/commonmark", - "version": "2.3.7", + "version": "2.3.8", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "a36bd2be4f5387c0f3a8792a0d76b7d68865abbf" + "reference": "c493585c130544c4e91d2e0e131e6d35cb0cbc47" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/a36bd2be4f5387c0f3a8792a0d76b7d68865abbf", - "reference": "a36bd2be4f5387c0f3a8792a0d76b7d68865abbf", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/c493585c130544c4e91d2e0e131e6d35cb0cbc47", + "reference": "c493585c130544c4e91d2e0e131e6d35cb0cbc47", "shasum": "" }, "require": { @@ -2326,7 +2326,7 @@ "symfony/finder": "^5.3 | ^6.0", "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0", "unleashedtech/php-coding-standard": "^3.1.1", - "vimeo/psalm": "^4.24.0" + "vimeo/psalm": "^4.24.0 || ^5.0.0" }, "suggest": { "symfony/yaml": "v2.3+ required if using the Front Matter extension" @@ -2391,20 +2391,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T17:29:46+00:00" + "time": "2022-12-10T16:02:17+00:00" }, { "name": "league/config", - "version": "v1.1.1", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/thephpleague/config.git", - "reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e" + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/config/zipball/a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e", - "reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e", + "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", "shasum": "" }, "require": { @@ -2413,7 +2413,7 @@ "php": "^7.4 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^0.12.90", + "phpstan/phpstan": "^1.8.2", "phpunit/phpunit": "^9.5.5", "scrutinizer/ocular": "^1.8.1", "unleashedtech/php-coding-standard": "^3.1", @@ -2473,7 +2473,7 @@ "type": "github" } ], - "time": "2021-08-14T12:15:32+00:00" + "time": "2022-12-11T20:36:23+00:00" }, { "name": "league/flysystem", @@ -2703,23 +2703,23 @@ }, { "name": "maennchen/zipstream-php", - "version": "2.3.0", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/maennchen/ZipStream-PHP.git", - "reference": "8df0a40fff7b5cbf86cf9a6d7d8d15b9bc03bc98" + "reference": "3fa72e4c71a43f9e9118752a5c90e476a8dc9eb3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/8df0a40fff7b5cbf86cf9a6d7d8d15b9bc03bc98", - "reference": "8df0a40fff7b5cbf86cf9a6d7d8d15b9bc03bc98", + "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/3fa72e4c71a43f9e9118752a5c90e476a8dc9eb3", + "reference": "3fa72e4c71a43f9e9118752a5c90e476a8dc9eb3", "shasum": "" }, "require": { + "ext-mbstring": "*", "myclabs/php-enum": "^1.5", "php": "^8.0", - "psr/http-message": "^1.0", - "symfony/polyfill-mbstring": "^1.0" + "psr/http-message": "^1.0" }, "require-dev": { "ext-zip": "*", @@ -2728,7 +2728,7 @@ "mikey179/vfsstream": "^1.6", "php-coveralls/php-coveralls": "^2.4", "phpunit/phpunit": "^8.5.8 || ^9.4.2", - "vimeo/psalm": "^4.1" + "vimeo/psalm": "^5.0" }, "type": "library", "autoload": { @@ -2765,7 +2765,7 @@ ], "support": { "issues": "https://github.com/maennchen/ZipStream-PHP/issues", - "source": "https://github.com/maennchen/ZipStream-PHP/tree/2.3.0" + "source": "https://github.com/maennchen/ZipStream-PHP/tree/v2.4.0" }, "funding": [ { @@ -2777,30 +2777,30 @@ "type": "open_collective" } ], - "time": "2022-11-28T12:13:34+00:00" + "time": "2022-12-08T12:29:14+00:00" }, { "name": "markbaker/complex", - "version": "3.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/MarkBaker/PHPComplex.git", - "reference": "ab8bc271e404909db09ff2d5ffa1e538085c0f22" + "reference": "95c56caa1cf5c766ad6d65b6344b807c1e8405b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/MarkBaker/PHPComplex/zipball/ab8bc271e404909db09ff2d5ffa1e538085c0f22", - "reference": "ab8bc271e404909db09ff2d5ffa1e538085c0f22", + "url": "https://api.github.com/repos/MarkBaker/PHPComplex/zipball/95c56caa1cf5c766ad6d65b6344b807c1e8405b9", + "reference": "95c56caa1cf5c766ad6d65b6344b807c1e8405b9", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", - "phpcompatibility/php-compatibility": "^9.0", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.3", - "squizlabs/php_codesniffer": "^3.4" + "dealerdirect/phpcodesniffer-composer-installer": "dev-master", + "phpcompatibility/php-compatibility": "^9.3", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "squizlabs/php_codesniffer": "^3.7" }, "type": "library", "autoload": { @@ -2826,9 +2826,9 @@ ], "support": { "issues": "https://github.com/MarkBaker/PHPComplex/issues", - "source": "https://github.com/MarkBaker/PHPComplex/tree/3.0.1" + "source": "https://github.com/MarkBaker/PHPComplex/tree/3.0.2" }, - "time": "2021-06-29T15:32:53+00:00" + "time": "2022-12-06T16:21:08+00:00" }, { "name": "markbaker/matrix", @@ -2888,16 +2888,16 @@ }, { "name": "mews/captcha", - "version": "v3.2.9", + "version": "3.2.10", "source": { "type": "git", "url": "https://github.com/mewebstudio/captcha.git", - "reference": "68e35397f9d511e91ac67499e1baf53829571dca" + "reference": "9aa77b818d46df8f46be16c2aea61a8fe77cb5e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mewebstudio/captcha/zipball/68e35397f9d511e91ac67499e1baf53829571dca", - "reference": "68e35397f9d511e91ac67499e1baf53829571dca", + "url": "https://api.github.com/repos/mewebstudio/captcha/zipball/9aa77b818d46df8f46be16c2aea61a8fe77cb5e6", + "reference": "9aa77b818d46df8f46be16c2aea61a8fe77cb5e6", "shasum": "" }, "require": { @@ -2955,9 +2955,9 @@ ], "support": { "issues": "https://github.com/mewebstudio/captcha/issues", - "source": "https://github.com/mewebstudio/captcha/tree/v3.2.9" + "source": "https://github.com/mewebstudio/captcha/tree/3.2.10" }, - "time": "2022-09-22T17:21:47+00:00" + "time": "2022-12-14T08:58:32+00:00" }, { "name": "monolog/monolog", @@ -5023,16 +5023,16 @@ }, { "name": "symfony/console", - "version": "v6.2.0", + "version": "v6.2.1", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "75d4749d9620a8fa21a2d2847800a84b5c4e7682" + "reference": "58f6cef5dc5f641b7bbdbf8b32b44cc926c35f3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/75d4749d9620a8fa21a2d2847800a84b5c4e7682", - "reference": "75d4749d9620a8fa21a2d2847800a84b5c4e7682", + "url": "https://api.github.com/repos/symfony/console/zipball/58f6cef5dc5f641b7bbdbf8b32b44cc926c35f3f", + "reference": "58f6cef5dc5f641b7bbdbf8b32b44cc926c35f3f", "shasum": "" }, "require": { @@ -5099,7 +5099,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.2.0" + "source": "https://github.com/symfony/console/tree/v6.2.1" }, "funding": [ { @@ -5115,7 +5115,7 @@ "type": "tidelift" } ], - "time": "2022-11-29T16:44:51+00:00" + "time": "2022-12-01T13:44:20+00:00" }, { "name": "symfony/css-selector", @@ -5184,16 +5184,16 @@ }, { "name": "symfony/deprecation-contracts", - "version": "v3.1.1", + "version": "v3.2.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918" + "reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", - "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/1ee04c65529dea5d8744774d474e7cbd2f1206d3", + "reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3", "shasum": "" }, "require": { @@ -5202,7 +5202,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.1-dev" + "dev-main": "3.3-dev" }, "thanks": { "name": "symfony/contracts", @@ -5231,7 +5231,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.1.1" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.0" }, "funding": [ { @@ -5247,20 +5247,20 @@ "type": "tidelift" } ], - "time": "2022-02-25T11:15:52+00:00" + "time": "2022-11-25T10:21:52+00:00" }, { "name": "symfony/error-handler", - "version": "v6.2.0", + "version": "v6.2.1", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "d9894724a9d20afd3329e36b36e45835b5c2ab3e" + "reference": "b4e41f62c1124378863ff2705158a60da3e4c6b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/d9894724a9d20afd3329e36b36e45835b5c2ab3e", - "reference": "d9894724a9d20afd3329e36b36e45835b5c2ab3e", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/b4e41f62c1124378863ff2705158a60da3e4c6b9", + "reference": "b4e41f62c1124378863ff2705158a60da3e4c6b9", "shasum": "" }, "require": { @@ -5302,7 +5302,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.2.0" + "source": "https://github.com/symfony/error-handler/tree/v6.2.1" }, "funding": [ { @@ -5318,7 +5318,7 @@ "type": "tidelift" } ], - "time": "2022-11-02T09:08:04+00:00" + "time": "2022-12-01T21:07:46+00:00" }, { "name": "symfony/event-dispatcher", @@ -5405,16 +5405,16 @@ }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.1.1", + "version": "v3.2.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "02ff5eea2f453731cfbc6bc215e456b781480448" + "reference": "0782b0b52a737a05b4383d0df35a474303cabdae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/02ff5eea2f453731cfbc6bc215e456b781480448", - "reference": "02ff5eea2f453731cfbc6bc215e456b781480448", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0782b0b52a737a05b4383d0df35a474303cabdae", + "reference": "0782b0b52a737a05b4383d0df35a474303cabdae", "shasum": "" }, "require": { @@ -5427,7 +5427,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.1-dev" + "dev-main": "3.3-dev" }, "thanks": { "name": "symfony/contracts", @@ -5464,7 +5464,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.1.1" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.2.0" }, "funding": [ { @@ -5480,7 +5480,7 @@ "type": "tidelift" } ], - "time": "2022-02-25T11:15:52+00:00" + "time": "2022-11-25T10:21:52+00:00" }, { "name": "symfony/finder", @@ -5548,16 +5548,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.2.0", + "version": "v6.2.1", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "edc56ed49a2955383d59e9b7043fd3bbc26f1854" + "reference": "d0bbd5a7e81b38f32504399b9199f265505b7bac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/edc56ed49a2955383d59e9b7043fd3bbc26f1854", - "reference": "edc56ed49a2955383d59e9b7043fd3bbc26f1854", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d0bbd5a7e81b38f32504399b9199f265505b7bac", + "reference": "d0bbd5a7e81b38f32504399b9199f265505b7bac", "shasum": "" }, "require": { @@ -5606,7 +5606,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.2.0" + "source": "https://github.com/symfony/http-foundation/tree/v6.2.1" }, "funding": [ { @@ -5622,20 +5622,20 @@ "type": "tidelift" } ], - "time": "2022-11-21T16:03:04+00:00" + "time": "2022-12-04T18:26:13+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.2.0", + "version": "v6.2.1", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "e008ce658dbd995b3c3ab3d9be0555ea3b11867e" + "reference": "bcbd2ea12fee651a4c8bff4f6f00cce2ac1f8404" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e008ce658dbd995b3c3ab3d9be0555ea3b11867e", - "reference": "e008ce658dbd995b3c3ab3d9be0555ea3b11867e", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/bcbd2ea12fee651a4c8bff4f6f00cce2ac1f8404", + "reference": "bcbd2ea12fee651a4c8bff4f6f00cce2ac1f8404", "shasum": "" }, "require": { @@ -5717,7 +5717,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.2.0" + "source": "https://github.com/symfony/http-kernel/tree/v6.2.1" }, "funding": [ { @@ -5733,20 +5733,20 @@ "type": "tidelift" } ], - "time": "2022-11-30T17:37:58+00:00" + "time": "2022-12-06T17:28:26+00:00" }, { "name": "symfony/mailer", - "version": "v6.2.0", + "version": "v6.2.1", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "7b355fca167fa5302c77bccdfa0af4d7abc6bd8c" + "reference": "a18c3dd41cfcf011e3866802e39b9ae9e541deaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/7b355fca167fa5302c77bccdfa0af4d7abc6bd8c", - "reference": "7b355fca167fa5302c77bccdfa0af4d7abc6bd8c", + "url": "https://api.github.com/repos/symfony/mailer/zipball/a18c3dd41cfcf011e3866802e39b9ae9e541deaf", + "reference": "a18c3dd41cfcf011e3866802e39b9ae9e541deaf", "shasum": "" }, "require": { @@ -5761,7 +5761,8 @@ "conflict": { "symfony/http-kernel": "<5.4", "symfony/messenger": "<6.2", - "symfony/mime": "<6.2" + "symfony/mime": "<6.2", + "symfony/twig-bridge": "<6.2.1" }, "require-dev": { "symfony/console": "^5.4|^6.0", @@ -5795,7 +5796,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.2.0" + "source": "https://github.com/symfony/mailer/tree/v6.2.1" }, "funding": [ { @@ -5811,7 +5812,7 @@ "type": "tidelift" } ], - "time": "2022-11-28T17:18:31+00:00" + "time": "2022-12-06T16:54:23+00:00" }, { "name": "symfony/mime", @@ -7053,16 +7054,16 @@ }, { "name": "symfony/translation-contracts", - "version": "v3.1.1", + "version": "v3.2.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "606be0f48e05116baef052f7f3abdb345c8e02cc" + "reference": "68cce71402305a015f8c1589bfada1280dc64fe7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/606be0f48e05116baef052f7f3abdb345c8e02cc", - "reference": "606be0f48e05116baef052f7f3abdb345c8e02cc", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/68cce71402305a015f8c1589bfada1280dc64fe7", + "reference": "68cce71402305a015f8c1589bfada1280dc64fe7", "shasum": "" }, "require": { @@ -7074,7 +7075,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.1-dev" + "dev-main": "3.3-dev" }, "thanks": { "name": "symfony/contracts", @@ -7114,7 +7115,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.1.1" + "source": "https://github.com/symfony/translation-contracts/tree/v3.2.0" }, "funding": [ { @@ -7130,7 +7131,7 @@ "type": "tidelift" } ], - "time": "2022-06-27T17:24:16+00:00" + "time": "2022-11-25T10:21:52+00:00" }, { "name": "symfony/uid", @@ -7208,16 +7209,16 @@ }, { "name": "symfony/var-dumper", - "version": "v6.2.0", + "version": "v6.2.1", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "6228b11059d7b279be699682f164a107ba9a268d" + "reference": "1e7544c8698627b908657e5276854d52ab70087a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6228b11059d7b279be699682f164a107ba9a268d", - "reference": "6228b11059d7b279be699682f164a107ba9a268d", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1e7544c8698627b908657e5276854d52ab70087a", + "reference": "1e7544c8698627b908657e5276854d52ab70087a", "shasum": "" }, "require": { @@ -7276,7 +7277,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.2.0" + "source": "https://github.com/symfony/var-dumper/tree/v6.2.1" }, "funding": [ { @@ -7292,7 +7293,7 @@ "type": "tidelift" } ], - "time": "2022-11-28T13:41:56+00:00" + "time": "2022-12-03T22:32:58+00:00" }, { "name": "thecodingmachine/safe", @@ -7646,16 +7647,16 @@ }, { "name": "web-auth/cose-lib", - "version": "4.0.12", + "version": "4.1.0", "source": { "type": "git", "url": "https://github.com/web-auth/cose-lib.git", - "reference": "fc733974fe12b550b54a94a08e4e184aca0015e5" + "reference": "fb53f1030e483235312957612806d69d846d66dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/web-auth/cose-lib/zipball/fc733974fe12b550b54a94a08e4e184aca0015e5", - "reference": "fc733974fe12b550b54a94a08e4e184aca0015e5", + "url": "https://api.github.com/repos/web-auth/cose-lib/zipball/fb53f1030e483235312957612806d69d846d66dd", + "reference": "fb53f1030e483235312957612806d69d846d66dd", "shasum": "" }, "require": { @@ -7663,8 +7664,8 @@ "ext-json": "*", "ext-mbstring": "*", "ext-openssl": "*", - "fgrosse/phpasn1": "^2.1", - "php": ">=8.1" + "php": ">=8.1", + "spomky-labs/pki-framework": "^1.0" }, "require-dev": { "ekino/phpstan-banned-code": "^1.0", @@ -7675,8 +7676,8 @@ "phpstan/phpstan-phpunit": "^1.1", "phpstan/phpstan-strict-rules": "^1.2", "phpunit/phpunit": "^9.5", - "qossmic/deptrac-shim": "^0.24.0", - "rector/rector": "^0.14", + "qossmic/deptrac-shim": "^1.0", + "rector/rector": "^0.15", "symfony/phpunit-bridge": "^6.1", "symplify/easy-coding-standard": "^11.0" }, @@ -7712,7 +7713,7 @@ ], "support": { "issues": "https://github.com/web-auth/cose-lib/issues", - "source": "https://github.com/web-auth/cose-lib/tree/4.0.12" + "source": "https://github.com/web-auth/cose-lib/tree/4.1.0" }, "funding": [ { @@ -7724,7 +7725,7 @@ "type": "patreon" } ], - "time": "2022-09-17T08:34:42+00:00" + "time": "2022-12-11T15:04:50+00:00" }, { "name": "web-auth/metadata-service", @@ -8164,20 +8165,20 @@ }, { "name": "fakerphp/faker", - "version": "v1.20.0", + "version": "v1.21.0", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "37f751c67a5372d4e26353bd9384bc03744ec77b" + "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/37f751c67a5372d4e26353bd9384bc03744ec77b", - "reference": "37f751c67a5372d4e26353bd9384bc03744ec77b", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/92efad6a967f0b79c499705c69b662f738cc9e4d", + "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0", + "php": "^7.4 || ^8.0", "psr/container": "^1.0 || ^2.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" }, @@ -8188,7 +8189,8 @@ "bamarni/composer-bin-plugin": "^1.4.1", "doctrine/persistence": "^1.3 || ^2.0", "ext-intl": "*", - "symfony/phpunit-bridge": "^4.4 || ^5.2" + "phpunit/phpunit": "^9.5.26", + "symfony/phpunit-bridge": "^5.4.16" }, "suggest": { "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", @@ -8200,7 +8202,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "v1.20-dev" + "dev-main": "v1.21-dev" } }, "autoload": { @@ -8225,9 +8227,9 @@ ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v1.20.0" + "source": "https://github.com/FakerPHP/Faker/tree/v1.21.0" }, - "time": "2022-07-20T13:12:54+00:00" + "time": "2022-12-13T13:54:32+00:00" }, { "name": "filp/whoops", @@ -8749,16 +8751,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.19", + "version": "9.2.21", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "c77b56b63e3d2031bd8997fcec43c1925ae46559" + "reference": "3f893e19712bb0c8bc86665d1562e9fd509c4ef0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c77b56b63e3d2031bd8997fcec43c1925ae46559", - "reference": "c77b56b63e3d2031bd8997fcec43c1925ae46559", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/3f893e19712bb0c8bc86665d1562e9fd509c4ef0", + "reference": "3f893e19712bb0c8bc86665d1562e9fd509c4ef0", "shasum": "" }, "require": { @@ -8814,7 +8816,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.19" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.21" }, "funding": [ { @@ -8822,7 +8824,7 @@ "type": "github" } ], - "time": "2022-11-18T07:47:47+00:00" + "time": "2022-12-14T13:26:54+00:00" }, { "name": "phpunit/php-file-iterator", @@ -9067,16 +9069,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.26", + "version": "9.5.27", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2" + "reference": "a2bc7ffdca99f92d959b3f2270529334030bba38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/851867efcbb6a1b992ec515c71cdcf20d895e9d2", - "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a2bc7ffdca99f92d959b3f2270529334030bba38", + "reference": "a2bc7ffdca99f92d959b3f2270529334030bba38", "shasum": "" }, "require": { @@ -9149,7 +9151,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.26" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.27" }, "funding": [ { @@ -9165,7 +9167,7 @@ "type": "tidelift" } ], - "time": "2022-10-28T06:00:21+00:00" + "time": "2022-12-09T07:31:23+00:00" }, { "name": "pimple/pimple", @@ -10392,16 +10394,16 @@ }, { "name": "spatie/laravel-ignition", - "version": "1.6.1", + "version": "1.6.2", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "2b79cf6ed40946b64ac6713d7d2da8a9d87f612b" + "reference": "d6e1e1ad93abe280abf41c33f8ea7647dfc0c233" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/2b79cf6ed40946b64ac6713d7d2da8a9d87f612b", - "reference": "2b79cf6ed40946b64ac6713d7d2da8a9d87f612b", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/d6e1e1ad93abe280abf41c33f8ea7647dfc0c233", + "reference": "d6e1e1ad93abe280abf41c33f8ea7647dfc0c233", "shasum": "" }, "require": { @@ -10478,7 +10480,7 @@ "type": "github" } ], - "time": "2022-10-26T17:39:54+00:00" + "time": "2022-12-08T15:31:38+00:00" }, { "name": "spatie/laravel-ray", diff --git a/config/anonaddy.php b/config/anonaddy.php index a158b21..126a607 100644 --- a/config/anonaddy.php +++ b/config/anonaddy.php @@ -189,7 +189,7 @@ return [ | */ - 'dkim_selector' => env('ANONADDY_DKIM_SELECTOR'), + 'dkim_selector' => env('ANONADDY_DKIM_SELECTOR', 'default'), /* |-------------------------------------------------------------------------- diff --git a/package-lock.json b/package-lock.json index cc630c8..1bbd66b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1659,9 +1659,9 @@ } }, "node_modules/@headlessui/vue": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@headlessui/vue/-/vue-1.7.4.tgz", - "integrity": "sha512-QHRlKCK/zRpjSjhth7c2CZvx5eMDFflXauqRdRJgp1CwScx6PwCpWiwDsjQcYM4z8Yik2ZvyX8W4PFT2Wsqqyw==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@headlessui/vue/-/vue-1.7.6.tgz", + "integrity": "sha512-G5Y23FLCk8/pkv/m/UMEMhISFn6mn2mDpmFuVIT7kT8536SSmxuXT6aJh3FSpztYIXjjE0hbD2qezmJ2OHtMjg==", "engines": { "node": ">=10" }, @@ -1899,12 +1899,12 @@ "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" }, "node_modules/@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.15.tgz", + "integrity": "sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==", "dependencies": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", + "@types/express-serve-static-core": "^4.17.31", "@types/qs": "*", "@types/serve-static": "*" } @@ -1993,9 +1993,9 @@ "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==" }, "node_modules/@types/node": { - "version": "18.11.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz", - "integrity": "sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g==" + "version": "18.11.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.15.tgz", + "integrity": "sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw==" }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -3019,9 +3019,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001436", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001436.tgz", - "integrity": "sha512-ZmWkKsnC2ifEPoWUvSAIGyOYwT+keAaaWPHiQ9DfMqS1t6tfuyFYoWR78TeZtznkEQ64+vGXH9cZrElwR2Mrxg==", + "version": "1.0.30001439", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz", + "integrity": "sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==", "funding": [ { "type": "opencollective", @@ -3564,13 +3564,13 @@ } }, "node_modules/css-loader": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.2.tgz", - "integrity": "sha512-oqGbbVcBJkm8QwmnNzrFrWTnudnRZC+1eXikLJl0n4ljcfotgRifpg2a1lKy8jTrc4/d9A/ap1GFq1jDKG7J+Q==", + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", + "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", "dev": true, "dependencies": { "icss-utils": "^5.1.0", - "postcss": "^8.4.18", + "postcss": "^8.4.19", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", @@ -3754,9 +3754,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.6.tgz", - "integrity": "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==" + "version": "1.11.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", + "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" }, "node_modules/de-indent": { "version": "1.0.2", @@ -5453,9 +5453,9 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.2.tgz", + "integrity": "sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==", "bin": { "json5": "lib/cli.js" }, @@ -6216,9 +6216,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.7.tgz", + "integrity": "sha512-EJ3rzxL9pTWPjk5arA0s0dgXpnyiAbJDE6wHT62g7VsgrgQgmmZ+Ru++M1BFofncWja+Pnn3rEr3fieRySAdKQ==" }, "node_modules/normalize-path": { "version": "3.0.0", @@ -6629,9 +6629,9 @@ } }, "node_modules/postcss": { - "version": "8.4.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", - "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "version": "8.4.20", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", + "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", "funding": [ { "type": "opencollective", @@ -6740,9 +6740,9 @@ } }, "node_modules/postcss-import": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.0.1.tgz", - "integrity": "sha512-UGlvk8EgT7Gm/Ndf9xZHnzr8xm8P54N8CBWLtcY5alP+YxlEge/Rv78etQyevZs3qWTE9If13+Bo6zATBrPOpA==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", @@ -7203,9 +7203,9 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "node_modules/prettier": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.0.tgz", - "integrity": "sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", + "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -7726,9 +7726,9 @@ } }, "node_modules/rxjs": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.6.0.tgz", - "integrity": "sha512-DDa7d8TFNUalGC9VqXvQ1euWNN7sc63TrUCuM9J998+ViviahMIjKSOU7rfcgFOF+FCD71BhDRv4hrFz+ImDLQ==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "dev": true, "dependencies": { "tslib": "^2.1.0" @@ -8731,8 +8731,8 @@ } }, "node_modules/v-clipboard": { - "version": "2.2.3", - "resolved": "git+ssh://git@github.com/euvl/v-clipboard.git#3c0e520f75a6efec26a6bb61419080c5bcb225b8", + "version": "2.3.0", + "resolved": "git+ssh://git@github.com/euvl/v-clipboard.git#e0f7e0c13faf502fc6c5c2e718ec18815e5f5012", "license": "MIT" }, "node_modules/vary": { @@ -10481,9 +10481,9 @@ "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==" }, "@headlessui/vue": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@headlessui/vue/-/vue-1.7.4.tgz", - "integrity": "sha512-QHRlKCK/zRpjSjhth7c2CZvx5eMDFflXauqRdRJgp1CwScx6PwCpWiwDsjQcYM4z8Yik2ZvyX8W4PFT2Wsqqyw==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@headlessui/vue/-/vue-1.7.6.tgz", + "integrity": "sha512-G5Y23FLCk8/pkv/m/UMEMhISFn6mn2mDpmFuVIT7kT8536SSmxuXT6aJh3FSpztYIXjjE0hbD2qezmJ2OHtMjg==", "requires": {} }, "@jridgewell/gen-mapping": { @@ -10688,12 +10688,12 @@ "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" }, "@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.15.tgz", + "integrity": "sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==", "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", + "@types/express-serve-static-core": "^4.17.31", "@types/qs": "*", "@types/serve-static": "*" } @@ -10782,9 +10782,9 @@ "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==" }, "@types/node": { - "version": "18.11.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz", - "integrity": "sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g==" + "version": "18.11.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.15.tgz", + "integrity": "sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw==" }, "@types/parse-json": { "version": "4.0.0", @@ -11639,9 +11639,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001436", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001436.tgz", - "integrity": "sha512-ZmWkKsnC2ifEPoWUvSAIGyOYwT+keAaaWPHiQ9DfMqS1t6tfuyFYoWR78TeZtznkEQ64+vGXH9cZrElwR2Mrxg==" + "version": "1.0.30001439", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz", + "integrity": "sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==" }, "chalk": { "version": "4.1.2", @@ -12052,13 +12052,13 @@ "requires": {} }, "css-loader": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.2.tgz", - "integrity": "sha512-oqGbbVcBJkm8QwmnNzrFrWTnudnRZC+1eXikLJl0n4ljcfotgRifpg2a1lKy8jTrc4/d9A/ap1GFq1jDKG7J+Q==", + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", + "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", "dev": true, "requires": { "icss-utils": "^5.1.0", - "postcss": "^8.4.18", + "postcss": "^8.4.19", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", @@ -12179,9 +12179,9 @@ "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==" }, "dayjs": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.6.tgz", - "integrity": "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==" + "version": "1.11.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", + "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" }, "de-indent": { "version": "1.0.2", @@ -13419,9 +13419,9 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.2.tgz", + "integrity": "sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==" }, "jsonfile": { "version": "6.1.0", @@ -13991,9 +13991,9 @@ } }, "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.7.tgz", + "integrity": "sha512-EJ3rzxL9pTWPjk5arA0s0dgXpnyiAbJDE6wHT62g7VsgrgQgmmZ+Ru++M1BFofncWja+Pnn3rEr3fieRySAdKQ==" }, "normalize-path": { "version": "3.0.0", @@ -14280,9 +14280,9 @@ } }, "postcss": { - "version": "8.4.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", - "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "version": "8.4.20", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", + "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", "requires": { "nanoid": "^3.3.4", "picocolors": "^1.0.0", @@ -14343,9 +14343,9 @@ "requires": {} }, "postcss-import": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.0.1.tgz", - "integrity": "sha512-UGlvk8EgT7Gm/Ndf9xZHnzr8xm8P54N8CBWLtcY5alP+YxlEge/Rv78etQyevZs3qWTE9If13+Bo6zATBrPOpA==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", "requires": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", @@ -14605,9 +14605,9 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "prettier": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.0.tgz", - "integrity": "sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", + "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", "dev": true }, "pretty-time": { @@ -14992,9 +14992,9 @@ } }, "rxjs": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.6.0.tgz", - "integrity": "sha512-DDa7d8TFNUalGC9VqXvQ1euWNN7sc63TrUCuM9J998+ViviahMIjKSOU7rfcgFOF+FCD71BhDRv4hrFz+ImDLQ==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "dev": true, "requires": { "tslib": "^2.1.0" @@ -15746,7 +15746,7 @@ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "v-clipboard": { - "version": "git+ssh://git@github.com/euvl/v-clipboard.git#3c0e520f75a6efec26a6bb61419080c5bcb225b8", + "version": "git+ssh://git@github.com/euvl/v-clipboard.git#e0f7e0c13faf502fc6c5c2e718ec18815e5f5012", "from": "v-clipboard@github:euvl/v-clipboard" }, "vary": {