Updated Rules
This commit is contained in:
parent
5e186b4f08
commit
bcc2c4329d
20 changed files with 1316 additions and 757 deletions
|
@ -43,6 +43,7 @@ This is the source code for self-hosting addy.io.
|
||||||
- [What is the max email size limit?](#what-is-the-max-email-size-limit)
|
- [What is the max email size limit?](#what-is-the-max-email-size-limit)
|
||||||
- [What happens if I have a subscription but then cancel it?](#what-happens-if-i-have-a-subscription-but-then-cancel-it)
|
- [What happens if I have a subscription but then cancel it?](#what-happens-if-i-have-a-subscription-but-then-cancel-it)
|
||||||
- [If I subscribe will Stripe see my real email address?](#if-i-subscribe-will-stripe-see-my-real-email-address)
|
- [If I subscribe will Stripe see my real email address?](#if-i-subscribe-will-stripe-see-my-real-email-address)
|
||||||
|
- [Do you offer student discount?](#do-you-offer-student-discount)
|
||||||
- [How do you prevent spammers?](#how-do-you-prevent-spammers)
|
- [How do you prevent spammers?](#how-do-you-prevent-spammers)
|
||||||
- [What do you use to do DNS lookups on domain names?](#what-do-you-use-to-do-dns-lookups-on-domain-names)
|
- [What do you use to do DNS lookups on domain names?](#what-do-you-use-to-do-dns-lookups-on-domain-names)
|
||||||
- [Is there a limit to how many emails I can forward?](#is-there-a-limit-to-how-many-emails-i-can-forward)
|
- [Is there a limit to how many emails I can forward?](#is-there-a-limit-to-how-many-emails-i-can-forward)
|
||||||
|
@ -363,6 +364,10 @@ You will not be able to activate any of the above again until you resubscribe.
|
||||||
|
|
||||||
When you subscribe you can choose which email to provide to Stripe, feel free to use an alias. This email will be used for notifications from Stripe such as; if your card payment fails or if your card has expired.
|
When you subscribe you can choose which email to provide to Stripe, feel free to use an alias. This email will be used for notifications from Stripe such as; if your card payment fails or if your card has expired.
|
||||||
|
|
||||||
|
## Do you offer student discount?
|
||||||
|
|
||||||
|
Currently, addy.io does not offer any student discounts.
|
||||||
|
|
||||||
## How do you prevent spammers?
|
## How do you prevent spammers?
|
||||||
|
|
||||||
The following is in place to help prevent spam:
|
The following is in place to help prevent spam:
|
||||||
|
|
|
@ -41,7 +41,7 @@ class EmailUsersWithTokenExpiringSoon extends Command
|
||||||
*/
|
*/
|
||||||
public function handle()
|
public function handle()
|
||||||
{
|
{
|
||||||
User::with(['defaultUsername', 'defaultRecipient'])
|
User::with(['defaultUsername', 'defaultRecipient', 'tokens'])
|
||||||
->whereHas('tokens', function ($query) {
|
->whereHas('tokens', function ($query) {
|
||||||
$query->whereDate('expires_at', now()->addWeek());
|
$query->whereDate('expires_at', now()->addWeek());
|
||||||
})
|
})
|
||||||
|
|
|
@ -200,9 +200,9 @@ class ReceiveEmail extends Command
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->parser->getHeader('In-Reply-To') && $alias) {
|
if ($this->parser->getHeader('In-Reply-To') && $alias) {
|
||||||
$this->handleReply($user, $recipient, $alias);
|
$this->handleReply($user, $alias, $validEmailDestination);
|
||||||
} else {
|
} else {
|
||||||
$this->handleSendFrom($user, $recipient, $alias ?? null, $aliasable ?? null);
|
$this->handleSendFrom($user, $recipient, $alias ?? null, $aliasable ?? null, $validEmailDestination);
|
||||||
}
|
}
|
||||||
} elseif ($verifiedRecipient?->can_reply_send === false) {
|
} elseif ($verifiedRecipient?->can_reply_send === false) {
|
||||||
// Notify user that they have not allowed this recipient to reply and send from aliases
|
// Notify user that they have not allowed this recipient to reply and send from aliases
|
||||||
|
@ -232,18 +232,16 @@ class ReceiveEmail extends Command
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function handleReply($user, $recipient, $alias)
|
protected function handleReply($user, $alias, $destination)
|
||||||
{
|
{
|
||||||
$sendTo = Str::replaceLast('=', '@', $recipient['extension']);
|
|
||||||
|
|
||||||
$emailData = new EmailData($this->parser, $this->option('sender'), $this->size, 'R');
|
$emailData = new EmailData($this->parser, $this->option('sender'), $this->size, 'R');
|
||||||
|
|
||||||
$message = new ReplyToEmail($user, $alias, $emailData);
|
$message = new ReplyToEmail($user, $alias, $emailData);
|
||||||
|
|
||||||
Mail::to($sendTo)->queue($message);
|
Mail::to($destination)->queue($message);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function handleSendFrom($user, $recipient, $alias, $aliasable)
|
protected function handleSendFrom($user, $recipient, $alias, $aliasable, $destination)
|
||||||
{
|
{
|
||||||
if (is_null($alias)) {
|
if (is_null($alias)) {
|
||||||
$alias = $user->aliases()->create([
|
$alias = $user->aliases()->create([
|
||||||
|
@ -258,13 +256,11 @@ class ReceiveEmail extends Command
|
||||||
$alias->refresh();
|
$alias->refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
$sendTo = Str::replaceLast('=', '@', $recipient['extension']);
|
|
||||||
|
|
||||||
$emailData = new EmailData($this->parser, $this->option('sender'), $this->size, 'S');
|
$emailData = new EmailData($this->parser, $this->option('sender'), $this->size, 'S');
|
||||||
|
|
||||||
$message = new SendFromEmail($user, $alias, $emailData);
|
$message = new SendFromEmail($user, $alias, $emailData);
|
||||||
|
|
||||||
Mail::to($sendTo)->queue($message);
|
Mail::to($destination)->queue($message);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function handleForward($user, $recipient, $alias, $aliasable, $isSpam)
|
protected function handleForward($user, $recipient, $alias, $aliasable, $isSpam)
|
||||||
|
@ -470,8 +466,7 @@ class ReceiveEmail extends Command
|
||||||
->allow(config('anonaddy.limit'))
|
->allow(config('anonaddy.limit'))
|
||||||
->every(3600)
|
->every(3600)
|
||||||
->then(
|
->then(
|
||||||
function () {
|
function () {},
|
||||||
},
|
|
||||||
function () use ($user) {
|
function () use ($user) {
|
||||||
$user->update(['defer_until' => now()->addHour()]);
|
$user->update(['defer_until' => now()->addHour()]);
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,8 @@ use Symfony\Component\Mime\Email;
|
||||||
|
|
||||||
class CustomMailer extends Mailer
|
class CustomMailer extends Mailer
|
||||||
{
|
{
|
||||||
|
private $data;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Send a new message using a view.
|
* Send a new message using a view.
|
||||||
*
|
*
|
||||||
|
@ -34,6 +36,8 @@ class CustomMailer extends Mailer
|
||||||
*/
|
*/
|
||||||
public function send($view, array $data = [], $callback = null)
|
public function send($view, array $data = [], $callback = null)
|
||||||
{
|
{
|
||||||
|
$this->data = $data;
|
||||||
|
|
||||||
if ($view instanceof MailableContract) {
|
if ($view instanceof MailableContract) {
|
||||||
return $this->sendMailable($view);
|
return $this->sendMailable($view);
|
||||||
}
|
}
|
||||||
|
@ -134,9 +138,9 @@ class CustomMailer extends Mailer
|
||||||
|
|
||||||
// If the message is a forward, reply or send then use the verp domain
|
// If the message is a forward, reply or send then use the verp domain
|
||||||
if (isset($data['emailType']) && in_array($data['emailType'], ['F', 'R', 'S'])) {
|
if (isset($data['emailType']) && in_array($data['emailType'], ['F', 'R', 'S'])) {
|
||||||
$message->returnPath($verpLocalPart.'@'.$data['verpDomain']);
|
$symfonyMessage->returnPath($verpLocalPart.'@'.$data['verpDomain']);
|
||||||
} else {
|
} else {
|
||||||
$message->returnPath($verpLocalPart.'@'.config('anonaddy.domain'));
|
$symfonyMessage->returnPath($verpLocalPart.'@'.config('anonaddy.domain'));
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -246,10 +250,24 @@ class CustomMailer extends Mailer
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$envelopeMessage = clone $message;
|
$envelopeMessage = clone $message;
|
||||||
// This allows us to have the To: header set as the alias whilst still delivering to the correct RCPT TO.
|
|
||||||
if ($aliasTo = $message->getHeaders()->get('Alias-To')) {
|
// Add in original Tos that have been updated
|
||||||
$message->to($aliasTo->getValue());
|
if ($tos = $this->data['tos'] ?? null) {
|
||||||
$message->getHeaders()->remove('Alias-To');
|
foreach ($tos as $key => $to) {
|
||||||
|
if ($key === 0) {
|
||||||
|
// This allows us to have the To: header set as the alias whilst still delivering to the correct RCPT TO for forwards.
|
||||||
|
$message->to($to); // In order to override recipient email for forwards
|
||||||
|
} else {
|
||||||
|
$message->addTo($to);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add in original CCs that have been updated
|
||||||
|
if ($ccs = $this->data['ccs'] ?? null) {
|
||||||
|
foreach ($ccs as $cc) {
|
||||||
|
$message->addCc($cc);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add the original sender header here to prevent it altering the envelope from address
|
// Add the original sender header here to prevent it altering the envelope from address
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Illuminate\Support\Carbon;
|
use Illuminate\Support\Carbon;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
function user()
|
function user()
|
||||||
{
|
{
|
||||||
|
@ -25,3 +26,17 @@ function randomString(int $length): string
|
||||||
|
|
||||||
return $str;
|
return $str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function stripEmailExtension(string $email): string
|
||||||
|
{
|
||||||
|
if (! Str::contains($email, '@')) {
|
||||||
|
return $email;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Strip the email of extensions
|
||||||
|
[$localPart, $domain] = explode('@', strtolower($email));
|
||||||
|
// Remove plus extension from local part if present
|
||||||
|
$localPart = Str::contains($localPart, '+') ? Str::before($localPart, '+') : $localPart;
|
||||||
|
|
||||||
|
return $localPart.'@'.$domain;
|
||||||
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@ class ShowRuleController extends Controller
|
||||||
})
|
})
|
||||||
->orderBy('order')
|
->orderBy('order')
|
||||||
->get(),
|
->get(),
|
||||||
|
'recipientOptions' => user()->verifiedRecipients()->select(['id', 'email'])->get(),
|
||||||
'search' => $validated['search'] ?? null,
|
'search' => $validated['search'] ?? null,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,6 +41,7 @@ class StoreRuleRequest extends FormRequest
|
||||||
'subject',
|
'subject',
|
||||||
'sender',
|
'sender',
|
||||||
'alias',
|
'alias',
|
||||||
|
'alias_description',
|
||||||
]),
|
]),
|
||||||
],
|
],
|
||||||
'conditions.*.match' => [
|
'conditions.*.match' => [
|
||||||
|
@ -79,13 +80,21 @@ class StoreRuleRequest extends FormRequest
|
||||||
'encryption',
|
'encryption',
|
||||||
'banner',
|
'banner',
|
||||||
'block',
|
'block',
|
||||||
'webhook',
|
'removeAttachments',
|
||||||
|
'forwardTo',
|
||||||
|
//'webhook',
|
||||||
]),
|
]),
|
||||||
],
|
],
|
||||||
'actions.*.value' => [
|
'actions.*.value' => Rule::forEach(function ($value, $attribute, $data, $action) {
|
||||||
|
if ($action['type'] === 'forwardTo') {
|
||||||
|
return [Rule::in(user()->verifiedRecipients()->pluck('id')->toArray())]; // Must be a valid verified recipient
|
||||||
|
}
|
||||||
|
|
||||||
|
return [
|
||||||
'required',
|
'required',
|
||||||
'max:50',
|
'max:50',
|
||||||
],
|
];
|
||||||
|
}),
|
||||||
'operator' => [
|
'operator' => [
|
||||||
'required',
|
'required',
|
||||||
'in:AND,OR',
|
'in:AND,OR',
|
||||||
|
|
|
@ -33,6 +33,10 @@ class ForwardEmail extends Mailable implements ShouldBeEncrypted, ShouldQueue
|
||||||
|
|
||||||
protected $sender;
|
protected $sender;
|
||||||
|
|
||||||
|
protected $ccs;
|
||||||
|
|
||||||
|
protected $tos;
|
||||||
|
|
||||||
protected $originalCc;
|
protected $originalCc;
|
||||||
|
|
||||||
protected $originalTo;
|
protected $originalTo;
|
||||||
|
@ -105,8 +109,69 @@ class ForwardEmail extends Mailable implements ShouldBeEncrypted, ShouldQueue
|
||||||
$this->user = $alias->user;
|
$this->user = $alias->user;
|
||||||
$this->alias = $alias;
|
$this->alias = $alias;
|
||||||
$this->sender = $emailData->sender;
|
$this->sender = $emailData->sender;
|
||||||
|
$this->ccs = $emailData->ccs;
|
||||||
|
$this->tos = $emailData->tos;
|
||||||
$this->originalCc = $emailData->originalCc ?? null;
|
$this->originalCc = $emailData->originalCc ?? null;
|
||||||
$this->originalTo = $emailData->originalTo ?? null;
|
$this->originalTo = $emailData->originalTo ?? null;
|
||||||
|
|
||||||
|
// Create and swap with alias reply-to addresses to allow easy reply-all
|
||||||
|
if (count($this->ccs)) {
|
||||||
|
$this->ccs = collect($this->ccs)
|
||||||
|
->map(function ($cc) {
|
||||||
|
// Leave alias email Cc as it is
|
||||||
|
if (stripEmailExtension($cc['address']) === $this->alias->email) {
|
||||||
|
return [
|
||||||
|
'display' => $cc['display'] != $cc['address'] ? $cc['display'] : null,
|
||||||
|
'address' => $this->alias->email,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return [
|
||||||
|
'display' => $cc['display'] != $cc['address'] ? $cc['display'] : null,
|
||||||
|
'address' => $this->alias->local_part.'+'.Str::replaceLast('@', '=', $cc['address']).'@'.$this->alias->domain,
|
||||||
|
];
|
||||||
|
})
|
||||||
|
->filter(fn ($cc) => filter_var($cc['address'], FILTER_VALIDATE_EMAIL))
|
||||||
|
->map(function ($cc) {
|
||||||
|
// Only add in display if it exists
|
||||||
|
if ($cc['display']) {
|
||||||
|
return $cc['display'].' <'.$cc['address'].'>';
|
||||||
|
}
|
||||||
|
|
||||||
|
return '<'.$cc['address'].'>';
|
||||||
|
})
|
||||||
|
->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create and swap with alias reply-to addresses to allow easy reply-all
|
||||||
|
if (count($this->tos)) {
|
||||||
|
$this->tos = collect($this->tos)
|
||||||
|
->map(function ($to) {
|
||||||
|
// Leave alias email To as it is
|
||||||
|
if (stripEmailExtension($to['address']) === $this->alias->email) {
|
||||||
|
return [
|
||||||
|
'display' => $to['display'] != $to['address'] ? $to['display'] : null,
|
||||||
|
'address' => $this->alias->email,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return [
|
||||||
|
'display' => $to['display'] != $to['address'] ? $to['display'] : null,
|
||||||
|
'address' => $this->alias->local_part.'+'.Str::replaceLast('@', '=', $to['address']).'@'.$this->alias->domain,
|
||||||
|
];
|
||||||
|
})
|
||||||
|
->filter(fn ($to) => filter_var($to['address'], FILTER_VALIDATE_EMAIL))
|
||||||
|
->map(function ($to) {
|
||||||
|
// Only add in display if it exists
|
||||||
|
if ($to['display']) {
|
||||||
|
return $to['display'].' <'.$to['address'].'>';
|
||||||
|
}
|
||||||
|
|
||||||
|
return '<'.$to['address'].'>';
|
||||||
|
})
|
||||||
|
->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
$this->displayFrom = $emailData->display_from;
|
$this->displayFrom = $emailData->display_from;
|
||||||
$this->replyToAddress = $emailData->reply_to_address ?? $this->sender;
|
$this->replyToAddress = $emailData->reply_to_address ?? $this->sender;
|
||||||
$this->emailSubject = $emailData->subject;
|
$this->emailSubject = $emailData->subject;
|
||||||
|
@ -173,10 +238,6 @@ class ForwardEmail extends Mailable implements ShouldBeEncrypted, ShouldQueue
|
||||||
$message->getHeaders()
|
$message->getHeaders()
|
||||||
->addTextHeader('Feedback-ID', 'F:'.$this->alias->id.':anonaddy');
|
->addTextHeader('Feedback-ID', 'F:'.$this->alias->id.':anonaddy');
|
||||||
|
|
||||||
// This header is used to set the To: header as the alias just before sending.
|
|
||||||
$message->getHeaders()
|
|
||||||
->addTextHeader('Alias-To', $this->alias->email);
|
|
||||||
|
|
||||||
$message->getHeaders()->remove('Message-ID');
|
$message->getHeaders()->remove('Message-ID');
|
||||||
|
|
||||||
if ($this->messageId) {
|
if ($this->messageId) {
|
||||||
|
@ -327,6 +388,8 @@ class ForwardEmail extends Mailable implements ShouldBeEncrypted, ShouldQueue
|
||||||
'shouldBlock' => $this->size === 0,
|
'shouldBlock' => $this->size === 0,
|
||||||
'needsDkimSignature' => $this->needsDkimSignature(),
|
'needsDkimSignature' => $this->needsDkimSignature(),
|
||||||
'verpDomain' => $this->verpDomain ?? $this->alias->domain,
|
'verpDomain' => $this->verpDomain ?? $this->alias->domain,
|
||||||
|
'ccs' => $this->ccs,
|
||||||
|
'tos' => $this->tos,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if (isset($replyToEmail)) {
|
if (isset($replyToEmail)) {
|
||||||
|
|
|
@ -31,6 +31,10 @@ class ReplyToEmail extends Mailable implements ShouldBeEncrypted, ShouldQueue
|
||||||
|
|
||||||
protected $sender;
|
protected $sender;
|
||||||
|
|
||||||
|
protected $ccs;
|
||||||
|
|
||||||
|
protected $tos;
|
||||||
|
|
||||||
protected $emailSubject;
|
protected $emailSubject;
|
||||||
|
|
||||||
protected $emailText;
|
protected $emailText;
|
||||||
|
@ -65,6 +69,52 @@ class ReplyToEmail extends Mailable implements ShouldBeEncrypted, ShouldQueue
|
||||||
$this->user = $user;
|
$this->user = $user;
|
||||||
$this->alias = $alias;
|
$this->alias = $alias;
|
||||||
$this->sender = $emailData->sender;
|
$this->sender = $emailData->sender;
|
||||||
|
|
||||||
|
$this->ccs = $emailData->ccs;
|
||||||
|
$this->tos = $emailData->tos;
|
||||||
|
|
||||||
|
// Replace alias reply/send CCs back to proper emails
|
||||||
|
if (count($this->ccs)) {
|
||||||
|
$this->ccs = collect($this->ccs)
|
||||||
|
->map(function ($cc) {
|
||||||
|
return [
|
||||||
|
'display' => null,
|
||||||
|
'address' => Str::replaceLast('=', '@', Str::between($cc['address'], $this->alias->local_part.'+', '@'.$this->alias->domain)),
|
||||||
|
];
|
||||||
|
})
|
||||||
|
->filter(fn ($cc) => filter_var($cc['address'], FILTER_VALIDATE_EMAIL))
|
||||||
|
->map(function ($cc) {
|
||||||
|
// Only add in display if it exists
|
||||||
|
if ($cc['display']) {
|
||||||
|
return $cc['display'].' <'.$cc['address'].'>';
|
||||||
|
}
|
||||||
|
|
||||||
|
return '<'.$cc['address'].'>';
|
||||||
|
})
|
||||||
|
->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Replace alias reply/send Tos back to proper emails
|
||||||
|
if (count($this->tos)) {
|
||||||
|
$this->tos = collect($this->tos)
|
||||||
|
->map(function ($to) {
|
||||||
|
return [
|
||||||
|
'display' => null,
|
||||||
|
'address' => Str::replaceLast('=', '@', Str::between($to['address'], $this->alias->local_part.'+', '@'.$this->alias->domain)),
|
||||||
|
];
|
||||||
|
})
|
||||||
|
->filter(fn ($to) => filter_var($to['address'], FILTER_VALIDATE_EMAIL))
|
||||||
|
->map(function ($to) {
|
||||||
|
// Only add in display if it exists
|
||||||
|
if ($to['display']) {
|
||||||
|
return $to['display'].' <'.$to['address'].'>';
|
||||||
|
}
|
||||||
|
|
||||||
|
return '<'.$to['address'].'>';
|
||||||
|
})
|
||||||
|
->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
$this->emailSubject = $emailData->subject;
|
$this->emailSubject = $emailData->subject;
|
||||||
$this->emailText = $emailData->text;
|
$this->emailText = $emailData->text;
|
||||||
$this->emailHtml = $emailData->html;
|
$this->emailHtml = $emailData->html;
|
||||||
|
@ -168,6 +218,8 @@ class ReplyToEmail extends Mailable implements ShouldBeEncrypted, ShouldQueue
|
||||||
'needsDkimSignature' => $this->needsDkimSignature(),
|
'needsDkimSignature' => $this->needsDkimSignature(),
|
||||||
'aliasDomain' => $this->alias->domain,
|
'aliasDomain' => $this->alias->domain,
|
||||||
'verpDomain' => $this->verpDomain ?? $this->alias->domain,
|
'verpDomain' => $this->verpDomain ?? $this->alias->domain,
|
||||||
|
'ccs' => $this->ccs,
|
||||||
|
'tos' => $this->tos,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if ($this->alias->isCustomDomain() && ! $this->needsDkimSignature()) {
|
if ($this->alias->isCustomDomain() && ! $this->needsDkimSignature()) {
|
||||||
|
@ -229,14 +281,22 @@ class ReplyToEmail extends Mailable implements ShouldBeEncrypted, ShouldQueue
|
||||||
|
|
||||||
private function removeRealEmailAndTextBanner($text)
|
private function removeRealEmailAndTextBanner($text)
|
||||||
{
|
{
|
||||||
|
// Replace <alias+hello=example.com@johndoe.anonaddy.com> with <hello@example.com>
|
||||||
|
$destination = $this->email->to[0]['address'];
|
||||||
|
|
||||||
return Str::of(str_ireplace($this->sender, '', $text))
|
return Str::of(str_ireplace($this->sender, '', $text))
|
||||||
|
->replace($this->alias->local_part.'+'.Str::replaceLast('@', '=', $destination).'@'.$this->alias->domain, $destination)
|
||||||
->replaceMatches('/(?s)((<|<)!--banner-info--(>|>)).*?((<|<)!--banner-info--(>|>))/mi', '');
|
->replaceMatches('/(?s)((<|<)!--banner-info--(>|>)).*?((<|<)!--banner-info--(>|>))/mi', '');
|
||||||
}
|
}
|
||||||
|
|
||||||
private function removeRealEmailAndHtmlBanner($html)
|
private function removeRealEmailAndHtmlBanner($html)
|
||||||
{
|
{
|
||||||
|
// Replace <alias+hello=example.com@johndoe.anonaddy.com> with <hello@example.com>
|
||||||
|
$destination = $this->email->to[0]['address'];
|
||||||
|
|
||||||
// Reply may be HTML but have a plain text banner
|
// Reply may be HTML but have a plain text banner
|
||||||
return Str::of(str_ireplace($this->sender, '', $html))
|
return Str::of(str_ireplace($this->sender, '', $html))
|
||||||
|
->replace($this->alias->local_part.'+'.Str::replaceLast('@', '=', $destination).'@'.$this->alias->domain, $destination)
|
||||||
->replaceMatches('/(?s)((<|<)!--banner-info--(>|>)).*?((<|<)!--banner-info--(>|>))/mi', '')
|
->replaceMatches('/(?s)((<|<)!--banner-info--(>|>)).*?((<|<)!--banner-info--(>|>))/mi', '')
|
||||||
->replaceMatches('/(?s)(<tr((?!<tr).)*?'.preg_quote(Str::of(config('app.url'))->after('://')->rtrim('/'), '/')."(\/|%2F)deactivate(\/|%2F).*?\/tr>)/mi", '');
|
->replaceMatches('/(?s)(<tr((?!<tr).)*?'.preg_quote(Str::of(config('app.url'))->after('://')->rtrim('/'), '/')."(\/|%2F)deactivate(\/|%2F).*?\/tr>)/mi", '');
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,10 @@ class SendFromEmail extends Mailable implements ShouldBeEncrypted, ShouldQueue
|
||||||
|
|
||||||
protected $sender;
|
protected $sender;
|
||||||
|
|
||||||
|
protected $ccs;
|
||||||
|
|
||||||
|
protected $tos;
|
||||||
|
|
||||||
protected $emailSubject;
|
protected $emailSubject;
|
||||||
|
|
||||||
protected $emailText;
|
protected $emailText;
|
||||||
|
@ -61,6 +65,52 @@ class SendFromEmail extends Mailable implements ShouldBeEncrypted, ShouldQueue
|
||||||
$this->user = $user;
|
$this->user = $user;
|
||||||
$this->alias = $alias;
|
$this->alias = $alias;
|
||||||
$this->sender = $emailData->sender;
|
$this->sender = $emailData->sender;
|
||||||
|
|
||||||
|
$this->ccs = $emailData->ccs;
|
||||||
|
$this->tos = $emailData->tos;
|
||||||
|
|
||||||
|
// Replace alias reply/send CCs back to proper emails
|
||||||
|
if (count($this->ccs)) {
|
||||||
|
$this->ccs = collect($this->ccs)
|
||||||
|
->map(function ($cc) {
|
||||||
|
return [
|
||||||
|
'display' => null,
|
||||||
|
'address' => Str::replaceLast('=', '@', Str::between($cc['address'], $this->alias->local_part.'+', '@'.$this->alias->domain)),
|
||||||
|
];
|
||||||
|
})
|
||||||
|
->filter(fn ($cc) => filter_var($cc['address'], FILTER_VALIDATE_EMAIL))
|
||||||
|
->map(function ($cc) {
|
||||||
|
// Only add in display if it exists
|
||||||
|
if ($cc['display']) {
|
||||||
|
return $cc['display'].' <'.$cc['address'].'>';
|
||||||
|
}
|
||||||
|
|
||||||
|
return '<'.$cc['address'].'>';
|
||||||
|
})
|
||||||
|
->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Replace alias reply/send Tos back to proper emails
|
||||||
|
if (count($this->tos)) {
|
||||||
|
$this->tos = collect($this->tos)
|
||||||
|
->map(function ($to) {
|
||||||
|
return [
|
||||||
|
'display' => null,
|
||||||
|
'address' => Str::replaceLast('=', '@', Str::between($to['address'], $this->alias->local_part.'+', '@'.$this->alias->domain)),
|
||||||
|
];
|
||||||
|
})
|
||||||
|
->filter(fn ($to) => filter_var($to['address'], FILTER_VALIDATE_EMAIL))
|
||||||
|
->map(function ($to) {
|
||||||
|
// Only add in display if it exists
|
||||||
|
if ($to['display']) {
|
||||||
|
return $to['display'].' <'.$to['address'].'>';
|
||||||
|
}
|
||||||
|
|
||||||
|
return '<'.$to['address'].'>';
|
||||||
|
})
|
||||||
|
->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
$this->emailSubject = $emailData->subject;
|
$this->emailSubject = $emailData->subject;
|
||||||
$this->emailText = $emailData->text;
|
$this->emailText = $emailData->text;
|
||||||
$this->emailHtml = $emailData->html;
|
$this->emailHtml = $emailData->html;
|
||||||
|
@ -152,6 +202,8 @@ class SendFromEmail extends Mailable implements ShouldBeEncrypted, ShouldQueue
|
||||||
'needsDkimSignature' => $this->needsDkimSignature(),
|
'needsDkimSignature' => $this->needsDkimSignature(),
|
||||||
'aliasDomain' => $this->alias->domain,
|
'aliasDomain' => $this->alias->domain,
|
||||||
'verpDomain' => $this->verpDomain ?? $this->alias->domain,
|
'verpDomain' => $this->verpDomain ?? $this->alias->domain,
|
||||||
|
'ccs' => $this->ccs,
|
||||||
|
'tos' => $this->tos,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if ($this->alias->isCustomDomain() && ! $this->needsDkimSignature()) {
|
if ($this->alias->isCustomDomain() && ! $this->needsDkimSignature()) {
|
||||||
|
|
|
@ -19,6 +19,8 @@ class TokenExpiringSoon extends Mailable implements ShouldBeEncrypted, ShouldQue
|
||||||
|
|
||||||
protected $recipient;
|
protected $recipient;
|
||||||
|
|
||||||
|
protected $token;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new message instance.
|
* Create a new message instance.
|
||||||
*
|
*
|
||||||
|
@ -28,6 +30,7 @@ class TokenExpiringSoon extends Mailable implements ShouldBeEncrypted, ShouldQue
|
||||||
{
|
{
|
||||||
$this->user = $user;
|
$this->user = $user;
|
||||||
$this->recipient = $user->defaultRecipient;
|
$this->recipient = $user->defaultRecipient;
|
||||||
|
$this->token = $user->tokens()->whereDate('expires_at', now()->addWeek())->first();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -45,6 +48,7 @@ class TokenExpiringSoon extends Mailable implements ShouldBeEncrypted, ShouldQue
|
||||||
'recipientId' => $this->user->default_recipient_id,
|
'recipientId' => $this->user->default_recipient_id,
|
||||||
'emailType' => 'TES',
|
'emailType' => 'TES',
|
||||||
'fingerprint' => $this->recipient->should_encrypt ? $this->recipient->fingerprint : null,
|
'fingerprint' => $this->recipient->should_encrypt ? $this->recipient->fingerprint : null,
|
||||||
|
'tokenName' => $this->token?->name,
|
||||||
])
|
])
|
||||||
->withSymfonyMessage(function (Email $message) {
|
->withSymfonyMessage(function (Email $message) {
|
||||||
$message->getHeaders()
|
$message->getHeaders()
|
||||||
|
|
|
@ -16,6 +16,10 @@ class EmailData
|
||||||
|
|
||||||
public $reply_to_address;
|
public $reply_to_address;
|
||||||
|
|
||||||
|
public $ccs;
|
||||||
|
|
||||||
|
public $tos;
|
||||||
|
|
||||||
public $originalCc;
|
public $originalCc;
|
||||||
|
|
||||||
public $originalTo;
|
public $originalTo;
|
||||||
|
@ -81,6 +85,9 @@ class EmailData
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->ccs = collect($parser->getAddresses('cc'))->all();
|
||||||
|
$this->tos = collect($parser->getAddresses('to'))->all();
|
||||||
|
|
||||||
if ($originalCc = $parser->getHeader('cc')) {
|
if ($originalCc = $parser->getHeader('cc')) {
|
||||||
$this->originalCc = $originalCc;
|
$this->originalCc = $originalCc;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,8 +6,12 @@ use Illuminate\Support\Str;
|
||||||
|
|
||||||
trait CheckUserRules
|
trait CheckUserRules
|
||||||
{
|
{
|
||||||
|
protected $emailType;
|
||||||
|
|
||||||
public function checkRules(string $emailType)
|
public function checkRules(string $emailType)
|
||||||
{
|
{
|
||||||
|
$this->emailType = $emailType;
|
||||||
|
|
||||||
$method = "activeRulesFor{$emailType}Ordered";
|
$method = "activeRulesFor{$emailType}Ordered";
|
||||||
$this->user->{$method}->each(function ($rule) {
|
$this->user->{$method}->each(function ($rule) {
|
||||||
// Check if the conditions of the rule are satisfied
|
// Check if the conditions of the rule are satisfied
|
||||||
|
@ -53,8 +57,8 @@ trait CheckUserRules
|
||||||
case 'alias':
|
case 'alias':
|
||||||
return $this->conditionSatisfied($this->alias->email, $condition);
|
return $this->conditionSatisfied($this->alias->email, $condition);
|
||||||
break;
|
break;
|
||||||
case 'displayFrom':
|
case 'alias_description':
|
||||||
return $this->conditionSatisfied($this->displayFrom, $condition);
|
return $this->conditionSatisfied($this->alias->description, $condition);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -143,6 +147,26 @@ trait CheckUserRules
|
||||||
$this->size = 0;
|
$this->size = 0;
|
||||||
exit(0);
|
exit(0);
|
||||||
break;
|
break;
|
||||||
|
case 'removeAttachments':
|
||||||
|
$this->email->rawAttachments = [];
|
||||||
|
break;
|
||||||
|
case 'forwardTo':
|
||||||
|
// Only apply on forwards
|
||||||
|
if ($this->emailType !== 'Forwards') {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$recipient = $this->user->verifiedRecipients()->select(['id', 'email', 'should_encrypt', 'fingerprint'])->find($action['value']);
|
||||||
|
|
||||||
|
if (! $recipient) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->recipientId = $recipient->id;
|
||||||
|
$this->fingerprint = $recipient->should_encrypt && ! $this->isAlreadyEncrypted() ? $recipient->fingerprint : null;
|
||||||
|
|
||||||
|
$this->email->to[0]['address'] = $recipient->email;
|
||||||
|
break;
|
||||||
case 'webhook':
|
case 'webhook':
|
||||||
// http payload to url
|
// http payload to url
|
||||||
break;
|
break;
|
||||||
|
|
876
composer.lock
generated
876
composer.lock
generated
File diff suppressed because it is too large
Load diff
549
package-lock.json
generated
549
package-lock.json
generated
|
@ -52,9 +52,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/parser": {
|
"node_modules/@babel/parser": {
|
||||||
"version": "7.24.6",
|
"version": "7.24.7",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz",
|
||||||
"integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==",
|
"integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==",
|
||||||
"bin": {
|
"bin": {
|
||||||
"parser": "bin/babel-parser.js"
|
"parser": "bin/babel-parser.js"
|
||||||
},
|
},
|
||||||
|
@ -63,9 +63,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/runtime": {
|
"node_modules/@babel/runtime": {
|
||||||
"version": "7.24.6",
|
"version": "7.24.7",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.6.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz",
|
||||||
"integrity": "sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==",
|
"integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"regenerator-runtime": "^0.14.0"
|
"regenerator-runtime": "^0.14.0"
|
||||||
},
|
},
|
||||||
|
@ -74,9 +74,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/aix-ppc64": {
|
"node_modules/@esbuild/aix-ppc64": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
|
||||||
"integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==",
|
"integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"ppc64"
|
"ppc64"
|
||||||
],
|
],
|
||||||
|
@ -90,9 +90,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/android-arm": {
|
"node_modules/@esbuild/android-arm": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
|
||||||
"integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==",
|
"integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm"
|
"arm"
|
||||||
],
|
],
|
||||||
|
@ -106,9 +106,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/android-arm64": {
|
"node_modules/@esbuild/android-arm64": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
|
||||||
"integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==",
|
"integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
|
@ -122,9 +122,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/android-x64": {
|
"node_modules/@esbuild/android-x64": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
|
||||||
"integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==",
|
"integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
@ -138,9 +138,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/darwin-arm64": {
|
"node_modules/@esbuild/darwin-arm64": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
|
||||||
"integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==",
|
"integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
|
@ -154,9 +154,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/darwin-x64": {
|
"node_modules/@esbuild/darwin-x64": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
|
||||||
"integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==",
|
"integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
@ -170,9 +170,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/freebsd-arm64": {
|
"node_modules/@esbuild/freebsd-arm64": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
|
||||||
"integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==",
|
"integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
|
@ -186,9 +186,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/freebsd-x64": {
|
"node_modules/@esbuild/freebsd-x64": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
|
||||||
"integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==",
|
"integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
@ -202,9 +202,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/linux-arm": {
|
"node_modules/@esbuild/linux-arm": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
|
||||||
"integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==",
|
"integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm"
|
"arm"
|
||||||
],
|
],
|
||||||
|
@ -218,9 +218,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/linux-arm64": {
|
"node_modules/@esbuild/linux-arm64": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
|
||||||
"integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==",
|
"integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
|
@ -234,9 +234,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/linux-ia32": {
|
"node_modules/@esbuild/linux-ia32": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
|
||||||
"integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==",
|
"integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"ia32"
|
"ia32"
|
||||||
],
|
],
|
||||||
|
@ -250,9 +250,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/linux-loong64": {
|
"node_modules/@esbuild/linux-loong64": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
|
||||||
"integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==",
|
"integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"loong64"
|
"loong64"
|
||||||
],
|
],
|
||||||
|
@ -266,9 +266,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/linux-mips64el": {
|
"node_modules/@esbuild/linux-mips64el": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
|
||||||
"integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==",
|
"integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"mips64el"
|
"mips64el"
|
||||||
],
|
],
|
||||||
|
@ -282,9 +282,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/linux-ppc64": {
|
"node_modules/@esbuild/linux-ppc64": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
|
||||||
"integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==",
|
"integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"ppc64"
|
"ppc64"
|
||||||
],
|
],
|
||||||
|
@ -298,9 +298,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/linux-riscv64": {
|
"node_modules/@esbuild/linux-riscv64": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
|
||||||
"integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==",
|
"integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"riscv64"
|
"riscv64"
|
||||||
],
|
],
|
||||||
|
@ -314,9 +314,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/linux-s390x": {
|
"node_modules/@esbuild/linux-s390x": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
|
||||||
"integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==",
|
"integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"s390x"
|
"s390x"
|
||||||
],
|
],
|
||||||
|
@ -330,9 +330,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/linux-x64": {
|
"node_modules/@esbuild/linux-x64": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
|
||||||
"integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==",
|
"integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
@ -346,9 +346,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/netbsd-x64": {
|
"node_modules/@esbuild/netbsd-x64": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
|
||||||
"integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==",
|
"integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
@ -362,9 +362,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/openbsd-x64": {
|
"node_modules/@esbuild/openbsd-x64": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
|
||||||
"integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==",
|
"integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
@ -378,9 +378,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/sunos-x64": {
|
"node_modules/@esbuild/sunos-x64": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
|
||||||
"integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==",
|
"integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
@ -394,9 +394,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/win32-arm64": {
|
"node_modules/@esbuild/win32-arm64": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
|
||||||
"integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==",
|
"integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
|
@ -410,9 +410,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/win32-ia32": {
|
"node_modules/@esbuild/win32-ia32": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
|
||||||
"integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==",
|
"integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"ia32"
|
"ia32"
|
||||||
],
|
],
|
||||||
|
@ -426,9 +426,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/win32-x64": {
|
"node_modules/@esbuild/win32-x64": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
|
||||||
"integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==",
|
"integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
@ -456,17 +456,17 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@heroicons/vue": {
|
"node_modules/@heroicons/vue": {
|
||||||
"version": "2.1.3",
|
"version": "2.1.4",
|
||||||
"resolved": "https://registry.npmjs.org/@heroicons/vue/-/vue-2.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/@heroicons/vue/-/vue-2.1.4.tgz",
|
||||||
"integrity": "sha512-CP4ipIwFbV4NEn8ULUCN110wkV0wZq6dsViDL3HwgIh+jn5yQGlRm6QaRN+Mv+o+UsUBbRDei3Je/q0NZHf5Gg==",
|
"integrity": "sha512-wykVSZ/fqEG49lIeHgFGT9TCvBw9THuRTtA/sPp7FVk3iBob/HcmitMcLDwtXOW82TXb38HeLRl1/pcElPeSdg==",
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"vue": ">= 3"
|
"vue": ">= 3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@inertiajs/core": {
|
"node_modules/@inertiajs/core": {
|
||||||
"version": "1.1.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/@inertiajs/core/-/core-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/@inertiajs/core/-/core-1.2.0.tgz",
|
||||||
"integrity": "sha512-BTf7LWaJQY9LTZ2P1Z6Y+zmR9X2ndWBxD/dOqWw6nMMjfYulSy6eyEw7iEHSKmu5aVdEO+7yX6pUbRGX5Bog6g==",
|
"integrity": "sha512-6U0gqCPbGGGMcLoDm+ckKipc5gptZMmfVFfPGdO7vlO7yipWf1RD+TKkcZGJklFvfgFMKwK2VPw8GAv1OctuQA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^1.6.0",
|
"axios": "^1.6.0",
|
||||||
"deepmerge": "^4.0.0",
|
"deepmerge": "^4.0.0",
|
||||||
|
@ -475,11 +475,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@inertiajs/vue3": {
|
"node_modules/@inertiajs/vue3": {
|
||||||
"version": "1.1.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/@inertiajs/vue3/-/vue3-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/@inertiajs/vue3/-/vue3-1.2.0.tgz",
|
||||||
"integrity": "sha512-1NmoTqihIdwxbuY/UqIhkQ1vlL6T88lI9nJ5ZU7UATHCVXLHm3Xu0DOr3eW5XnfKkTz/AaWk/n7+oh9+4OZkgg==",
|
"integrity": "sha512-Y6AsvwIK/E1pQKAMp8B7i99CbNApcTYb7j8R+TXM/AFQG6yBlQ1Qb9oFMItb6VimXSnDyfO4+FWe/JPLk9OIVA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@inertiajs/core": "1.1.0",
|
"@inertiajs/core": "1.2.0",
|
||||||
"lodash.clonedeep": "^4.5.0",
|
"lodash.clonedeep": "^4.5.0",
|
||||||
"lodash.isequal": "^4.5.0"
|
"lodash.isequal": "^4.5.0"
|
||||||
},
|
},
|
||||||
|
@ -668,20 +668,20 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tanstack/virtual-core": {
|
"node_modules/@tanstack/virtual-core": {
|
||||||
"version": "3.5.0",
|
"version": "3.7.0",
|
||||||
"resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.7.0.tgz",
|
||||||
"integrity": "sha512-KnPRCkQTyqhanNC0K63GBG3wA8I+D1fQuVnAvcBF8f13akOKeQp1gSbu6f77zCxhEk727iV5oQnbHLYzHrECLg==",
|
"integrity": "sha512-p0CWuqn+n8iZmsL7/l0Xg7kbyIKnHNqkEJkMDOkg4x3Ni3LohszmnJY8FPhTgG7Ad9ZFGcdKmn1R1mKUGEh9Xg==",
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
"url": "https://github.com/sponsors/tannerlinsley"
|
"url": "https://github.com/sponsors/tannerlinsley"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tanstack/vue-virtual": {
|
"node_modules/@tanstack/vue-virtual": {
|
||||||
"version": "3.5.0",
|
"version": "3.7.0",
|
||||||
"resolved": "https://registry.npmjs.org/@tanstack/vue-virtual/-/vue-virtual-3.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/@tanstack/vue-virtual/-/vue-virtual-3.7.0.tgz",
|
||||||
"integrity": "sha512-wvRQ8sFxn/NDr3WvI5XabhFovZ5MBmpEck2GHpTxYunmV63Ovpl30lRu6W5BPQo35a1GqDZ+Pvzlz6WDWRNqqw==",
|
"integrity": "sha512-RkSrajvJpV1RdJKgZnPgzyzVVx76QjPAu+spgdAms+SZRcSbYMUKlcjusnHjhszck5ngHXSXbSBp45ycF1nlDw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@tanstack/virtual-core": "3.5.0"
|
"@tanstack/virtual-core": "3.7.0"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -723,18 +723,18 @@
|
||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
"node_modules/@types/node": {
|
"node_modules/@types/node": {
|
||||||
"version": "20.12.12",
|
"version": "20.14.9",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz",
|
||||||
"integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==",
|
"integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==",
|
||||||
"peer": true,
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"undici-types": "~5.26.4"
|
"undici-types": "~5.26.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vitejs/plugin-vue": {
|
"node_modules/@vitejs/plugin-vue": {
|
||||||
"version": "5.0.4",
|
"version": "5.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.5.tgz",
|
||||||
"integrity": "sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==",
|
"integrity": "sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.0.0 || >=20.0.0"
|
"node": "^18.0.0 || >=20.0.0"
|
||||||
|
@ -745,36 +745,36 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/compiler-core": {
|
"node_modules/@vue/compiler-core": {
|
||||||
"version": "3.4.27",
|
"version": "3.4.30",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.27.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.30.tgz",
|
||||||
"integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==",
|
"integrity": "sha512-ZL8y4Xxdh8O6PSwfdZ1IpQ24PjTAieOz3jXb/MDTfDtANcKBMxg1KLm6OX2jofsaQGYfIVzd3BAG22i56/cF1w==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/parser": "^7.24.4",
|
"@babel/parser": "^7.24.7",
|
||||||
"@vue/shared": "3.4.27",
|
"@vue/shared": "3.4.30",
|
||||||
"entities": "^4.5.0",
|
"entities": "^4.5.0",
|
||||||
"estree-walker": "^2.0.2",
|
"estree-walker": "^2.0.2",
|
||||||
"source-map-js": "^1.2.0"
|
"source-map-js": "^1.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/compiler-dom": {
|
"node_modules/@vue/compiler-dom": {
|
||||||
"version": "3.4.27",
|
"version": "3.4.30",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.30.tgz",
|
||||||
"integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==",
|
"integrity": "sha512-+16Sd8lYr5j/owCbr9dowcNfrHd+pz+w2/b5Lt26Oz/kB90C9yNbxQ3bYOvt7rI2bxk0nqda39hVcwDFw85c2Q==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/compiler-core": "3.4.27",
|
"@vue/compiler-core": "3.4.30",
|
||||||
"@vue/shared": "3.4.27"
|
"@vue/shared": "3.4.30"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/compiler-sfc": {
|
"node_modules/@vue/compiler-sfc": {
|
||||||
"version": "3.4.27",
|
"version": "3.4.30",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.30.tgz",
|
||||||
"integrity": "sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==",
|
"integrity": "sha512-8vElKklHn/UY8+FgUFlQrYAPbtiSB2zcgeRKW7HkpSRn/JjMRmZvuOtwDx036D1aqKNSTtXkWRfqx53Qb+HmMg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/parser": "^7.24.4",
|
"@babel/parser": "^7.24.7",
|
||||||
"@vue/compiler-core": "3.4.27",
|
"@vue/compiler-core": "3.4.30",
|
||||||
"@vue/compiler-dom": "3.4.27",
|
"@vue/compiler-dom": "3.4.30",
|
||||||
"@vue/compiler-ssr": "3.4.27",
|
"@vue/compiler-ssr": "3.4.30",
|
||||||
"@vue/shared": "3.4.27",
|
"@vue/shared": "3.4.30",
|
||||||
"estree-walker": "^2.0.2",
|
"estree-walker": "^2.0.2",
|
||||||
"magic-string": "^0.30.10",
|
"magic-string": "^0.30.10",
|
||||||
"postcss": "^8.4.38",
|
"postcss": "^8.4.38",
|
||||||
|
@ -782,62 +782,63 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/compiler-ssr": {
|
"node_modules/@vue/compiler-ssr": {
|
||||||
"version": "3.4.27",
|
"version": "3.4.30",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.30.tgz",
|
||||||
"integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==",
|
"integrity": "sha512-ZJ56YZGXJDd6jky4mmM0rNaNP6kIbQu9LTKZDhcpddGe/3QIalB1WHHmZ6iZfFNyj5mSypTa4+qDJa5VIuxMSg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/compiler-dom": "3.4.27",
|
"@vue/compiler-dom": "3.4.30",
|
||||||
"@vue/shared": "3.4.27"
|
"@vue/shared": "3.4.30"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/reactivity": {
|
"node_modules/@vue/reactivity": {
|
||||||
"version": "3.4.27",
|
"version": "3.4.30",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.27.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.30.tgz",
|
||||||
"integrity": "sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==",
|
"integrity": "sha512-bVJurnCe3LS0JII8PPoAA63Zd2MBzcKrEzwdQl92eHCcxtIbxD2fhNwJpa+KkM3Y/A4T5FUnmdhgKwOf6BfbcA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/shared": "3.4.27"
|
"@vue/shared": "3.4.30"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/runtime-core": {
|
"node_modules/@vue/runtime-core": {
|
||||||
"version": "3.4.27",
|
"version": "3.4.30",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.27.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.30.tgz",
|
||||||
"integrity": "sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==",
|
"integrity": "sha512-qaFEbnNpGz+tlnkaualomogzN8vBLkgzK55uuWjYXbYn039eOBZrWxyXWq/7qh9Bz2FPifZqGjVDl/FXiq9L2g==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/reactivity": "3.4.27",
|
"@vue/reactivity": "3.4.30",
|
||||||
"@vue/shared": "3.4.27"
|
"@vue/shared": "3.4.30"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/runtime-dom": {
|
"node_modules/@vue/runtime-dom": {
|
||||||
"version": "3.4.27",
|
"version": "3.4.30",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.27.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.30.tgz",
|
||||||
"integrity": "sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==",
|
"integrity": "sha512-tV6B4YiZRj5QsaJgw2THCy5C1H+2UeywO9tqgWEc21tn85qHEERndHN/CxlyXvSBFrpmlexCIdnqPuR9RM9thw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/runtime-core": "3.4.27",
|
"@vue/reactivity": "3.4.30",
|
||||||
"@vue/shared": "3.4.27",
|
"@vue/runtime-core": "3.4.30",
|
||||||
|
"@vue/shared": "3.4.30",
|
||||||
"csstype": "^3.1.3"
|
"csstype": "^3.1.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/server-renderer": {
|
"node_modules/@vue/server-renderer": {
|
||||||
"version": "3.4.27",
|
"version": "3.4.30",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.27.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.30.tgz",
|
||||||
"integrity": "sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==",
|
"integrity": "sha512-TBD3eqR1DeDc0cMrXS/vEs/PWzq1uXxnvjoqQuDGFIEHFIwuDTX/KWAQKIBjyMWLFHEeTDGYVsYci85z2UbTDg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/compiler-ssr": "3.4.27",
|
"@vue/compiler-ssr": "3.4.30",
|
||||||
"@vue/shared": "3.4.27"
|
"@vue/shared": "3.4.30"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"vue": "3.4.27"
|
"vue": "3.4.30"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/shared": {
|
"node_modules/@vue/shared": {
|
||||||
"version": "3.4.27",
|
"version": "3.4.30",
|
||||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.27.tgz",
|
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.30.tgz",
|
||||||
"integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA=="
|
"integrity": "sha512-CLg+f8RQCHQnKvuHY9adMsMaQOcqclh6Z5V9TaoMgy0ut0tz848joZ7/CYFFyF/yZ5i2yaw7Fn498C+CNZVHIg=="
|
||||||
},
|
},
|
||||||
"node_modules/@vueform/multiselect": {
|
"node_modules/@vueform/multiselect": {
|
||||||
"version": "2.6.7",
|
"version": "2.6.8",
|
||||||
"resolved": "https://registry.npmjs.org/@vueform/multiselect/-/multiselect-2.6.7.tgz",
|
"resolved": "https://registry.npmjs.org/@vueform/multiselect/-/multiselect-2.6.8.tgz",
|
||||||
"integrity": "sha512-d0iwfzsj+N27o/JPE1KXbf0rVtwIe33dqlkQcOPxOP0RS6mW9umQG1hcuFEpdqNajuryHB9N4zo0rEcGmN20xQ=="
|
"integrity": "sha512-vu1bkFkViuLbrtSfyWgw11ecNPK7mlBDFe5X9WdsZj3gri3PiZ3OvlfJ920Ebysf7rgiN/+mHJDY2/Y1ITnGEg=="
|
||||||
},
|
},
|
||||||
"node_modules/@webassemblyjs/ast": {
|
"node_modules/@webassemblyjs/ast": {
|
||||||
"version": "1.12.1",
|
"version": "1.12.1",
|
||||||
|
@ -998,9 +999,9 @@
|
||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
"node_modules/acorn": {
|
"node_modules/acorn": {
|
||||||
"version": "8.11.3",
|
"version": "8.12.0",
|
||||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
|
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz",
|
||||||
"integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
|
"integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
|
||||||
"peer": true,
|
"peer": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"acorn": "bin/acorn"
|
"acorn": "bin/acorn"
|
||||||
|
@ -1009,10 +1010,10 @@
|
||||||
"node": ">=0.4.0"
|
"node": ">=0.4.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/acorn-import-assertions": {
|
"node_modules/acorn-import-attributes": {
|
||||||
"version": "1.9.0",
|
"version": "1.9.5",
|
||||||
"resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz",
|
"resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz",
|
||||||
"integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==",
|
"integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==",
|
||||||
"peer": true,
|
"peer": true,
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"acorn": "^8"
|
"acorn": "^8"
|
||||||
|
@ -1206,9 +1207,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/browserslist": {
|
"node_modules/browserslist": {
|
||||||
"version": "4.23.0",
|
"version": "4.23.1",
|
||||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
|
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz",
|
||||||
"integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
|
"integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
|
@ -1224,10 +1225,10 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"caniuse-lite": "^1.0.30001587",
|
"caniuse-lite": "^1.0.30001629",
|
||||||
"electron-to-chromium": "^1.4.668",
|
"electron-to-chromium": "^1.4.796",
|
||||||
"node-releases": "^2.0.14",
|
"node-releases": "^2.0.14",
|
||||||
"update-browserslist-db": "^1.0.13"
|
"update-browserslist-db": "^1.0.16"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"browserslist": "cli.js"
|
"browserslist": "cli.js"
|
||||||
|
@ -1269,9 +1270,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/caniuse-lite": {
|
"node_modules/caniuse-lite": {
|
||||||
"version": "1.0.30001624",
|
"version": "1.0.30001637",
|
||||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001624.tgz",
|
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001637.tgz",
|
||||||
"integrity": "sha512-0dWnQG87UevOCPYaOR49CBcLBwoZLpws+k6W37nLjWUhumP1Isusj0p2u+3KhjNloRWK9OKMgjBBzPujQHw4nA==",
|
"integrity": "sha512-1x0qRI1mD1o9e+7mBI7XtzFAP4XszbHaVWsMiGbSPLYekKTJF7K+FNk6AsXH4sUpc+qrsI3pVgf1Jdl/uGkuSQ==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
|
@ -1345,9 +1346,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/chrome-trace-event": {
|
"node_modules/chrome-trace-event": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
|
||||||
"integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
|
"integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
|
||||||
"peer": true,
|
"peer": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.0"
|
"node": ">=6.0"
|
||||||
|
@ -1538,9 +1539,9 @@
|
||||||
"integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg=="
|
"integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg=="
|
||||||
},
|
},
|
||||||
"node_modules/debug": {
|
"node_modules/debug": {
|
||||||
"version": "4.3.4",
|
"version": "4.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
|
||||||
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
"integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ms": "2.1.2"
|
"ms": "2.1.2"
|
||||||
|
@ -1602,9 +1603,9 @@
|
||||||
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
|
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
|
||||||
},
|
},
|
||||||
"node_modules/electron-to-chromium": {
|
"node_modules/electron-to-chromium": {
|
||||||
"version": "1.4.783",
|
"version": "1.4.812",
|
||||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.783.tgz",
|
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.812.tgz",
|
||||||
"integrity": "sha512-bT0jEz/Xz1fahQpbZ1D7LgmPYZ3iHVY39NcWWro1+hA2IvjiPeaXtfSqrQ+nXjApMvQRE2ASt1itSLRrebHMRQ=="
|
"integrity": "sha512-7L8fC2Ey/b6SePDFKR2zHAy4mbdp1/38Yk5TsARO66W3hC5KEaeKMMHoxwtuH+jcu2AYLSn9QX04i95t6Fl1Hg=="
|
||||||
},
|
},
|
||||||
"node_modules/emoji-regex": {
|
"node_modules/emoji-regex": {
|
||||||
"version": "10.3.0",
|
"version": "10.3.0",
|
||||||
|
@ -1621,9 +1622,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/enhanced-resolve": {
|
"node_modules/enhanced-resolve": {
|
||||||
"version": "5.16.1",
|
"version": "5.17.0",
|
||||||
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz",
|
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz",
|
||||||
"integrity": "sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==",
|
"integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==",
|
||||||
"peer": true,
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"graceful-fs": "^4.2.4",
|
"graceful-fs": "^4.2.4",
|
||||||
|
@ -1664,15 +1665,15 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/es-module-lexer": {
|
"node_modules/es-module-lexer": {
|
||||||
"version": "1.5.3",
|
"version": "1.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz",
|
||||||
"integrity": "sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==",
|
"integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==",
|
||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
"node_modules/esbuild": {
|
"node_modules/esbuild": {
|
||||||
"version": "0.20.2",
|
"version": "0.21.5",
|
||||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
|
||||||
"integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==",
|
"integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
|
@ -1682,29 +1683,29 @@
|
||||||
"node": ">=12"
|
"node": ">=12"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@esbuild/aix-ppc64": "0.20.2",
|
"@esbuild/aix-ppc64": "0.21.5",
|
||||||
"@esbuild/android-arm": "0.20.2",
|
"@esbuild/android-arm": "0.21.5",
|
||||||
"@esbuild/android-arm64": "0.20.2",
|
"@esbuild/android-arm64": "0.21.5",
|
||||||
"@esbuild/android-x64": "0.20.2",
|
"@esbuild/android-x64": "0.21.5",
|
||||||
"@esbuild/darwin-arm64": "0.20.2",
|
"@esbuild/darwin-arm64": "0.21.5",
|
||||||
"@esbuild/darwin-x64": "0.20.2",
|
"@esbuild/darwin-x64": "0.21.5",
|
||||||
"@esbuild/freebsd-arm64": "0.20.2",
|
"@esbuild/freebsd-arm64": "0.21.5",
|
||||||
"@esbuild/freebsd-x64": "0.20.2",
|
"@esbuild/freebsd-x64": "0.21.5",
|
||||||
"@esbuild/linux-arm": "0.20.2",
|
"@esbuild/linux-arm": "0.21.5",
|
||||||
"@esbuild/linux-arm64": "0.20.2",
|
"@esbuild/linux-arm64": "0.21.5",
|
||||||
"@esbuild/linux-ia32": "0.20.2",
|
"@esbuild/linux-ia32": "0.21.5",
|
||||||
"@esbuild/linux-loong64": "0.20.2",
|
"@esbuild/linux-loong64": "0.21.5",
|
||||||
"@esbuild/linux-mips64el": "0.20.2",
|
"@esbuild/linux-mips64el": "0.21.5",
|
||||||
"@esbuild/linux-ppc64": "0.20.2",
|
"@esbuild/linux-ppc64": "0.21.5",
|
||||||
"@esbuild/linux-riscv64": "0.20.2",
|
"@esbuild/linux-riscv64": "0.21.5",
|
||||||
"@esbuild/linux-s390x": "0.20.2",
|
"@esbuild/linux-s390x": "0.21.5",
|
||||||
"@esbuild/linux-x64": "0.20.2",
|
"@esbuild/linux-x64": "0.21.5",
|
||||||
"@esbuild/netbsd-x64": "0.20.2",
|
"@esbuild/netbsd-x64": "0.21.5",
|
||||||
"@esbuild/openbsd-x64": "0.20.2",
|
"@esbuild/openbsd-x64": "0.21.5",
|
||||||
"@esbuild/sunos-x64": "0.20.2",
|
"@esbuild/sunos-x64": "0.21.5",
|
||||||
"@esbuild/win32-arm64": "0.20.2",
|
"@esbuild/win32-arm64": "0.21.5",
|
||||||
"@esbuild/win32-ia32": "0.20.2",
|
"@esbuild/win32-ia32": "0.21.5",
|
||||||
"@esbuild/win32-x64": "0.20.2"
|
"@esbuild/win32-x64": "0.21.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/escalade": {
|
"node_modules/escalade": {
|
||||||
|
@ -1878,9 +1879,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/foreground-child": {
|
"node_modules/foreground-child": {
|
||||||
"version": "3.1.1",
|
"version": "3.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz",
|
||||||
"integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
|
"integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cross-spawn": "^7.0.0",
|
"cross-spawn": "^7.0.0",
|
||||||
"signal-exit": "^4.0.1"
|
"signal-exit": "^4.0.1"
|
||||||
|
@ -1981,14 +1982,15 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/glob": {
|
"node_modules/glob": {
|
||||||
"version": "10.4.1",
|
"version": "10.4.2",
|
||||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz",
|
||||||
"integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
|
"integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"foreground-child": "^3.1.0",
|
"foreground-child": "^3.1.0",
|
||||||
"jackspeak": "^3.1.2",
|
"jackspeak": "^3.1.2",
|
||||||
"minimatch": "^9.0.4",
|
"minimatch": "^9.0.4",
|
||||||
"minipass": "^7.1.2",
|
"minipass": "^7.1.2",
|
||||||
|
"package-json-from-dist": "^1.0.0",
|
||||||
"path-scurry": "^1.11.1"
|
"path-scurry": "^1.11.1"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
|
@ -2146,11 +2148,14 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/is-core-module": {
|
"node_modules/is-core-module": {
|
||||||
"version": "2.13.1",
|
"version": "2.14.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
|
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz",
|
||||||
"integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
|
"integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"hasown": "^2.0.0"
|
"hasown": "^2.0.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"url": "https://github.com/sponsors/ljharb"
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
@ -2213,9 +2218,9 @@
|
||||||
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
|
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
|
||||||
},
|
},
|
||||||
"node_modules/jackspeak": {
|
"node_modules/jackspeak": {
|
||||||
"version": "3.1.2",
|
"version": "3.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz",
|
||||||
"integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==",
|
"integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@isaacs/cliui": "^8.0.2"
|
"@isaacs/cliui": "^8.0.2"
|
||||||
},
|
},
|
||||||
|
@ -2244,9 +2249,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/jiti": {
|
"node_modules/jiti": {
|
||||||
"version": "1.21.0",
|
"version": "1.21.6",
|
||||||
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz",
|
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz",
|
||||||
"integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==",
|
"integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==",
|
||||||
"bin": {
|
"bin": {
|
||||||
"jiti": "bin/jiti.js"
|
"jiti": "bin/jiti.js"
|
||||||
}
|
}
|
||||||
|
@ -2294,9 +2299,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/lilconfig": {
|
"node_modules/lilconfig": {
|
||||||
"version": "3.1.1",
|
"version": "3.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz",
|
||||||
"integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==",
|
"integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14"
|
"node": ">=14"
|
||||||
},
|
},
|
||||||
|
@ -2310,9 +2315,9 @@
|
||||||
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
|
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
|
||||||
},
|
},
|
||||||
"node_modules/lint-staged": {
|
"node_modules/lint-staged": {
|
||||||
"version": "15.2.5",
|
"version": "15.2.7",
|
||||||
"resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.5.tgz",
|
"resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.7.tgz",
|
||||||
"integrity": "sha512-j+DfX7W9YUvdzEZl3Rk47FhDF6xwDBV5wwsCPw6BwWZVPYJemusQmvb9bRsW23Sqsaa+vRloAWogbK4BUuU2zA==",
|
"integrity": "sha512-+FdVbbCZ+yoh7E/RosSdqKJyUM2OEjTciH0TFNkawKgvFp1zbGlEC39RADg+xKBG1R4mhoH2j85myBQZ5wR+lw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"chalk": "~5.3.0",
|
"chalk": "~5.3.0",
|
||||||
|
@ -2337,16 +2342,16 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/listr2": {
|
"node_modules/listr2": {
|
||||||
"version": "8.2.1",
|
"version": "8.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.3.tgz",
|
||||||
"integrity": "sha512-irTfvpib/rNiD637xeevjO2l3Z5loZmuaRi0L0YE5LfijwVY96oyVn0DFD3o/teAok7nfobMG1THvvcHh/BP6g==",
|
"integrity": "sha512-Lllokma2mtoniUOS94CcOErHWAug5iu7HOmDrvWgpw8jyQH2fomgB+7lZS4HWZxytUuQwkGOwe49FvwVaA85Xw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cli-truncate": "^4.0.0",
|
"cli-truncate": "^4.0.0",
|
||||||
"colorette": "^2.0.20",
|
"colorette": "^2.0.20",
|
||||||
"eventemitter3": "^5.0.1",
|
"eventemitter3": "^5.0.1",
|
||||||
"log-update": "^6.0.0",
|
"log-update": "^6.0.0",
|
||||||
"rfdc": "^1.3.1",
|
"rfdc": "^1.4.1",
|
||||||
"wrap-ansi": "^9.0.0"
|
"wrap-ansi": "^9.0.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
@ -2521,9 +2526,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/minimatch": {
|
"node_modules/minimatch": {
|
||||||
"version": "9.0.4",
|
"version": "9.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
|
||||||
"integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
|
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"brace-expansion": "^2.0.1"
|
"brace-expansion": "^2.0.1"
|
||||||
},
|
},
|
||||||
|
@ -2651,9 +2656,12 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/object-inspect": {
|
"node_modules/object-inspect": {
|
||||||
"version": "1.13.1",
|
"version": "1.13.2",
|
||||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
|
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
|
||||||
"integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
|
"integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"url": "https://github.com/sponsors/ljharb"
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
}
|
}
|
||||||
|
@ -2673,6 +2681,11 @@
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/package-json-from-dist": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw=="
|
||||||
|
},
|
||||||
"node_modules/path-key": {
|
"node_modules/path-key": {
|
||||||
"version": "3.1.1",
|
"version": "3.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
|
||||||
|
@ -2935,9 +2948,9 @@
|
||||||
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
|
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
|
||||||
},
|
},
|
||||||
"node_modules/prettier": {
|
"node_modules/prettier": {
|
||||||
"version": "3.2.5",
|
"version": "3.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
|
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz",
|
||||||
"integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
|
"integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"prettier": "bin/prettier.cjs"
|
"prettier": "bin/prettier.cjs"
|
||||||
|
@ -3121,9 +3134,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rfdc": {
|
"node_modules/rfdc": {
|
||||||
"version": "1.3.1",
|
"version": "1.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
|
||||||
"integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==",
|
"integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/rollup": {
|
"node_modules/rollup": {
|
||||||
|
@ -3511,9 +3524,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/tailwindcss": {
|
"node_modules/tailwindcss": {
|
||||||
"version": "3.4.3",
|
"version": "3.4.4",
|
||||||
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz",
|
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz",
|
||||||
"integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==",
|
"integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@alloc/quick-lru": "^5.2.0",
|
"@alloc/quick-lru": "^5.2.0",
|
||||||
"arg": "^5.0.2",
|
"arg": "^5.0.2",
|
||||||
|
@ -3580,9 +3593,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/terser": {
|
"node_modules/terser": {
|
||||||
"version": "5.31.0",
|
"version": "5.31.1",
|
||||||
"resolved": "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz",
|
"resolved": "https://registry.npmjs.org/terser/-/terser-5.31.1.tgz",
|
||||||
"integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==",
|
"integrity": "sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==",
|
||||||
"peer": true,
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@jridgewell/source-map": "^0.3.3",
|
"@jridgewell/source-map": "^0.3.3",
|
||||||
|
@ -3730,12 +3743,12 @@
|
||||||
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
|
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
|
||||||
},
|
},
|
||||||
"node_modules/vite": {
|
"node_modules/vite": {
|
||||||
"version": "5.2.11",
|
"version": "5.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz",
|
"resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz",
|
||||||
"integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==",
|
"integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"esbuild": "^0.20.1",
|
"esbuild": "^0.21.3",
|
||||||
"postcss": "^8.4.38",
|
"postcss": "^8.4.38",
|
||||||
"rollup": "^4.13.0"
|
"rollup": "^4.13.0"
|
||||||
},
|
},
|
||||||
|
@ -3795,15 +3808,15 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vue": {
|
"node_modules/vue": {
|
||||||
"version": "3.4.27",
|
"version": "3.4.30",
|
||||||
"resolved": "https://registry.npmjs.org/vue/-/vue-3.4.27.tgz",
|
"resolved": "https://registry.npmjs.org/vue/-/vue-3.4.30.tgz",
|
||||||
"integrity": "sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==",
|
"integrity": "sha512-NcxtKCwkdf1zPsr7Y8+QlDBCGqxvjLXF2EX+yi76rV5rrz90Y6gK1cq0olIhdWGgrlhs9ElHuhi9t3+W5sG5Xw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/compiler-dom": "3.4.27",
|
"@vue/compiler-dom": "3.4.30",
|
||||||
"@vue/compiler-sfc": "3.4.27",
|
"@vue/compiler-sfc": "3.4.30",
|
||||||
"@vue/runtime-dom": "3.4.27",
|
"@vue/runtime-dom": "3.4.30",
|
||||||
"@vue/server-renderer": "3.4.27",
|
"@vue/server-renderer": "3.4.30",
|
||||||
"@vue/shared": "3.4.27"
|
"@vue/shared": "3.4.30"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"typescript": "*"
|
"typescript": "*"
|
||||||
|
@ -3926,9 +3939,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/webpack": {
|
"node_modules/webpack": {
|
||||||
"version": "5.91.0",
|
"version": "5.92.1",
|
||||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz",
|
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.92.1.tgz",
|
||||||
"integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==",
|
"integrity": "sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==",
|
||||||
"peer": true,
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/eslint-scope": "^3.7.3",
|
"@types/eslint-scope": "^3.7.3",
|
||||||
|
@ -3937,10 +3950,10 @@
|
||||||
"@webassemblyjs/wasm-edit": "^1.12.1",
|
"@webassemblyjs/wasm-edit": "^1.12.1",
|
||||||
"@webassemblyjs/wasm-parser": "^1.12.1",
|
"@webassemblyjs/wasm-parser": "^1.12.1",
|
||||||
"acorn": "^8.7.1",
|
"acorn": "^8.7.1",
|
||||||
"acorn-import-assertions": "^1.9.0",
|
"acorn-import-attributes": "^1.9.5",
|
||||||
"browserslist": "^4.21.10",
|
"browserslist": "^4.21.10",
|
||||||
"chrome-trace-event": "^1.0.2",
|
"chrome-trace-event": "^1.0.2",
|
||||||
"enhanced-resolve": "^5.16.0",
|
"enhanced-resolve": "^5.17.0",
|
||||||
"es-module-lexer": "^1.2.1",
|
"es-module-lexer": "^1.2.1",
|
||||||
"eslint-scope": "5.1.1",
|
"eslint-scope": "5.1.1",
|
||||||
"events": "^3.2.0",
|
"events": "^3.2.0",
|
||||||
|
@ -4089,9 +4102,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/yaml": {
|
"node_modules/yaml": {
|
||||||
"version": "2.4.2",
|
"version": "2.4.5",
|
||||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz",
|
||||||
"integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==",
|
"integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==",
|
||||||
"bin": {
|
"bin": {
|
||||||
"yaml": "bin.mjs"
|
"yaml": "bin.mjs"
|
||||||
},
|
},
|
||||||
|
|
137
postfix/composer.lock
generated
137
postfix/composer.lock
generated
|
@ -290,16 +290,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "illuminate/collections",
|
"name": "illuminate/collections",
|
||||||
"version": "v11.8.0",
|
"version": "v11.12.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/illuminate/collections.git",
|
"url": "https://github.com/illuminate/collections.git",
|
||||||
"reference": "dad22e648ae0f4973470d82b4ae5f809540a87ff"
|
"reference": "6923dc8c83b8c065c3b89cb4c2a4b10a4288ce79"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/illuminate/collections/zipball/dad22e648ae0f4973470d82b4ae5f809540a87ff",
|
"url": "https://api.github.com/repos/illuminate/collections/zipball/6923dc8c83b8c065c3b89cb4c2a4b10a4288ce79",
|
||||||
"reference": "dad22e648ae0f4973470d82b4ae5f809540a87ff",
|
"reference": "6923dc8c83b8c065c3b89cb4c2a4b10a4288ce79",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -341,11 +341,11 @@
|
||||||
"issues": "https://github.com/laravel/framework/issues",
|
"issues": "https://github.com/laravel/framework/issues",
|
||||||
"source": "https://github.com/laravel/framework"
|
"source": "https://github.com/laravel/framework"
|
||||||
},
|
},
|
||||||
"time": "2024-05-20T13:26:28+00:00"
|
"time": "2024-06-21T15:52:51+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "illuminate/conditionable",
|
"name": "illuminate/conditionable",
|
||||||
"version": "v11.8.0",
|
"version": "v11.12.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/illuminate/conditionable.git",
|
"url": "https://github.com/illuminate/conditionable.git",
|
||||||
|
@ -391,7 +391,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "illuminate/container",
|
"name": "illuminate/container",
|
||||||
"version": "v11.8.0",
|
"version": "v11.12.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/illuminate/container.git",
|
"url": "https://github.com/illuminate/container.git",
|
||||||
|
@ -442,16 +442,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "illuminate/contracts",
|
"name": "illuminate/contracts",
|
||||||
"version": "v11.8.0",
|
"version": "v11.12.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/illuminate/contracts.git",
|
"url": "https://github.com/illuminate/contracts.git",
|
||||||
"reference": "8782f75e80ab3e6036842d24dbeead34a16f3a79"
|
"reference": "86c1331d0b06c59ca21723d8bfc9faaa19430b46"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/illuminate/contracts/zipball/8782f75e80ab3e6036842d24dbeead34a16f3a79",
|
"url": "https://api.github.com/repos/illuminate/contracts/zipball/86c1331d0b06c59ca21723d8bfc9faaa19430b46",
|
||||||
"reference": "8782f75e80ab3e6036842d24dbeead34a16f3a79",
|
"reference": "86c1331d0b06c59ca21723d8bfc9faaa19430b46",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -486,20 +486,20 @@
|
||||||
"issues": "https://github.com/laravel/framework/issues",
|
"issues": "https://github.com/laravel/framework/issues",
|
||||||
"source": "https://github.com/laravel/framework"
|
"source": "https://github.com/laravel/framework"
|
||||||
},
|
},
|
||||||
"time": "2024-04-17T14:09:55+00:00"
|
"time": "2024-05-21T17:42:34+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "illuminate/database",
|
"name": "illuminate/database",
|
||||||
"version": "v11.8.0",
|
"version": "v11.12.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/illuminate/database.git",
|
"url": "https://github.com/illuminate/database.git",
|
||||||
"reference": "a4e73c5ad7678d5ec934374e8522bf62a4d75d99"
|
"reference": "d2bd095eab3d7a1e869b5824bcada7492e447ec7"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/illuminate/database/zipball/a4e73c5ad7678d5ec934374e8522bf62a4d75d99",
|
"url": "https://api.github.com/repos/illuminate/database/zipball/d2bd095eab3d7a1e869b5824bcada7492e447ec7",
|
||||||
"reference": "a4e73c5ad7678d5ec934374e8522bf62a4d75d99",
|
"reference": "d2bd095eab3d7a1e869b5824bcada7492e447ec7",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -554,11 +554,11 @@
|
||||||
"issues": "https://github.com/laravel/framework/issues",
|
"issues": "https://github.com/laravel/framework/issues",
|
||||||
"source": "https://github.com/laravel/framework"
|
"source": "https://github.com/laravel/framework"
|
||||||
},
|
},
|
||||||
"time": "2024-05-21T15:24:23+00:00"
|
"time": "2024-06-24T20:24:42+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "illuminate/macroable",
|
"name": "illuminate/macroable",
|
||||||
"version": "v11.8.0",
|
"version": "v11.12.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/illuminate/macroable.git",
|
"url": "https://github.com/illuminate/macroable.git",
|
||||||
|
@ -604,16 +604,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "illuminate/support",
|
"name": "illuminate/support",
|
||||||
"version": "v11.8.0",
|
"version": "v11.12.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/illuminate/support.git",
|
"url": "https://github.com/illuminate/support.git",
|
||||||
"reference": "8deb8ba65ed7dc4e3f7b9b64ab70456250454824"
|
"reference": "1ea237b71cd2e181af36074e2a9dd47f268e5cda"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/illuminate/support/zipball/8deb8ba65ed7dc4e3f7b9b64ab70456250454824",
|
"url": "https://api.github.com/repos/illuminate/support/zipball/1ea237b71cd2e181af36074e2a9dd47f268e5cda",
|
||||||
"reference": "8deb8ba65ed7dc4e3f7b9b64ab70456250454824",
|
"reference": "1ea237b71cd2e181af36074e2a9dd47f268e5cda",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -674,20 +674,20 @@
|
||||||
"issues": "https://github.com/laravel/framework/issues",
|
"issues": "https://github.com/laravel/framework/issues",
|
||||||
"source": "https://github.com/laravel/framework"
|
"source": "https://github.com/laravel/framework"
|
||||||
},
|
},
|
||||||
"time": "2024-05-21T15:24:23+00:00"
|
"time": "2024-06-24T20:24:42+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "nesbot/carbon",
|
"name": "nesbot/carbon",
|
||||||
"version": "3.4.0",
|
"version": "3.6.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/briannesbitt/Carbon.git",
|
"url": "https://github.com/briannesbitt/Carbon.git",
|
||||||
"reference": "8eab8983c83c30e0bacbef8d311e3f3b8172727f"
|
"reference": "39c8ef752db6865717cc3fba63970c16f057982c"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/8eab8983c83c30e0bacbef8d311e3f3b8172727f",
|
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/39c8ef752db6865717cc3fba63970c16f057982c",
|
||||||
"reference": "8eab8983c83c30e0bacbef8d311e3f3b8172727f",
|
"reference": "39c8ef752db6865717cc3fba63970c16f057982c",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -705,13 +705,13 @@
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/dbal": "^3.6.3 || ^4.0",
|
"doctrine/dbal": "^3.6.3 || ^4.0",
|
||||||
"doctrine/orm": "^2.15.2 || ^3.0",
|
"doctrine/orm": "^2.15.2 || ^3.0",
|
||||||
"friendsofphp/php-cs-fixer": "^3.52.1",
|
"friendsofphp/php-cs-fixer": "^3.57.2",
|
||||||
"kylekatarnls/multi-tester": "^2.5.3",
|
"kylekatarnls/multi-tester": "^2.5.3",
|
||||||
"ondrejmirtes/better-reflection": "^6.25.0.4",
|
"ondrejmirtes/better-reflection": "^6.25.0.4",
|
||||||
"phpmd/phpmd": "^2.15.0",
|
"phpmd/phpmd": "^2.15.0",
|
||||||
"phpstan/extension-installer": "^1.3.1",
|
"phpstan/extension-installer": "^1.3.1",
|
||||||
"phpstan/phpstan": "^1.10.65",
|
"phpstan/phpstan": "^1.11.2",
|
||||||
"phpunit/phpunit": "^10.5.15",
|
"phpunit/phpunit": "^10.5.20",
|
||||||
"squizlabs/php_codesniffer": "^3.9.0"
|
"squizlabs/php_codesniffer": "^3.9.0"
|
||||||
},
|
},
|
||||||
"bin": [
|
"bin": [
|
||||||
|
@ -780,7 +780,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-05-24T14:26:34+00:00"
|
"time": "2024-06-20T15:52:59+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "paragonie/constant_time_encoding",
|
"name": "paragonie/constant_time_encoding",
|
||||||
|
@ -1078,16 +1078,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/clock",
|
"name": "symfony/clock",
|
||||||
"version": "v7.0.7",
|
"version": "v7.1.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/clock.git",
|
"url": "https://github.com/symfony/clock.git",
|
||||||
"reference": "2008671acb4a30b01c453de193cf9c80549ebda6"
|
"reference": "3dfc8b084853586de51dd1441c6242c76a28cbe7"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/clock/zipball/2008671acb4a30b01c453de193cf9c80549ebda6",
|
"url": "https://api.github.com/repos/symfony/clock/zipball/3dfc8b084853586de51dd1441c6242c76a28cbe7",
|
||||||
"reference": "2008671acb4a30b01c453de193cf9c80549ebda6",
|
"reference": "3dfc8b084853586de51dd1441c6242c76a28cbe7",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1132,7 +1132,7 @@
|
||||||
"time"
|
"time"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/clock/tree/v7.0.7"
|
"source": "https://github.com/symfony/clock/tree/v7.1.1"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -1148,20 +1148,20 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-04-18T09:29:19+00:00"
|
"time": "2024-05-31T14:57:53+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-ctype",
|
"name": "symfony/polyfill-ctype",
|
||||||
"version": "v1.29.0",
|
"version": "v1.30.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||||
"reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4"
|
"reference": "0424dff1c58f028c451efff2045f5d92410bd540"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4",
|
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540",
|
||||||
"reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4",
|
"reference": "0424dff1c58f028c451efff2045f5d92410bd540",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1211,7 +1211,7 @@
|
||||||
"portable"
|
"portable"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0"
|
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -1227,20 +1227,20 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-01-29T20:11:03+00:00"
|
"time": "2024-05-31T15:07:36+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-mbstring",
|
"name": "symfony/polyfill-mbstring",
|
||||||
"version": "v1.29.0",
|
"version": "v1.30.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||||
"reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec"
|
"reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
|
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c",
|
||||||
"reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
|
"reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1291,7 +1291,7 @@
|
||||||
"shim"
|
"shim"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0"
|
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -1307,20 +1307,20 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-01-29T20:11:03+00:00"
|
"time": "2024-06-19T12:30:46+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-php80",
|
"name": "symfony/polyfill-php80",
|
||||||
"version": "v1.29.0",
|
"version": "v1.30.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-php80.git",
|
"url": "https://github.com/symfony/polyfill-php80.git",
|
||||||
"reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b"
|
"reference": "77fa7995ac1b21ab60769b7323d600a991a90433"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
|
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433",
|
||||||
"reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
|
"reference": "77fa7995ac1b21ab60769b7323d600a991a90433",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1371,7 +1371,7 @@
|
||||||
"shim"
|
"shim"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0"
|
"source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -1387,25 +1387,24 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-01-29T20:11:03+00:00"
|
"time": "2024-05-31T15:07:36+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-php83",
|
"name": "symfony/polyfill-php83",
|
||||||
"version": "v1.29.0",
|
"version": "v1.30.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-php83.git",
|
"url": "https://github.com/symfony/polyfill-php83.git",
|
||||||
"reference": "86fcae159633351e5fd145d1c47de6c528f8caff"
|
"reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff",
|
"url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9",
|
||||||
"reference": "86fcae159633351e5fd145d1c47de6c528f8caff",
|
"reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.1",
|
"php": ">=7.1"
|
||||||
"symfony/polyfill-php80": "^1.14"
|
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
|
@ -1448,7 +1447,7 @@
|
||||||
"shim"
|
"shim"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0"
|
"source": "https://github.com/symfony/polyfill-php83/tree/v1.30.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -1464,20 +1463,20 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-01-29T20:11:03+00:00"
|
"time": "2024-06-19T12:35:24+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/translation",
|
"name": "symfony/translation",
|
||||||
"version": "v7.0.7",
|
"version": "v7.1.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/translation.git",
|
"url": "https://github.com/symfony/translation.git",
|
||||||
"reference": "1515e03afaa93e6419aba5d5c9d209159317100b"
|
"reference": "cf5ae136e124fc7681b34ce9fac9d5b9ae8ceee3"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/translation/zipball/1515e03afaa93e6419aba5d5c9d209159317100b",
|
"url": "https://api.github.com/repos/symfony/translation/zipball/cf5ae136e124fc7681b34ce9fac9d5b9ae8ceee3",
|
||||||
"reference": "1515e03afaa93e6419aba5d5c9d209159317100b",
|
"reference": "cf5ae136e124fc7681b34ce9fac9d5b9ae8ceee3",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1542,7 +1541,7 @@
|
||||||
"description": "Provides tools to internationalize your application",
|
"description": "Provides tools to internationalize your application",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/translation/tree/v7.0.7"
|
"source": "https://github.com/symfony/translation/tree/v7.1.1"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -1558,7 +1557,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-04-18T09:29:19+00:00"
|
"time": "2024-05-31T14:57:53+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/translation-contracts",
|
"name": "symfony/translation-contracts",
|
||||||
|
|
|
@ -159,7 +159,7 @@
|
||||||
<Modal
|
<Modal
|
||||||
:open="createRuleModalOpen"
|
:open="createRuleModalOpen"
|
||||||
@close="createRuleModalOpen = false"
|
@close="createRuleModalOpen = false"
|
||||||
max-width="md:max-w-2xl"
|
max-width="md:max-w-3xl"
|
||||||
>
|
>
|
||||||
<template v-slot:title> Create new rule </template>
|
<template v-slot:title> Create new rule </template>
|
||||||
<template v-slot:content>
|
<template v-slot:content>
|
||||||
|
@ -209,7 +209,7 @@
|
||||||
<div
|
<div
|
||||||
class="w-full flex flex-col sm:flex-row sm:items-center space-y-2 sm:space-y-0"
|
class="w-full flex flex-col sm:flex-row sm:items-center space-y-2 sm:space-y-0"
|
||||||
>
|
>
|
||||||
<span>If</span>
|
<span>If the</span>
|
||||||
<span class="sm:ml-2">
|
<span class="sm:ml-2">
|
||||||
<div class="relative">
|
<div class="relative">
|
||||||
<select
|
<select
|
||||||
|
@ -370,6 +370,23 @@
|
||||||
</div>
|
</div>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
|
<multiselect
|
||||||
|
v-if="createRuleObject.actions[key].type === 'forwardTo'"
|
||||||
|
class="sm:!ml-4 flex"
|
||||||
|
v-model="createRuleObject.actions[key].value"
|
||||||
|
:options="recipientOptions"
|
||||||
|
mode="single"
|
||||||
|
value-prop="id"
|
||||||
|
:close-on-select="true"
|
||||||
|
:clear-on-select="false"
|
||||||
|
:searchable="false"
|
||||||
|
:allow-empty="true"
|
||||||
|
placeholder="Select recipient"
|
||||||
|
label="email"
|
||||||
|
track-by="email"
|
||||||
|
>
|
||||||
|
</multiselect>
|
||||||
|
|
||||||
<span
|
<span
|
||||||
v-else-if="createRuleObject.actions[key].type === 'banner'"
|
v-else-if="createRuleObject.actions[key].type === 'banner'"
|
||||||
class="sm:ml-4 flex"
|
class="sm:ml-4 flex"
|
||||||
|
@ -468,7 +485,7 @@
|
||||||
</template>
|
</template>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
|
||||||
<Modal :open="editRuleModalOpen" @close="closeEditModal" max-width="md:max-w-2xl">
|
<Modal :open="editRuleModalOpen" @close="closeEditModal" max-width="md:max-w-3xl">
|
||||||
<template v-slot:title> Edit rule </template>
|
<template v-slot:title> Edit rule </template>
|
||||||
<template v-slot:content>
|
<template v-slot:content>
|
||||||
<p class="mt-4 text-grey-700">
|
<p class="mt-4 text-grey-700">
|
||||||
|
@ -517,7 +534,7 @@
|
||||||
<div
|
<div
|
||||||
class="w-full flex flex-col sm:flex-row sm:items-center space-y-2 sm:space-y-0"
|
class="w-full flex flex-col sm:flex-row sm:items-center space-y-2 sm:space-y-0"
|
||||||
>
|
>
|
||||||
<span>If</span>
|
<span>If the</span>
|
||||||
<span class="sm:ml-2">
|
<span class="sm:ml-2">
|
||||||
<div class="relative">
|
<div class="relative">
|
||||||
<select
|
<select
|
||||||
|
@ -675,6 +692,23 @@
|
||||||
</div>
|
</div>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
|
<multiselect
|
||||||
|
v-if="editRuleObject.actions[key].type === 'forwardTo'"
|
||||||
|
class="sm:!ml-4 flex"
|
||||||
|
v-model="editRuleObject.actions[key].value"
|
||||||
|
:options="recipientOptions"
|
||||||
|
mode="single"
|
||||||
|
value-prop="id"
|
||||||
|
:close-on-select="true"
|
||||||
|
:clear-on-select="false"
|
||||||
|
:searchable="false"
|
||||||
|
:allow-empty="true"
|
||||||
|
placeholder="Select recipient"
|
||||||
|
label="email"
|
||||||
|
track-by="email"
|
||||||
|
>
|
||||||
|
</multiselect>
|
||||||
|
|
||||||
<span
|
<span
|
||||||
v-else-if="editRuleObject.actions[key].type === 'banner'"
|
v-else-if="editRuleObject.actions[key].type === 'banner'"
|
||||||
class="sm:ml-4 flex"
|
class="sm:ml-4 flex"
|
||||||
|
@ -836,6 +870,7 @@ import Toggle from '../Components/Toggle.vue'
|
||||||
import { roundArrow } from 'tippy.js'
|
import { roundArrow } from 'tippy.js'
|
||||||
import tippy from 'tippy.js'
|
import tippy from 'tippy.js'
|
||||||
import draggable from 'vuedraggable'
|
import draggable from 'vuedraggable'
|
||||||
|
import Multiselect from '@vueform/multiselect'
|
||||||
import { notify } from '@kyvg/vue3-notification'
|
import { notify } from '@kyvg/vue3-notification'
|
||||||
import { InformationCircleIcon, FunnelIcon } from '@heroicons/vue/24/outline'
|
import { InformationCircleIcon, FunnelIcon } from '@heroicons/vue/24/outline'
|
||||||
import { PlusIcon } from '@heroicons/vue/20/solid'
|
import { PlusIcon } from '@heroicons/vue/20/solid'
|
||||||
|
@ -845,6 +880,10 @@ const props = defineProps({
|
||||||
type: Array,
|
type: Array,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
|
recipientOptions: {
|
||||||
|
type: Array,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
search: {
|
search: {
|
||||||
type: String,
|
type: String,
|
||||||
},
|
},
|
||||||
|
@ -891,15 +930,19 @@ const conditionTypeOptions = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 'sender',
|
value: 'sender',
|
||||||
label: 'the sender',
|
label: 'sender email',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 'subject',
|
value: 'subject',
|
||||||
label: 'the subject',
|
label: 'subject',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 'alias',
|
value: 'alias',
|
||||||
label: 'the alias',
|
label: 'alias email',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'alias_description',
|
||||||
|
label: 'alias description',
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
const actionTypeOptions = [
|
const actionTypeOptions = [
|
||||||
|
@ -927,6 +970,14 @@ const actionTypeOptions = [
|
||||||
value: 'block',
|
value: 'block',
|
||||||
label: 'block the email',
|
label: 'block the email',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
value: 'removeAttachments',
|
||||||
|
label: 'remove attachments',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'forwardTo',
|
||||||
|
label: 'forward to',
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const indexToHuman = {
|
const indexToHuman = {
|
||||||
|
@ -1188,7 +1239,9 @@ const reorderRules = (displaySuccess = true) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const conditionMatchOptions = (object, key) => {
|
const conditionMatchOptions = (object, key) => {
|
||||||
if (_.includes(['sender', 'subject', 'alias'], object.conditions[key].type)) {
|
if (
|
||||||
|
_.includes(['sender', 'subject', 'alias', 'alias_description'], object.conditions[key].type)
|
||||||
|
) {
|
||||||
return [
|
return [
|
||||||
'contains',
|
'contains',
|
||||||
'does not contain',
|
'does not contain',
|
||||||
|
@ -1280,6 +1333,10 @@ const ruleActionChange = action => {
|
||||||
action.value = 'top'
|
action.value = 'top'
|
||||||
} else if (action.type === 'block') {
|
} else if (action.type === 'block') {
|
||||||
action.value = true
|
action.value = true
|
||||||
|
} else if (action.type === 'removeAttachments') {
|
||||||
|
action.value = true
|
||||||
|
} else if (action.type === 'forwardTo') {
|
||||||
|
action.value = ''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,11 @@
|
||||||
|
|
||||||
# Your API key expires soon
|
# Your API key expires soon
|
||||||
|
|
||||||
|
@if($tokenName)
|
||||||
|
Your API key named "**{{ $tokenName }}**" on your addy.io account expires in **one weeks time**.
|
||||||
|
@else
|
||||||
One of the API keys on your addy.io account will expire in **one weeks time**.
|
One of the API keys on your addy.io account will expire in **one weeks time**.
|
||||||
|
@endif
|
||||||
|
|
||||||
If you are not using this API key for the browser extensions, mobile apps or to access the API then you do not need to take any action.
|
If you are not using this API key for the browser extensions, mobile apps or to access the API then you do not need to take any action.
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ use Ramsey\Uuid\Uuid;
|
||||||
abstract class TestCase extends BaseTestCase
|
abstract class TestCase extends BaseTestCase
|
||||||
{
|
{
|
||||||
protected $user;
|
protected $user;
|
||||||
|
|
||||||
protected $original;
|
protected $original;
|
||||||
|
|
||||||
protected function setUp(): void
|
protected function setUp(): void
|
||||||
|
|
120
tests/emails/email_windows-1250.eml
Normal file
120
tests/emails/email_windows-1250.eml
Normal file
|
@ -0,0 +1,120 @@
|
||||||
|
Date: Wed, 20 Feb 2019 15:00:00 +0100 (CET)
|
||||||
|
From: Will <will@anonaddy.com>
|
||||||
|
To: <ebay@johndoe.anonaddy.com>
|
||||||
|
Subject: Test Email
|
||||||
|
Message-Id: <10736680l.3259911109l1696204l2095l@intime.sk>
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: multipart/alternative; boundary="--boundary.ipw.202312219143836.3659651272.2094"
|
||||||
|
|
||||||
|
|
||||||
|
This is a message encoded in MIME format.
|
||||||
|
|
||||||
|
----boundary.ipw.202312219143836.3659651272.2094
|
||||||
|
Content-Type: text/plain; charset="WINDOWS-1250"
|
||||||
|
Content-Transfer-Encoding: quoted-printable
|
||||||
|
|
||||||
|
body { font-family: Tahoma, Verdana, Arial, Helvetica, Chicago, Sans-serif;=
|
||||||
|
font-size: 12px; margin: 0px; padding: 4px; }p { text-align: justify }tr, =
|
||||||
|
td { font-size: 12px; }h1 {color: #ffffff; font-size: 14px; background: #45=
|
||||||
|
5560; padding: 4px 5px; border-left: 20px solid #f89829; }.obsah { width: 6=
|
||||||
|
60px; }.obsah p { margin: 12px; }.obsah h5 {margin: 12px; font-size: 12px; =
|
||||||
|
}Odoslanie z=E1sielky: TRACKING-NUMBER-HERE
|
||||||
|
|
||||||
|
=20
|
||||||
|
|
||||||
|
|
||||||
|
V=E1=9Een=FD z=E1kazn=EDk,
|
||||||
|
|
||||||
|
|
||||||
|
Dnes bola spracovan=E1 Va=9Aa z=E1sielka od spolo=E8nosti CAINIAO - .
|
||||||
|
Z=E1sielka
|
||||||
|
|
||||||
|
|
||||||
|
=C8=EDslo z=E1sielky: TRACKING-NUMBER-HERE
|
||||||
|
Referen=E8n=E9 =E8=EDslo: 7REF NUMBER HERE
|
||||||
|
Dodacia adresa: ADDRESS-HERE
|
||||||
|
Dobierkov=E1 suma: 0,00 EUR=20
|
||||||
|
=20
|
||||||
|
|
||||||
|
Doru=E8enie
|
||||||
|
|
||||||
|
Z=E1sielky obvykle doru=E8ujeme nasleduj=FAci pracovn=FD de=F2.
|
||||||
|
Pre bli=9E=9Aie inform=E1cie o doru=E8en=ED tejto z=E1sielky pou=9Eite odka=
|
||||||
|
z Kde je m=F4j bal=EDk.=20
|
||||||
|
|
||||||
|
Prev=E1dzkovate=BEom je spolo=E8nos=9D Express One, s.r.o., I=C8O: 31 342 6=
|
||||||
|
21 (=EFalej len ako Prev=E1dzkovate=BE).
|
||||||
|
Va=9Ae osobn=E9 =FAdaje sprac=FAva Prev=E1dzkovate=BE za =FA=E8elom zabezpe=
|
||||||
|
=E8enia doru=E8enia z=E1sielky. Prev=E1dzkovate=BEa m=F4=9Eete kontaktova=
|
||||||
|
=9D na adrese Seneck=E1 cesta 1, 900 28 Ivanka pri Dunaji. Zodpovedn=FA oso=
|
||||||
|
bu m=F4=9Eete kontaktova=9D na adrese Prev=E1dzkovate=BEa.
|
||||||
|
Bli=9E=9Aie inform=E1cie o sprac=FAvan=ED Va=9Aich osobn=FDch =FAdajov o pr=
|
||||||
|
=E1vach dotknutej osoby a z=E1sad=E1ch ochrany osobn=FDch =FAdajov n=E1jdet=
|
||||||
|
e na na=9Aej internetovej str=E1nke: https://www.expressone.sk/sk/kontakt/i=
|
||||||
|
nformacie-o-spracuvani-osobnych-udajov.html.=20
|
||||||
|
|
||||||
|
S pozdravom,
|
||||||
|
kuri=E9rska spolo=E8nos=9D
|
||||||
|
|
||||||
|
|
||||||
|
T=E1to spr=E1va je generovan=E1 na z=E1klade po=9Eiadavky odosielate=BEa z=
|
||||||
|
=E1sielky.
|
||||||
|
|
||||||
|
Pros=EDm, neodpovedajte na doru=E8en=FA spr=E1vu e-mailom, kontakt pre =EFa=
|
||||||
|
l=9Aie inform=E1cie je uveden=FD vy=9A=9Aie.
|
||||||
|
----boundary.ipw.202312219143836.3659651272.2094
|
||||||
|
Content-Type: text/html; charset="WINDOWS-1250"
|
||||||
|
Content-Transfer-Encoding: quoted-printable
|
||||||
|
|
||||||
|
<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html;" charse=
|
||||||
|
t=3D"Windows-1250"><style type=3D"text/css">body { font-family: Tahoma, Ver=
|
||||||
|
dana, Arial, Helvetica, Chicago, Sans-serif; font-size: 12px; margin: 0px; =
|
||||||
|
padding: 4px; }p { text-align: justify }tr, td { font-size: 12px; }h1 {colo=
|
||||||
|
r: #ffffff; font-size: 14px; background: #455560; padding: 4px 5px; border-=
|
||||||
|
left: 20px solid #f89829; }.obsah { width: 660px; }.obsah p { margin: 12px;=
|
||||||
|
}.obsah h5 {margin: 12px; font-size: 12px; }</style><title>Odoslanie z=E1s=
|
||||||
|
ielky: TRACKING NUMBER HERE</title></head><body text=3D"#000000" bgcolor=3D"=
|
||||||
|
#ffffff"><div class=3D"obsah"><table width=3D"100%" bgcolor=3D"#f89829"><tb=
|
||||||
|
ody><tr><td> <br></td></tr></tbody></table><p>V=E1=9Een=FD z=E1kazn=ED=
|
||||||
|
k,<br></p><p>Dnes bola spracovan=E1 Va=9Aa z=E1sielka od spolo=E8nosti CAIN=
|
||||||
|
IAO - .</p><h1>Z=E1sielka</h1><p><table border=3D"0"><tbody><tr><td>=C8=EDs=
|
||||||
|
lo z=E1sielky:</td><td><b><a href=3D"http://t-t.sps-sro.sk/result.php?cmd=
|
||||||
|
=3DSDG_SEARCH&sprache=3D&sdg_landnr=3D703&sdg_mandnr=3D310&=
|
||||||
|
sdg_lfdnr=3trackingnumber&x=3D1&y=3D1">TRACKING-NUMBER-HERE</a></b></td><=
|
||||||
|
/tr><tr><td>Referen=E8n=E9 =E8=EDslo:</td><td>7365776804539</td></tr><tr><t=
|
||||||
|
d>Dodacia adresa:</td><td>My Street Address redacted</t=
|
||||||
|
d></tr><tr><td>Dobierkov=E1 suma:</td><td>0,00 EUR <i></i></td></tr><tr><td=
|
||||||
|
> </td><td><br></td></tr></tbody></table></p><h1>Doru=E8enie</h1><p>Z=
|
||||||
|
=E1sielky obvykle doru=E8ujeme nasleduj=FAci pracovn=FD de=F2.<br>
|
||||||
|
|
||||||
|
Pre bli=9E=9Aie inform=E1cie o doru=E8en=ED tejto z=E1sielky pou=9Eite odka=
|
||||||
|
z <a href=3D"https://www.expressone.sk/sk/moja-zasielka/kde-je-moj-balik-.h=
|
||||||
|
tml"> Kde je m=F4j bal=EDk</a>.</p>
|
||||||
|
|
||||||
|
<p><small><i>
|
||||||
|
Prev=E1dzkovate=BEom je spolo=E8nos=9D <b>Express One, s.r.o.</b>, I=C8O: 3=
|
||||||
|
1 342 621 (=EFalej len ako Prev=E1dzkovate=BE).<br>
|
||||||
|
Va=9Ae osobn=E9 =FAdaje sprac=FAva Prev=E1dzkovate=BE <b>za =FA=E8elom zabe=
|
||||||
|
zpe=E8enia doru=E8enia z=E1sielky</b>. Prev=E1dzkovate=BEa m=F4=9Eete konta=
|
||||||
|
ktova=9D na adrese Seneck=E1 cesta 1, 900 28 Ivanka pri Dunaji<!-- alebo e-=
|
||||||
|
mailom <a href=3Dmailto:info@expressone.sk?Subject=3DInforma=E8n=E1 povinno=
|
||||||
|
s=9D prev=E1dzkovate=BEa target=3D_top>info@expressone.sk</a>-->.
|
||||||
|
Zodpovedn=FA osobu m=F4=9Eete kontaktova=9D na adrese Prev=E1dzkovate=BEa<=
|
||||||
|
!-- alebo prostredn=EDctvom e-mailu <a href=3Dmailto:zodpovednaosoba@expres=
|
||||||
|
sone.sk?Subject=3DInforma=E8n=E1 povinnos=9D prev=E1dzkovate=BEa target=3D_=
|
||||||
|
top>zodpovednaosoba@expressone.sk</a>-->.<br>
|
||||||
|
Bli=9E=9Aie inform=E1cie o sprac=FAvan=ED Va=9Aich osobn=FDch =FAdajov o pr=
|
||||||
|
=E1vach dotknutej osoby a z=E1sad=E1ch ochrany osobn=FDch =FAdajov n=E1jdet=
|
||||||
|
e na na=9Aej internetovej str=E1nke: <a href=3D"https://www.expressone.sk/s=
|
||||||
|
k/kontakt/informacie-o-spracuvani-osobnych-udajov.html">https://www.express=
|
||||||
|
one.sk/sk/kontakt/informacie-o-spracuvani-osobnych-udajov.html</a>.
|
||||||
|
</i></small></p>
|
||||||
|
|
||||||
|
<p>S pozdravom,<br>kuri=E9rska spolo=E8nos=9D<br><a href=3D"https://www.exp=
|
||||||
|
ressone.sk"><img alt=3D"Express" One src=3D"https://t-t.sps-sro.sk/logo/exp=
|
||||||
|
_one.png" height=3D"65" width=3D"225" hspace=3D"20" vspace=3D"20" border=3D=
|
||||||
|
"0"></a></p><p><i><small>T=E1to spr=E1va je generovan=E1 na z=E1klade po=9E=
|
||||||
|
iadavky odosielate=BEa z=E1sielky.<br><br>Pros=EDm, neodpovedajte na doru=
|
||||||
|
=E8en=FA spr=E1vu e-mailom, kontakt pre =EFal=9Aie inform=E1cie je uveden=
|
||||||
|
=FD vy=9A=9Aie.</small></i></p></div></body></html>
|
||||||
|
----boundary.ipw.202312219143836.3659651272.2094--
|
Loading…
Add table
Reference in a new issue