mirror of
https://github.com/HolgerHatGarKeineNode/einundzwanzig-nostr.git
synced 2026-06-22 22:50:24 +00:00
🛠️ Update dependencies in composer.lock to latest versions
- Upgraded multiple packages, including `brick/math`, `guzzlehttp/guzzle`, `laravel/framework`, `spatie/image`, and more. - Ensured compatibility with project requirements by verifying dependency interrelations.
This commit is contained in:
Generated
+226
-225
File diff suppressed because it is too large
Load Diff
@@ -109,6 +109,13 @@ new class extends Component
|
||||
Flux::toast('Watchtower-Adresse in die Zwischenablage kopiert!');
|
||||
}
|
||||
|
||||
public function copyBlossomUrl(): void
|
||||
{
|
||||
$blossomUrl = 'https://blossom.einundzwanzig.space';
|
||||
$this->js("navigator.clipboard.writeText('{$blossomUrl}')");
|
||||
Flux::toast('Blossom-Adresse in die Zwischenablage kopiert!');
|
||||
}
|
||||
|
||||
public function handleNostrLoggedIn($signedEvent = null): void
|
||||
{
|
||||
NostrAuth::loginWithSignedEvent($signedEvent);
|
||||
@@ -130,241 +137,313 @@ new class extends Component
|
||||
?>
|
||||
|
||||
<div>
|
||||
@php($isActiveMember = $currentPleb && $currentPleb->association_status->value > 1 && $currentYearIsPaid)
|
||||
|
||||
<!-- Header -->
|
||||
<div class="mb-8">
|
||||
<div class="mb-6">
|
||||
<h1 class="text-2xl md:text-3xl text-[#1B1B1B] dark:text-zinc-100 font-bold">
|
||||
Vorteile deiner Mitgliedschaft
|
||||
</h1>
|
||||
<p class="mt-2 max-w-2xl text-sm text-zinc-600 dark:text-zinc-400">
|
||||
Diese Dienste betreiben wir exklusiv für aktive Vereinsmitglieder. Klicke bei jedem Dienst auf
|
||||
<span class="font-medium">„Anleitung anzeigen"</span>, um die Einrichtung Schritt für Schritt zu sehen.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- Benefits Grid - Responsive Layout -->
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||
<!-- Membership status strip (statt wiederholter Hinweise pro Karte) -->
|
||||
@if($isActiveMember)
|
||||
<flux:callout variant="success" icon="check-circle" class="mb-6">
|
||||
<flux:callout.heading>Mitgliedschaft aktiv</flux:callout.heading>
|
||||
<flux:callout.text>Alle vier Dienste unten sind für dich freigeschaltet.</flux:callout.text>
|
||||
</flux:callout>
|
||||
@else
|
||||
<flux:callout variant="warning" icon="lock-closed" class="mb-6">
|
||||
<flux:callout.heading>Dienste gesperrt</flux:callout.heading>
|
||||
<flux:callout.text>
|
||||
Aktiviere deine Mitgliedschaft, um Relay, NIP-05, Watchtower und den Blossom-Medienserver zu nutzen.
|
||||
</flux:callout.text>
|
||||
<x-slot name="actions">
|
||||
<flux:button :href="route('association.profile')" size="sm" variant="primary" wire:navigate>
|
||||
Mitgliedschaft aktivieren
|
||||
</flux:button>
|
||||
</x-slot>
|
||||
</flux:callout>
|
||||
@endif
|
||||
|
||||
<!-- Benefits Grid - 2 Spalten auf Desktop für ruhigere, scanbare Übersicht -->
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-6 items-start">
|
||||
|
||||
<!-- Benefit 1: Nostr Relay -->
|
||||
<div
|
||||
class="bg-linear-to-br from-amber-50 to-orange-50 dark:from-amber-300/10 dark:to-orange-900/10 rounded-lg p-4 border border-amber-200 dark:border-amber-200/30">
|
||||
<flux:card
|
||||
class="{{ $isActiveMember ? '' : 'opacity-60' }} border-amber-200 dark:border-amber-200/30">
|
||||
<div class="flex items-start gap-3">
|
||||
<div class="shrink-0">
|
||||
<div
|
||||
class="w-8 h-8 rounded-full bg-amber-100 dark:bg-amber-900/60 flex items-center justify-center">
|
||||
<i class="fa-sharp-duotone fa-solid fa-bolt text-amber-600 dark:text-amber-400 text-base"></i>
|
||||
</div>
|
||||
<div
|
||||
class="shrink-0 w-10 h-10 rounded-full bg-amber-100 dark:bg-amber-900/60 flex items-center justify-center">
|
||||
<i class="fa-sharp-duotone fa-solid fa-bolt text-amber-600 dark:text-amber-400 text-lg"></i>
|
||||
</div>
|
||||
<div class="flex-1 min-w-0">
|
||||
<h3 class="text-lg font-semibold text-zinc-800 dark:text-zinc-100 mb-1">
|
||||
Nostr Relay
|
||||
</h3>
|
||||
<p class="text-sm text-zinc-600 dark:text-zinc-400">
|
||||
Exklusive Schreib-Rechte auf Premium Nostr Relay von Einundzwanzig.
|
||||
<div class="flex items-center justify-between gap-2">
|
||||
<h3 class="text-lg font-semibold text-zinc-800 dark:text-zinc-100">Nostr Relay</h3>
|
||||
@if($isActiveMember)
|
||||
<flux:badge color="green" size="sm">Aktiv</flux:badge>
|
||||
@else
|
||||
<flux:badge color="zinc" size="sm" icon="lock-closed">Mitglieder</flux:badge>
|
||||
@endif
|
||||
</div>
|
||||
<p class="mt-1 text-sm text-zinc-600 dark:text-zinc-400">
|
||||
Exklusive Schreib-Rechte auf dem Premium Outbox-Relay von Einundzwanzig.
|
||||
</p>
|
||||
@if($currentPleb && $currentPleb->association_status->value > 1 && $currentYearIsPaid)
|
||||
<div class="mt-3 space-y-2">
|
||||
<p class="text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed">
|
||||
Ein Outbox-Relay ist wie ein Postbote für deine Nostr-Nachrichten. Es speichert und
|
||||
verteilt deine Posts. Um unser Relay nutzen zu können, musst du es in deinem
|
||||
Nostr-Client hinzufügen.
|
||||
</p>
|
||||
<p class="text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed">
|
||||
Gehe in deinem Nostr-Client zu den Einstellungen (meistens "Settings" oder
|
||||
"Relays") und füge folgende Outbox-Relay-Adresse hinzu:
|
||||
</p>
|
||||
<div class="flex items-center gap-2 mt-2">
|
||||
<code
|
||||
class="text-xs bg-zinc-100 dark:bg-zinc-800 px-2 py-1 rounded text-zinc-700 dark:text-zinc-300 font-mono cursor-pointer hover:bg-zinc-200 dark:hover:bg-zinc-700 transition-colors"
|
||||
wire:click="copyRelayUrl">
|
||||
wss://nostr.einundzwanzig.space
|
||||
</code>
|
||||
</div>
|
||||
<p class="text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed">
|
||||
<strong>Wichtige Hinweise:</strong> Du kannst deine Posts auf mehreren Relays gleichzeitig
|
||||
veröffentlichen. So stellst du sicher, dass deine Inhalte auch über unser Relay erreichbar sind.
|
||||
</p>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if($isActiveMember)
|
||||
<div class="mt-4 flex items-center gap-2">
|
||||
<code
|
||||
class="flex-1 text-xs bg-zinc-100 dark:bg-zinc-800 px-3 py-2 rounded text-zinc-700 dark:text-zinc-300 font-mono cursor-pointer hover:bg-zinc-200 dark:hover:bg-zinc-700 transition-colors break-all"
|
||||
wire:click="copyRelayUrl"
|
||||
title="Klicken zum Kopieren">
|
||||
wss://nostr.einundzwanzig.space
|
||||
</code>
|
||||
<flux:button wire:click="copyRelayUrl" size="sm" variant="ghost" icon="clipboard"
|
||||
aria-label="Relay-Adresse kopieren"/>
|
||||
</div>
|
||||
|
||||
<flux:accordion class="mt-3">
|
||||
<flux:accordion.item heading="Anleitung anzeigen">
|
||||
<div class="space-y-2 text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed">
|
||||
<p>
|
||||
Ein Outbox-Relay ist wie ein Postbote für deine Nostr-Nachrichten: Es speichert
|
||||
und verteilt deine Posts.
|
||||
</p>
|
||||
<p>
|
||||
Gehe in deinem Nostr-Client zu den Einstellungen (meist „Settings" oder „Relays")
|
||||
und füge die Adresse oben als Outbox-Relay hinzu.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Tipp:</strong> Du kannst auf mehreren Relays gleichzeitig veröffentlichen –
|
||||
so sind deine Inhalte auch über unser Relay erreichbar.
|
||||
</p>
|
||||
</div>
|
||||
</flux:accordion.item>
|
||||
</flux:accordion>
|
||||
@endif
|
||||
</flux:card>
|
||||
|
||||
<!-- Benefit 2: NIP-05 -->
|
||||
<div
|
||||
class="bg-linear-to-br from-emerald-50 to-teal-50 dark:from-emerald-300/10 dark:to-teal-900/10 rounded-lg p-4 border border-emerald-200 dark:border-emerald-200/30">
|
||||
<div class="flex items-start gap-3 mb-3">
|
||||
<div class="shrink-0">
|
||||
<div
|
||||
class="w-8 h-8 rounded-full bg-emerald-100 dark:bg-emerald-900/60 flex items-center justify-center">
|
||||
<i class="fa-sharp-duotone fa-solid fa-check-circle text-emerald-600 dark:text-emerald-400 text-base"></i>
|
||||
</div>
|
||||
<flux:card
|
||||
class="{{ $isActiveMember ? '' : 'opacity-60' }} border-emerald-200 dark:border-emerald-200/30">
|
||||
<div class="flex items-start gap-3">
|
||||
<div
|
||||
class="shrink-0 w-10 h-10 rounded-full bg-emerald-100 dark:bg-emerald-900/60 flex items-center justify-center">
|
||||
<i class="fa-sharp-duotone fa-solid fa-check-circle text-emerald-600 dark:text-emerald-400 text-lg"></i>
|
||||
</div>
|
||||
<div class="flex-1 min-w-0">
|
||||
<h3 class="text-lg font-semibold text-zinc-800 dark:text-zinc-100 mb-1">
|
||||
Get NIP-05 verified
|
||||
</h3>
|
||||
<p class="text-sm text-zinc-600 dark:text-zinc-400">
|
||||
<div class="flex items-center justify-between gap-2">
|
||||
<h3 class="text-lg font-semibold text-zinc-800 dark:text-zinc-100">NIP-05 Verifizierung</h3>
|
||||
@if($isActiveMember)
|
||||
<flux:badge color="green" size="sm">Aktiv</flux:badge>
|
||||
@else
|
||||
<flux:badge color="zinc" size="sm" icon="lock-closed">Mitglieder</flux:badge>
|
||||
@endif
|
||||
</div>
|
||||
<p class="mt-1 text-sm text-zinc-600 dark:text-zinc-400">
|
||||
Verifiziere deine Identität mit einem menschenlesbaren Nostr-Namen.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- NIP-05 Input -->
|
||||
@if($currentPleb && $currentPleb->association_status->value > 1 && $currentYearIsPaid)
|
||||
<div class="space-y-3">
|
||||
@if($isActiveMember)
|
||||
<div class="mt-4 space-y-3">
|
||||
<flux:field>
|
||||
<flux:label>Dein NIP-05 Handle</flux:label>
|
||||
<flux:input.group>
|
||||
<flux:input
|
||||
wire:model.live.debounce="nip05Handle"
|
||||
placeholder="dein-name"
|
||||
/>
|
||||
<flux:input wire:model.live.debounce="nip05Handle" placeholder="dein-name"/>
|
||||
<flux:input.group.suffix>@einundzwanzig.space</flux:input.group.suffix>
|
||||
</flux:input.group>
|
||||
<flux:error name="nip05Handle"/>
|
||||
</flux:field>
|
||||
|
||||
<div class="flex gap-3">
|
||||
<flux:button
|
||||
wire:click="saveNip05Handle"
|
||||
wire:loading.attr="disabled"
|
||||
size="sm"
|
||||
variant="primary">
|
||||
Speichern
|
||||
</flux:button>
|
||||
</div>
|
||||
<flux:button wire:click="saveNip05Handle" wire:loading.attr="disabled" size="sm" variant="primary">
|
||||
Speichern
|
||||
</flux:button>
|
||||
|
||||
<!-- Rules Info -->
|
||||
<div
|
||||
class="mt-3 p-3 bg-white/50 dark:bg-zinc-800/50 rounded border border-zinc-200 dark:border-zinc-600">
|
||||
<p class="text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed">
|
||||
<strong>Regeln für dein Handle:</strong> Nur Kleinbuchstaben (a-z), Zahlen
|
||||
(0-9) und die Zeichen "-" und "_" sind erlaubt. Dein Handle wird automatisch
|
||||
kleingeschrieben.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- Explanation -->
|
||||
<div
|
||||
class="mt-4 p-3 bg-white/50 dark:bg-zinc-800/50 rounded border border-zinc-200 dark:border-zinc-600">
|
||||
<p class="text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed">
|
||||
<flux:link href="https://nostr.how/en/guides/get-verified#self-hosted"
|
||||
target="_blank">NIP-05
|
||||
</flux:link>
|
||||
verifiziert deine Identität auf Nostr. Das Handle ist wie eine
|
||||
E-Mail-Adresse (z.B. name@einundzwanzig.space). Clients zeigen ein Häkchen
|
||||
für verifizierte Benutzer. Dies macht dein Profil einfacher zu teilen und
|
||||
vertrauenswürdiger.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- NIP-05 Verification Status -->
|
||||
@if($nip05Verified)
|
||||
<flux:callout variant="success" icon="check-circle" class="mt-4">
|
||||
<p class="font-medium text-zinc-800 dark:text-zinc-100">
|
||||
Du hast {{ count($nip05VerifiedHandles) }} aktive Handles für deinen Pubkey!
|
||||
</p>
|
||||
@if($nip05HandleMismatch)
|
||||
<p class="text-sm text-zinc-600 dark:text-zinc-400 mt-1">
|
||||
Die Synchronisation zu <strong class="break-all">{{ $nip05Handle }}@einundzwanzig.space</strong> wird automatisch im Hintergrund durchgeführt.
|
||||
</p>
|
||||
@endif
|
||||
<flux:callout variant="success" icon="check-circle">
|
||||
<flux:callout.text>
|
||||
Du hast {{ count($nip05VerifiedHandles) }} aktive Handles für deinen Pubkey.
|
||||
@if($nip05HandleMismatch)
|
||||
Die Synchronisation zu
|
||||
<strong class="break-all">{{ $nip05Handle }}@einundzwanzig.space</strong>
|
||||
läuft automatisch im Hintergrund.
|
||||
@endif
|
||||
</flux:callout.text>
|
||||
</flux:callout>
|
||||
|
||||
<!-- List of all active handles -->
|
||||
<div class="mt-4 p-4 bg-white/50 dark:bg-zinc-800/50 rounded border border-zinc-200 dark:border-zinc-600">
|
||||
<p class="text-sm font-medium text-zinc-700 dark:text-zinc-300 mb-2">
|
||||
Deine aktivierten Handles:
|
||||
</p>
|
||||
<div class="p-3 bg-white/50 dark:bg-zinc-800/50 rounded border border-zinc-200 dark:border-zinc-600">
|
||||
<p class="text-xs font-medium text-zinc-700 dark:text-zinc-300 mb-2">Deine aktivierten Handles:</p>
|
||||
<ul class="space-y-2">
|
||||
@foreach($nip05VerifiedHandles as $handle)
|
||||
<li class="flex items-center gap-2 text-sm">
|
||||
<span class="break-all text-zinc-800 dark:text-zinc-200 font-mono">
|
||||
{{ $handle }}@einundzwanzig.space
|
||||
</span>
|
||||
<flux:badge color="green" size="xs">OK</flux:badge>
|
||||
<li class="flex items-center gap-2 text-sm" wire:key="handle-{{ $handle }}">
|
||||
<span class="break-all text-zinc-800 dark:text-zinc-200 font-mono">{{ $handle }}@einundzwanzig.space</span>
|
||||
<flux:badge color="green" size="sm">OK</flux:badge>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@elseif($nip05Handle)
|
||||
<flux:callout variant="secondary" icon="information-circle" class="mt-4">
|
||||
<p class="font-medium text-zinc-800 dark:text-zinc-100">
|
||||
Dein Handle <strong class="break-all">{{ $nip05Handle }}@einundzwanzig.space</strong> ist noch nicht aktiv.
|
||||
</p>
|
||||
<p class="text-sm text-zinc-600 dark:text-zinc-400 mt-1">
|
||||
Das Handle ist gespeichert, aber noch nicht in der NIP-05 Konfiguration veröffentlicht.
|
||||
Der Vorstand wird dies bald aktivieren.
|
||||
</p>
|
||||
<flux:callout variant="secondary" icon="information-circle">
|
||||
<flux:callout.text>
|
||||
Dein Handle <strong class="break-all">{{ $nip05Handle }}@einundzwanzig.space</strong>
|
||||
ist gespeichert, aber noch nicht aktiv. Der Vorstand schaltet es bald frei.
|
||||
</flux:callout.text>
|
||||
</flux:callout>
|
||||
@endif
|
||||
</div>
|
||||
@else
|
||||
<div class="text-xs text-zinc-500 dark:text-zinc-400 italic">
|
||||
Aktiviere deine Mitgliedschaft, um NIP-05 zu verifizieren.
|
||||
|
||||
<flux:accordion>
|
||||
<flux:accordion.item heading="Was ist NIP-05 & welche Regeln gelten?">
|
||||
<div class="space-y-2 text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed">
|
||||
<p>
|
||||
<flux:link href="https://nostr.how/en/guides/get-verified#self-hosted" target="_blank">NIP-05</flux:link>
|
||||
funktioniert wie eine E-Mail-Adresse (z.B. name@einundzwanzig.space) und zeigt
|
||||
in Clients ein Häkchen – das macht dein Profil vertrauenswürdiger und leichter teilbar.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Regeln für dein Handle:</strong> Nur Kleinbuchstaben (a–z), Zahlen (0–9)
|
||||
sowie „-" und „_". Großbuchstaben werden automatisch kleingeschrieben.
|
||||
</p>
|
||||
</div>
|
||||
</flux:accordion.item>
|
||||
</flux:accordion>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</flux:card>
|
||||
|
||||
<!-- Benefit 3: Lightning Watchtower -->
|
||||
<div
|
||||
class="bg-linear-to-br from-purple-50 to-blue-50 dark:from-purple-300/10 dark:to-blue-900/10 rounded-lg p-4 border border-purple-200 dark:border-purple-200/30">
|
||||
<div class="flex items-start gap-3 mb-3">
|
||||
<div class="shrink-0">
|
||||
<div
|
||||
class="w-8 h-8 rounded-full bg-purple-100 dark:bg-purple-900/60 flex items-center justify-center">
|
||||
<i class="fa-sharp-duotone fa-solid fa-shield-halved text-purple-600 dark:text-purple-400 text-base"></i>
|
||||
</div>
|
||||
<flux:card
|
||||
class="{{ $isActiveMember ? '' : 'opacity-60' }} border-purple-200 dark:border-purple-200/30">
|
||||
<div class="flex items-start gap-3">
|
||||
<div
|
||||
class="shrink-0 w-10 h-10 rounded-full bg-purple-100 dark:bg-purple-900/60 flex items-center justify-center">
|
||||
<i class="fa-sharp-duotone fa-solid fa-shield-halved text-purple-600 dark:text-purple-400 text-lg"></i>
|
||||
</div>
|
||||
<div class="flex-1 min-w-0">
|
||||
<h3 class="text-lg font-semibold text-zinc-800 dark:text-zinc-100 mb-1">
|
||||
Lightning Watchtower
|
||||
</h3>
|
||||
<p class="text-sm text-zinc-600 dark:text-zinc-400">
|
||||
Nutze unseren Watchtower zum Schutz deiner Lightning Channel.
|
||||
<div class="flex items-center justify-between gap-2">
|
||||
<h3 class="text-lg font-semibold text-zinc-800 dark:text-zinc-100">Lightning Watchtower</h3>
|
||||
@if($isActiveMember)
|
||||
<flux:badge color="green" size="sm">Aktiv</flux:badge>
|
||||
@else
|
||||
<flux:badge color="zinc" size="sm" icon="lock-closed">Mitglieder</flux:badge>
|
||||
@endif
|
||||
</div>
|
||||
<p class="mt-1 text-sm text-zinc-600 dark:text-zinc-400">
|
||||
Schütze deine Lightning Channel – auch wenn deine Node offline ist.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if($currentPleb && $currentPleb->association_status->value > 1 && $currentYearIsPaid)
|
||||
<div class="space-y-3">
|
||||
<p class="text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed">
|
||||
Ein Watchtower überwacht deine Lightning Channel und schützt sie, falls deine Node
|
||||
offline ist. Wenn du die Zahlung von Channel-Closing-Transaktionen verpasst, kümmert sich
|
||||
der Watchtower darum und verhindert den Verlust deiner Sats.
|
||||
</p>
|
||||
|
||||
<p class="text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed">
|
||||
Um unseren Watchtower zu nutzen, füge folgende URI in deiner Lightning Node
|
||||
Konfiguration hinzu:
|
||||
</p>
|
||||
|
||||
<div class="flex items-center gap-2">
|
||||
<code
|
||||
class="text-xs bg-zinc-100 dark:bg-zinc-800 px-2 py-1 rounded text-zinc-700 dark:text-zinc-300 font-mono cursor-pointer hover:bg-zinc-200 dark:hover:bg-zinc-700 transition-colors break-all"
|
||||
wire:click="copyWatchtowerUrl">
|
||||
03a09f56bba3d2c200cc55eda2f1f069564a97c1fb74345e1560e2868a8ab3d7d0@62.171.139.240:9911
|
||||
</code>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="mt-3 p-3 bg-white/50 dark:bg-zinc-800/50 rounded border border-zinc-200 dark:border-zinc-600">
|
||||
<p class="text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed font-medium mb-2">
|
||||
Einrichtung für gängige Lightning Clients:
|
||||
</p>
|
||||
<ul class="text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed space-y-1 list-disc list-inside">
|
||||
<li><strong>LND:</strong> <flux:link href="https://docs.lightning.engineering/lightning-network-tools/lnd/watchtower" target="_blank">https://docs.lightning.engineering/lightning-network-tools/lnd/watchtower</flux:link></li>
|
||||
<li><strong>Core Lightning:</strong> Nutze den <code class="bg-zinc-200 dark:bg-zinc-700 px-1 rounded">watchtower-client</code> Plugin mit der URI</li>
|
||||
<li><strong>Eclair:</strong> Füge die URI zu den Watchtower-Einstellungen in deiner eclair.conf hinzu</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p class="text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed">
|
||||
<strong>Wichtig:</strong> Der Watchtower überwacht deine Channel passiv. Er hat keinen Zugriff auf
|
||||
deine privaten Schlüssel oder dein Guthaben.
|
||||
</p>
|
||||
</div>
|
||||
@else
|
||||
<div class="text-xs text-zinc-500 dark:text-zinc-400 italic">
|
||||
Aktiviere deine Mitgliedschaft, um den Lightning Watchtower zu nutzen.
|
||||
@if($isActiveMember)
|
||||
<div class="mt-4 flex items-center gap-2">
|
||||
<code
|
||||
class="flex-1 text-xs bg-zinc-100 dark:bg-zinc-800 px-3 py-2 rounded text-zinc-700 dark:text-zinc-300 font-mono cursor-pointer hover:bg-zinc-200 dark:hover:bg-zinc-700 transition-colors break-all"
|
||||
wire:click="copyWatchtowerUrl"
|
||||
title="Klicken zum Kopieren">
|
||||
03a09f56bba3d2c200cc55eda2f1f069564a97c1fb74345e1560e2868a8ab3d7d0@62.171.139.240:9911
|
||||
</code>
|
||||
<flux:button wire:click="copyWatchtowerUrl" size="sm" variant="ghost" icon="clipboard"
|
||||
aria-label="Watchtower-Adresse kopieren"/>
|
||||
</div>
|
||||
|
||||
<flux:accordion class="mt-3">
|
||||
<flux:accordion.item heading="Anleitung anzeigen">
|
||||
<div class="space-y-2 text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed">
|
||||
<p>
|
||||
Ein Watchtower überwacht deine Channel und springt ein, falls deine Node offline ist –
|
||||
so verhinderst du den Verlust deiner Sats bei unfairen Channel-Schließungen.
|
||||
</p>
|
||||
<p>Füge die URI oben in deiner Lightning-Node-Konfiguration hinzu:</p>
|
||||
<ul class="space-y-1 list-disc list-inside">
|
||||
<li><strong>LND:</strong> <flux:link href="https://docs.lightning.engineering/lightning-network-tools/lnd/watchtower" target="_blank">Doku</flux:link></li>
|
||||
<li><strong>Core Lightning:</strong> <code class="bg-zinc-200 dark:bg-zinc-700 px-1 rounded">watchtower-client</code>-Plugin mit der URI</li>
|
||||
<li><strong>Eclair:</strong> URI in der <code class="bg-zinc-200 dark:bg-zinc-700 px-1 rounded">eclair.conf</code> ergänzen</li>
|
||||
</ul>
|
||||
<p>
|
||||
<strong>Wichtig:</strong> Der Watchtower überwacht passiv. Er hat keinen Zugriff auf
|
||||
deine privaten Schlüssel oder dein Guthaben.
|
||||
</p>
|
||||
</div>
|
||||
</flux:accordion.item>
|
||||
</flux:accordion>
|
||||
@endif
|
||||
</div>
|
||||
</flux:card>
|
||||
|
||||
<!-- Benefit 4: Blossom Medienserver (NEU) -->
|
||||
<flux:card
|
||||
class="{{ $isActiveMember ? '' : 'opacity-60' }} border-rose-200 dark:border-rose-200/30">
|
||||
<div class="flex items-start gap-3">
|
||||
<div
|
||||
class="shrink-0 w-10 h-10 rounded-full bg-rose-100 dark:bg-rose-900/60 flex items-center justify-center">
|
||||
<i class="fa-sharp-duotone fa-solid fa-cloud-arrow-up text-rose-600 dark:text-rose-400 text-lg"></i>
|
||||
</div>
|
||||
<div class="flex-1 min-w-0">
|
||||
<div class="flex items-center justify-between gap-2">
|
||||
<h3 class="text-lg font-semibold text-zinc-800 dark:text-zinc-100">Blossom Medienserver</h3>
|
||||
<div class="flex items-center gap-1.5">
|
||||
<flux:badge color="rose" size="sm">NEU</flux:badge>
|
||||
@if($isActiveMember)
|
||||
<flux:badge color="green" size="sm">Aktiv</flux:badge>
|
||||
@else
|
||||
<flux:badge color="zinc" size="sm" icon="lock-closed">Mitglieder</flux:badge>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<p class="mt-1 text-sm text-zinc-600 dark:text-zinc-400">
|
||||
Dein eigener Speicher für Bilder & Videos auf Nostr – betrieben vom Verein.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if($isActiveMember)
|
||||
<div class="mt-4 flex items-center gap-2">
|
||||
<code
|
||||
class="flex-1 text-xs bg-zinc-100 dark:bg-zinc-800 px-3 py-2 rounded text-zinc-700 dark:text-zinc-300 font-mono cursor-pointer hover:bg-zinc-200 dark:hover:bg-zinc-700 transition-colors break-all"
|
||||
wire:click="copyBlossomUrl"
|
||||
title="Klicken zum Kopieren">
|
||||
https://blossom.einundzwanzig.space
|
||||
</code>
|
||||
<flux:button wire:click="copyBlossomUrl" size="sm" variant="ghost" icon="clipboard"
|
||||
aria-label="Blossom-Adresse kopieren"/>
|
||||
</div>
|
||||
|
||||
<flux:accordion class="mt-3">
|
||||
<flux:accordion.item heading="Was ist Blossom & wie nutze ich ihn?">
|
||||
<div class="space-y-3 text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed">
|
||||
<p>
|
||||
Wenn du auf Nostr ein Bild oder Video postest, muss diese Datei irgendwo gespeichert
|
||||
werden. Bisher landet sie oft auf fremden Gratis-Servern, die jederzeit verschwinden
|
||||
können. Mit unserem <strong>Blossom-Server</strong> liegen deine Medien stattdessen
|
||||
sicher auf einem Server des Vereins – schnell, zuverlässig und nur für Mitglieder.
|
||||
</p>
|
||||
<div>
|
||||
<p class="font-medium text-zinc-700 dark:text-zinc-300 mb-1">So nutzt du ihn:</p>
|
||||
<ol class="space-y-1 list-decimal list-inside">
|
||||
<li>Öffne deinen Nostr-Client (z.B. Amethyst, Primal, nostrudel, Nostur).</li>
|
||||
<li>Gehe zu den Einstellungen → <strong>„Medienserver"</strong> (manchmal „Media
|
||||
Servers", „File Storage" oder „Blossom").</li>
|
||||
<li>Füge die Adresse oben hinzu und setze sie als Standard.</li>
|
||||
<li>Fertig! Deine hochgeladenen Bilder & Videos landen ab jetzt auf dem
|
||||
Vereinsserver.</li>
|
||||
</ol>
|
||||
</div>
|
||||
<p>
|
||||
<strong>Sicher:</strong> Die Anmeldung passiert automatisch über deinen Nostr-Schlüssel –
|
||||
nur Vereinsmitglieder können hochladen, und deine privaten Schlüssel verlassen
|
||||
niemals dein Gerät.
|
||||
</p>
|
||||
</div>
|
||||
</flux:accordion.item>
|
||||
</flux:accordion>
|
||||
@endif
|
||||
</flux:card>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -653,268 +653,57 @@ new class extends Component {
|
||||
<flux:heading size="xl" level="1">Vorteile deiner Mitgliedschaft</flux:heading>
|
||||
<flux:separator variant="subtle" class="mb-6"/>
|
||||
|
||||
<!-- Benefits Grid -->
|
||||
<div class="grid grid-cols-1 gap-4">
|
||||
<!-- Benefit 1 -->
|
||||
<div
|
||||
class="bg-linear-to-br from-amber-50 to-orange-50 dark:from-amber-300/10 dark:to-orange-900/10 rounded-lg p-4 border border-amber-200 dark:border-amber-200/30">
|
||||
<div class="flex items-start gap-3">
|
||||
<div class="shrink-0">
|
||||
<div
|
||||
class="w-8 h-8 rounded-full bg-amber-100 dark:bg-amber-900/60 flex items-center justify-center">
|
||||
<i class="fa-sharp-duotone fa-solid fa-bolt text-amber-600 dark:text-amber-400 text-base"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex-1 min-w-0">
|
||||
<h3 class="text-lg font-semibold text-text-primary mb-1">
|
||||
Nostr Relay
|
||||
</h3>
|
||||
<p class="text-sm text-text-secondary">
|
||||
Exklusive Schreib-Rechte auf Premium Nostr Relay von Einundzwanzig.
|
||||
</p>
|
||||
@if($currentPleb && $currentPleb->association_status->value > 1 && $currentYearIsPaid)
|
||||
<div class="mt-3 space-y-2">
|
||||
<p class="text-xs text-text-secondary leading-relaxed">
|
||||
Ein Outbox-Relay ist wie ein Postbote für deine Nostr-Nachrichten. Es
|
||||
speichert und
|
||||
verteilt deine Posts. Um unser Relay nutzen zu können, musst du es in
|
||||
deinem
|
||||
Nostr-Client hinzufügen.
|
||||
</p>
|
||||
<p class="text-xs text-text-secondary leading-relaxed">
|
||||
Gehe in deinem Nostr-Client zu den Einstellungen (meistens "Settings"
|
||||
oder
|
||||
"Relays") und füge folgende Outbox-Relay-Adresse hinzu:
|
||||
</p>
|
||||
<div class="flex items-center gap-2 mt-2">
|
||||
<code
|
||||
class="text-xs bg-bg-elevated px-2 py-1 rounded text-text-secondary font-mono cursor-pointer hover:bg-bg-surface transition-colors"
|
||||
wire:click="copyRelayUrl">
|
||||
wss://nostr.einundzwanzig.space
|
||||
</code>
|
||||
</div>
|
||||
<p class="text-xs text-text-secondary leading-relaxed">
|
||||
<strong>Wichtige Hinweise:</strong> Du kannst deine Posts auf mehreren
|
||||
Relays gleichzeitig
|
||||
veröffentlichen. So stellst du sicher, dass deine Inhalte auch über
|
||||
unser Relay erreichbar sind.
|
||||
</p>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
<!-- Kompakte Vorteils-Liste (Details & Einrichtung auf der Vorteile-Seite) -->
|
||||
<ul class="space-y-4">
|
||||
<li class="flex items-start gap-3">
|
||||
<div
|
||||
class="shrink-0 w-9 h-9 rounded-full bg-amber-100 dark:bg-amber-900/60 flex items-center justify-center">
|
||||
<i class="fa-sharp-duotone fa-solid fa-bolt text-amber-600 dark:text-amber-400"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Benefit 2: NIP-05 -->
|
||||
<div
|
||||
class="bg-linear-to-br from-emerald-50 to-teal-50 dark:from-emerald-300/10 dark:to-teal-900/10 rounded-lg p-4 border border-emerald-200 dark:border-emerald-200/30">
|
||||
<div class="flex items-start gap-3 mb-3">
|
||||
<div class="shrink-0">
|
||||
<div
|
||||
class="w-8 h-8 rounded-full bg-emerald-100 dark:bg-emerald-900/60 flex items-center justify-center">
|
||||
<i class="fa-sharp-duotone fa-solid fa-check-circle text-emerald-600 dark:text-emerald-400 text-base"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex-1 min-w-0">
|
||||
<h3 class="text-lg font-semibold text-text-primary mb-1">
|
||||
Get NIP-05 verified
|
||||
</h3>
|
||||
<p class="text-sm text-text-secondary">
|
||||
Verifiziere deine Identität mit einem menschenlesbaren Nostr-Namen.
|
||||
</p>
|
||||
</div>
|
||||
<div class="min-w-0">
|
||||
<h3 class="text-sm font-semibold text-text-primary">Nostr Relay</h3>
|
||||
<p class="text-xs text-text-secondary">Premium Outbox-Relay von Einundzwanzig.</p>
|
||||
</div>
|
||||
|
||||
<!-- NIP-05 Input -->
|
||||
@if($currentPleb && $currentPleb->association_status->value > 1 && $currentYearIsPaid)
|
||||
<div class="space-y-3">
|
||||
<flux:field>
|
||||
<flux:label>Dein NIP-05 Handle</flux:label>
|
||||
<flux:input.group>
|
||||
<flux:input
|
||||
wire:model.live.debounce="profileForm.nip05Handle"
|
||||
placeholder="dein-name"
|
||||
wire:dirty.class="border-amber-500 dark:border-amber-400"
|
||||
/>
|
||||
<flux:input.group.suffix class="!bg-[#4a7c59] !text-white font-medium">@einundzwanzig.space</flux:input.group.suffix>
|
||||
</flux:input.group>
|
||||
<flux:error name="profileForm.nip05Handle"/>
|
||||
<div wire:dirty wire:target="profileForm.nip05Handle" class="text-xs text-amber-600 dark:text-amber-400 mt-1">
|
||||
Nicht gespeichert...
|
||||
</div>
|
||||
</flux:field>
|
||||
|
||||
<div class="flex gap-3">
|
||||
<flux:button
|
||||
wire:click="saveNip05Handle"
|
||||
wire:loading.attr="disabled"
|
||||
size="sm"
|
||||
variant="outline">
|
||||
<span wire:loading.remove wire:target="saveNip05Handle">Speichern</span>
|
||||
<span wire:loading wire:target="saveNip05Handle">Speichert...</span>
|
||||
</flux:button>
|
||||
</div>
|
||||
|
||||
<!-- Rules Info -->
|
||||
<div
|
||||
class="mt-3 p-3 bg-bg-elevated rounded border border-border-default">
|
||||
<p class="text-xs text-text-secondary leading-relaxed">
|
||||
<strong>Regeln für dein Handle:</strong> Nur Kleinbuchstaben (a-z), Zahlen
|
||||
(0-9) und die Zeichen "-" und "_" sind erlaubt. Dein Handle wird automatisch
|
||||
kleingeschrieben.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- Explanation -->
|
||||
<div
|
||||
class="mt-4 p-3 bg-bg-elevated rounded border border-border-default">
|
||||
<p class="text-xs text-text-secondary leading-relaxed">
|
||||
<flux:link href="https://nostr.how/en/guides/get-verified#self-hosted"
|
||||
target="_blank">NIP-05
|
||||
</flux:link>
|
||||
verifiziert deine Identität auf Nostr. Das Handle ist wie eine
|
||||
E-Mail-Adresse (z.B. name@einundzwanzig.space). Clients zeigen ein Häkchen
|
||||
für verifizierte Benutzer. Dies macht dein Profil einfacher zu teilen und
|
||||
vertrauenswürdiger.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- NIP-05 Verification Status -->
|
||||
@if($nip05Verified)
|
||||
<flux:callout variant="success" icon="check-circle" class="mt-4">
|
||||
<p class="font-medium text-text-primary">
|
||||
Du hast {{ count($nip05VerifiedHandles) }} aktive Handles für deinen
|
||||
Pubkey!
|
||||
</p>
|
||||
@if($nip05HandleMismatch)
|
||||
<p class="text-sm text-text-secondary mt-1">
|
||||
Die Synchronisation zu <strong
|
||||
class="break-all">{{ $profileForm->nip05Handle }}
|
||||
@einundzwanzig.space</strong> wird automatisch im Hintergrund
|
||||
durchgeführt.
|
||||
</p>
|
||||
@endif
|
||||
</flux:callout>
|
||||
|
||||
<!-- List of all active handles -->
|
||||
<div
|
||||
class="mt-4 p-4 bg-bg-elevated rounded border border-border-default">
|
||||
<p class="text-sm font-medium text-text-secondary mb-2">
|
||||
Deine aktivierten Handles:
|
||||
</p>
|
||||
<ul class="space-y-2">
|
||||
@foreach($nip05VerifiedHandles as $handle)
|
||||
<li class="flex items-center gap-2 text-sm">
|
||||
<span
|
||||
class="break-all text-text-primary font-mono">
|
||||
{{ $handle }}@einundzwanzig.space
|
||||
</span>
|
||||
<flux:badge color="green" size="xs">OK</flux:badge>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@elseif($profileForm->nip05Handle)
|
||||
<flux:callout variant="secondary" icon="information-circle" class="mt-4">
|
||||
<p class="font-medium text-text-primary">
|
||||
Dein Handle <strong class="break-all">{{ $profileForm->nip05Handle }}
|
||||
@einundzwanzig.space</strong> ist noch nicht aktiv.
|
||||
</p>
|
||||
<p class="text-sm text-text-secondary mt-1">
|
||||
Das Handle ist gespeichert, aber noch nicht in der NIP-05 Konfiguration
|
||||
veröffentlicht.
|
||||
Der Vorstand wird dies bald aktivieren.
|
||||
</p>
|
||||
</flux:callout>
|
||||
@endif
|
||||
</div>
|
||||
@else
|
||||
<div class="text-xs text-text-tertiary italic">
|
||||
Aktiviere deine Mitgliedschaft, um NIP-05 zu verifizieren.
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<!-- Benefit 3: Lightning Watchtower -->
|
||||
<div
|
||||
class="bg-linear-to-br from-purple-50 to-blue-50 dark:from-purple-300/10 dark:to-blue-900/10 rounded-lg p-4 border border-purple-200 dark:border-purple-200/30">
|
||||
<div class="flex items-start gap-3 mb-3">
|
||||
<div class="shrink-0">
|
||||
<div
|
||||
class="w-8 h-8 rounded-full bg-purple-100 dark:bg-purple-900/60 flex items-center justify-center">
|
||||
<i class="fa-sharp-duotone fa-solid fa-shield-halved text-purple-600 dark:text-purple-400 text-base"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex-1 min-w-0">
|
||||
<h3 class="text-lg font-semibold text-text-primary mb-1">
|
||||
Lightning Watchtower
|
||||
</h3>
|
||||
<p class="text-sm text-text-secondary">
|
||||
Nutze unseren Watchtower zum Schutz deiner Lightning Channel.
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
<li class="flex items-start gap-3">
|
||||
<div
|
||||
class="shrink-0 w-9 h-9 rounded-full bg-emerald-100 dark:bg-emerald-900/60 flex items-center justify-center">
|
||||
<i class="fa-sharp-duotone fa-solid fa-check-circle text-emerald-600 dark:text-emerald-400"></i>
|
||||
</div>
|
||||
|
||||
@if($currentPleb && $currentPleb->association_status->value > 1 && $currentYearIsPaid)
|
||||
<div class="space-y-3">
|
||||
<p class="text-xs text-text-secondary leading-relaxed">
|
||||
Ein Watchtower überwacht deine Lightning Channel und schützt sie, falls deine
|
||||
Node
|
||||
offline ist. Wenn du die Zahlung von Channel-Closing-Transaktionen verpasst,
|
||||
kümmert sich
|
||||
der Watchtower darum und verhindert den Verlust deiner Sats.
|
||||
</p>
|
||||
|
||||
<p class="text-xs text-text-secondary leading-relaxed">
|
||||
Um unseren Watchtower zu nutzen, füge folgende URI in deiner Lightning Node
|
||||
Konfiguration hinzu:
|
||||
</p>
|
||||
|
||||
<div class="flex items-center gap-2">
|
||||
<code
|
||||
class="text-xs bg-bg-elevated px-2 py-1 rounded text-text-secondary font-mono cursor-pointer hover:bg-bg-surface transition-colors break-all"
|
||||
wire:click="copyWatchtowerUrl">
|
||||
03a09f56bba3d2c200cc55eda2f1f069564a97c1fb74345e1560e2868a8ab3d7d0@62.171.139.240:9911
|
||||
</code>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="mt-3 p-3 bg-bg-elevated rounded border border-border-default">
|
||||
<p class="text-xs text-text-secondary leading-relaxed font-medium mb-2">
|
||||
Einrichtung für gängige Lightning Clients:
|
||||
</p>
|
||||
<ul class="text-xs text-text-secondary leading-relaxed space-y-1 list-disc list-inside">
|
||||
<li><strong>LND:</strong>
|
||||
<flux:link
|
||||
href="https://docs.lightning.engineering/lightning-network-tools/lnd/watchtower"
|
||||
target="_blank">
|
||||
https://docs.lightning.engineering/lightning-network-tools/lnd/watchtower
|
||||
</flux:link>
|
||||
</li>
|
||||
<li><strong>Core Lightning:</strong> Nutze den <code
|
||||
class="bg-bg-elevated px-1 rounded">watchtower-client</code>
|
||||
Plugin mit der URI
|
||||
</li>
|
||||
<li><strong>Eclair:</strong> Füge die URI zu den Watchtower-Einstellungen in
|
||||
deiner eclair.conf hinzu
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p class="text-xs text-text-secondary leading-relaxed">
|
||||
<strong>Wichtig:</strong> Der Watchtower überwacht deine Channel passiv. Er hat
|
||||
keinen Zugriff auf
|
||||
deine privaten Schlüssel oder dein Guthaben.
|
||||
</p>
|
||||
<div class="min-w-0">
|
||||
<h3 class="text-sm font-semibold text-text-primary">NIP-05 Verifizierung</h3>
|
||||
<p class="text-xs text-text-secondary">Menschenlesbarer, verifizierter Nostr-Name.</p>
|
||||
</div>
|
||||
</li>
|
||||
<li class="flex items-start gap-3">
|
||||
<div
|
||||
class="shrink-0 w-9 h-9 rounded-full bg-purple-100 dark:bg-purple-900/60 flex items-center justify-center">
|
||||
<i class="fa-sharp-duotone fa-solid fa-shield-halved text-purple-600 dark:text-purple-400"></i>
|
||||
</div>
|
||||
<div class="min-w-0">
|
||||
<h3 class="text-sm font-semibold text-text-primary">Lightning Watchtower</h3>
|
||||
<p class="text-xs text-text-secondary">Schutz für deine Lightning Channel.</p>
|
||||
</div>
|
||||
</li>
|
||||
<li class="flex items-start gap-3">
|
||||
<div
|
||||
class="shrink-0 w-9 h-9 rounded-full bg-rose-100 dark:bg-rose-900/60 flex items-center justify-center">
|
||||
<i class="fa-sharp-duotone fa-solid fa-cloud-arrow-up text-rose-600 dark:text-rose-400"></i>
|
||||
</div>
|
||||
<div class="min-w-0">
|
||||
<div class="flex items-center gap-2">
|
||||
<h3 class="text-sm font-semibold text-text-primary">Blossom Medienserver</h3>
|
||||
<flux:badge color="rose" size="sm">NEU</flux:badge>
|
||||
</div>
|
||||
@else
|
||||
<div class="text-xs text-text-tertiary italic">
|
||||
Aktiviere deine Mitgliedschaft, um den Lightning Watchtower zu nutzen.
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
<p class="text-xs text-text-secondary">Eigener Speicher für Bilder & Videos auf Nostr.</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<flux:button :href="route('association.benefits')" wire:navigate variant="primary" size="sm"
|
||||
icon:trailing="arrow-right" class="mt-6 w-full">
|
||||
Alle Details & Einrichtung
|
||||
</flux:button>
|
||||
</div>
|
||||
</div>
|
||||
</flux:card>
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
use App\Models\EinundzwanzigPleb;
|
||||
use App\Support\NostrAuth;
|
||||
use Livewire\Livewire;
|
||||
|
||||
function activePaidPleb(): EinundzwanzigPleb
|
||||
{
|
||||
$pleb = EinundzwanzigPleb::factory()->active()->create();
|
||||
|
||||
$pleb->paymentEvents()->create([
|
||||
'year' => date('Y'),
|
||||
'amount' => 21000,
|
||||
'event_id' => 'event-benefits',
|
||||
'paid' => true,
|
||||
]);
|
||||
|
||||
return $pleb;
|
||||
}
|
||||
|
||||
it('shows the locked state with all four services for guests', function () {
|
||||
Livewire::test('association.benefits')
|
||||
->assertSet('currentYearIsPaid', false)
|
||||
->assertSee('Dienste gesperrt')
|
||||
->assertSee('Blossom-Medienserver')
|
||||
->assertDontSee('https://blossom.einundzwanzig.space');
|
||||
});
|
||||
|
||||
it('unlocks the blossom server for active paid members', function () {
|
||||
$pleb = activePaidPleb();
|
||||
NostrAuth::login($pleb->pubkey);
|
||||
|
||||
Livewire::test('association.benefits')
|
||||
->assertSet('currentYearIsPaid', true)
|
||||
->assertSee('Mitgliedschaft aktiv')
|
||||
->assertSee('Blossom Medienserver')
|
||||
->assertSee('https://blossom.einundzwanzig.space');
|
||||
});
|
||||
|
||||
it('copies the blossom url for active members', function () {
|
||||
$pleb = activePaidPleb();
|
||||
NostrAuth::login($pleb->pubkey);
|
||||
|
||||
Livewire::test('association.benefits')
|
||||
->call('copyBlossomUrl')
|
||||
->assertHasNoErrors();
|
||||
});
|
||||
@@ -12,6 +12,15 @@ it('rejects non-string values for the fax field', function () {
|
||||
->assertStatus(422);
|
||||
});
|
||||
|
||||
it('lists all member benefits including blossom for guests with a link to the benefits page', function () {
|
||||
Livewire::test('association.profile')
|
||||
->assertSee('Nostr Relay')
|
||||
->assertSee('NIP-05 Verifizierung')
|
||||
->assertSee('Lightning Watchtower')
|
||||
->assertSee('Blossom Medienserver')
|
||||
->assertSeeHtml(route('association.benefits'));
|
||||
});
|
||||
|
||||
it('rejects non-string values for the email field', function () {
|
||||
Livewire::test('association.profile')
|
||||
->set('profileForm.email', [])
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
outvariant "1.4.0"
|
||||
static-browser-server "1.0.3"
|
||||
|
||||
"@emnapi/core@1.10.0", "@emnapi/core@^1.10.0":
|
||||
"@emnapi/core@1.10.0":
|
||||
version "1.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.10.0.tgz#380ccc8f2412ea22d1d972df7f8ee23a3b9c7467"
|
||||
integrity sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==
|
||||
@@ -30,20 +30,42 @@
|
||||
"@emnapi/wasi-threads" "1.2.1"
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@emnapi/runtime@1.10.0", "@emnapi/runtime@^1.10.0":
|
||||
"@emnapi/core@^1.10.0":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.11.1.tgz#b9e1064f3a6b1631e241e638eb48d736bfd372a6"
|
||||
integrity sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==
|
||||
dependencies:
|
||||
"@emnapi/wasi-threads" "1.2.2"
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@emnapi/runtime@1.10.0":
|
||||
version "1.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.10.0.tgz#4b260c0d3534204e98c6110b8db1a987d26ec87c"
|
||||
integrity sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==
|
||||
dependencies:
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@emnapi/wasi-threads@1.2.1", "@emnapi/wasi-threads@^1.2.1":
|
||||
"@emnapi/runtime@^1.10.0":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.11.1.tgz#58f1f3d5d81a9b12f793ab688c96371901027c24"
|
||||
integrity sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==
|
||||
dependencies:
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@emnapi/wasi-threads@1.2.1":
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz#28fed21a1ba1ce797c44a070abc94d42f3ae8548"
|
||||
integrity sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==
|
||||
dependencies:
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@emnapi/wasi-threads@1.2.2", "@emnapi/wasi-threads@^1.2.1":
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz#4c93becf5bfa3b13d1bbdcc06aee38321ad8139a"
|
||||
integrity sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==
|
||||
dependencies:
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@jridgewell/gen-mapping@^0.3.5":
|
||||
version "0.3.13"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f"
|
||||
@@ -84,11 +106,11 @@
|
||||
integrity sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==
|
||||
|
||||
"@napi-rs/wasm-runtime@^1.1.4":
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz#a46bbfedc29751b7170c5d23bc1d8ee8c7e3c1e1"
|
||||
integrity sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==
|
||||
version "1.1.5"
|
||||
resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.5.tgz#cccd6ebc40b991dea6936f9126b1b8155b6c4c95"
|
||||
integrity sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==
|
||||
dependencies:
|
||||
"@tybys/wasm-util" "^0.10.1"
|
||||
"@tybys/wasm-util" "^0.10.2"
|
||||
|
||||
"@noble/ciphers@2.1.1":
|
||||
version "2.1.1"
|
||||
@@ -145,89 +167,89 @@
|
||||
resolved "https://registry.yarnpkg.com/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz#4a822d10f6f0e316be4d67b4d4f8c9a124b073bd"
|
||||
integrity sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==
|
||||
|
||||
"@oxc-project/types@=0.132.0":
|
||||
version "0.132.0"
|
||||
resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.132.0.tgz#d77243df4fe1a0a1e60e12ac6240fa898d2363ff"
|
||||
integrity sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==
|
||||
"@oxc-project/types@=0.133.0":
|
||||
version "0.133.0"
|
||||
resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.133.0.tgz#2e282ef9e1d26e06b68ccd14b73f310a3b2cf7f8"
|
||||
integrity sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==
|
||||
|
||||
"@rolldown/binding-android-arm64@1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.2.tgz#ebe1264e43ba5bb224c58c85e0ac238f87e5ad14"
|
||||
integrity sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==
|
||||
"@rolldown/binding-android-arm64@1.0.3":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.3.tgz#54ce8f8382213f4a314a0c2f7ba83f81ffeae592"
|
||||
integrity sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==
|
||||
|
||||
"@rolldown/binding-darwin-arm64@1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.2.tgz#f972fb71bc03840629bee923babbb7048d14a5d0"
|
||||
integrity sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==
|
||||
"@rolldown/binding-darwin-arm64@1.0.3":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.3.tgz#388fca1566c14c00c4b446fc3928630e7f0d95fc"
|
||||
integrity sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==
|
||||
|
||||
"@rolldown/binding-darwin-x64@1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.2.tgz#da1c062c135e1e50067084be5ab8055cc1e05b29"
|
||||
integrity sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==
|
||||
"@rolldown/binding-darwin-x64@1.0.3":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.3.tgz#53f57de1f599ecf1db13823cfc88c18fb80954ad"
|
||||
integrity sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==
|
||||
|
||||
"@rolldown/binding-freebsd-x64@1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.2.tgz#a4c8532072705ce597c0d75418513709b75b3f1d"
|
||||
integrity sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==
|
||||
"@rolldown/binding-freebsd-x64@1.0.3":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.3.tgz#6f3fdda1b7aeaac9d268a526804b4fb96e4e35f1"
|
||||
integrity sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==
|
||||
|
||||
"@rolldown/binding-linux-arm-gnueabihf@1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.2.tgz#78f3bd274a1bab07356017d728b70289f04011c1"
|
||||
integrity sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==
|
||||
"@rolldown/binding-linux-arm-gnueabihf@1.0.3":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.3.tgz#d87a454bf585cc9676849377e91d6e375297326f"
|
||||
integrity sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==
|
||||
|
||||
"@rolldown/binding-linux-arm64-gnu@1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.2.tgz#4dc530aed0b554762ffc1a5e4f016b8be495eea0"
|
||||
integrity sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==
|
||||
"@rolldown/binding-linux-arm64-gnu@1.0.3":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.3.tgz#419fd6bf612cf348f10528cbcd94ebab9607d8d1"
|
||||
integrity sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==
|
||||
|
||||
"@rolldown/binding-linux-arm64-musl@1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.2.tgz#56043cdf4768ea3184bb08a3f45b24f183003877"
|
||||
integrity sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==
|
||||
"@rolldown/binding-linux-arm64-musl@1.0.3":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.3.tgz#fcc6918696bb76844877e1e4930a18fd0d374069"
|
||||
integrity sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==
|
||||
|
||||
"@rolldown/binding-linux-ppc64-gnu@1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.2.tgz#92eba998d5cd9e4cfc8b95407b4b80f46dacadf4"
|
||||
integrity sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==
|
||||
"@rolldown/binding-linux-ppc64-gnu@1.0.3":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.3.tgz#32aecb7c8dae5d4f2a8cde57a058ec86991542f8"
|
||||
integrity sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==
|
||||
|
||||
"@rolldown/binding-linux-s390x-gnu@1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.2.tgz#50b0e95dc3c22af1ecd1669ad7e6030e6860819e"
|
||||
integrity sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==
|
||||
"@rolldown/binding-linux-s390x-gnu@1.0.3":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.3.tgz#bed9346ea81e6bb8b93cf11f5d88b77db890b763"
|
||||
integrity sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==
|
||||
|
||||
"@rolldown/binding-linux-x64-gnu@1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.2.tgz#d9fd5af004a373a2d26a09ce8fb66bd0927cbc0b"
|
||||
integrity sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==
|
||||
"@rolldown/binding-linux-x64-gnu@1.0.3":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.3.tgz#64c2d26f75dffd9b5a1f97557a00ae77250c8cb7"
|
||||
integrity sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==
|
||||
|
||||
"@rolldown/binding-linux-x64-musl@1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.2.tgz#c0ad80adf4d4df430d0ec309e97924db85065c3c"
|
||||
integrity sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==
|
||||
"@rolldown/binding-linux-x64-musl@1.0.3":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.3.tgz#5a45132e8a47659eeaaf3b540c2954a97c860ff3"
|
||||
integrity sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==
|
||||
|
||||
"@rolldown/binding-openharmony-arm64@1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.2.tgz#341fc254ef7759f865bb219beb5cea6f5c9a44f6"
|
||||
integrity sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==
|
||||
"@rolldown/binding-openharmony-arm64@1.0.3":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.3.tgz#290513068c55e849dc8457a32afee1d7b0acb309"
|
||||
integrity sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==
|
||||
|
||||
"@rolldown/binding-wasm32-wasi@1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.2.tgz#65f9389f74168fd54e67b12d0630fb90348051f0"
|
||||
integrity sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==
|
||||
"@rolldown/binding-wasm32-wasi@1.0.3":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.3.tgz#3d9972dbf1a953d3c7afaa4a0f20ef2b2e39f31b"
|
||||
integrity sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==
|
||||
dependencies:
|
||||
"@emnapi/core" "1.10.0"
|
||||
"@emnapi/runtime" "1.10.0"
|
||||
"@napi-rs/wasm-runtime" "^1.1.4"
|
||||
|
||||
"@rolldown/binding-win32-arm64-msvc@1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.2.tgz#17e80f3402308f12c76ff4172768d51715b522ac"
|
||||
integrity sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==
|
||||
"@rolldown/binding-win32-arm64-msvc@1.0.3":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.3.tgz#a004ab607a16d6f03bcb555728ff888af75773ad"
|
||||
integrity sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==
|
||||
|
||||
"@rolldown/binding-win32-x64-msvc@1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.2.tgz#875cfa37f26d11692dbe28b8331499c97aa99d1f"
|
||||
integrity sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==
|
||||
"@rolldown/binding-win32-x64-msvc@1.0.3":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.3.tgz#e2a25b34691a1cc8a1209d7de709063026dd0cdb"
|
||||
integrity sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==
|
||||
|
||||
"@rolldown/pluginutils@^1.0.0":
|
||||
version "1.0.1"
|
||||
@@ -276,13 +298,13 @@
|
||||
"@types/hast" "^3.0.4"
|
||||
hast-util-to-html "^9.0.5"
|
||||
|
||||
"@shikijs/core@4.1.0":
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-4.1.0.tgz#c7e9d0531f6339478c415168b375ad04b8f22ba6"
|
||||
integrity sha512-jLJtSJeuFffqX6/inRE1zqU5aFv2hrszvYgq3OjbAgFRZiWv7abKMDdQzYxuSDfmUPQozZvI/kuy6VMTvnvqTQ==
|
||||
"@shikijs/core@4.2.0":
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-4.2.0.tgz#d7940ddd179f09638facff3f2322e91b6db1c07c"
|
||||
integrity sha512-Hc87Ab1Ld/vEbZRCbwx344I5v+4RU8CVToUTRkqXL1+TjbuOp9U5Xa0M23V4GEWHxVn+yO5otb+HkQVm3ptWQQ==
|
||||
dependencies:
|
||||
"@shikijs/primitive" "4.1.0"
|
||||
"@shikijs/types" "4.1.0"
|
||||
"@shikijs/primitive" "4.2.0"
|
||||
"@shikijs/types" "4.2.0"
|
||||
"@shikijs/vscode-textmate" "^10.0.2"
|
||||
"@types/hast" "^3.0.4"
|
||||
hast-util-to-html "^9.0.5"
|
||||
@@ -296,12 +318,12 @@
|
||||
"@shikijs/vscode-textmate" "^10.0.2"
|
||||
oniguruma-to-es "^4.3.4"
|
||||
|
||||
"@shikijs/engine-javascript@4.1.0":
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@shikijs/engine-javascript/-/engine-javascript-4.1.0.tgz#428383da53b89a1c2cf49d617c452591dac58bc2"
|
||||
integrity sha512-YquhawCUgaBfhsS72e2Y/dI59gCBNPHu3fEO/tvLaXrTssxZrY5ddjtNLTwndrMgPo8b3IscE+xoICDzpTmlFQ==
|
||||
"@shikijs/engine-javascript@4.2.0":
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@shikijs/engine-javascript/-/engine-javascript-4.2.0.tgz#752b06cc2f886af2480b5727fa6348935d1ef843"
|
||||
integrity sha512-fjETeq1k5ffyXqRgS6+3hpvqseLalp1kjNfRbXpUgWR8FpZ1CmQfiNHovc5lncYjt/Vg5JK/WJEmLahjwMa0og==
|
||||
dependencies:
|
||||
"@shikijs/types" "4.1.0"
|
||||
"@shikijs/types" "4.2.0"
|
||||
"@shikijs/vscode-textmate" "^10.0.2"
|
||||
oniguruma-to-es "^4.3.6"
|
||||
|
||||
@@ -313,12 +335,12 @@
|
||||
"@shikijs/types" "3.23.0"
|
||||
"@shikijs/vscode-textmate" "^10.0.2"
|
||||
|
||||
"@shikijs/engine-oniguruma@4.1.0":
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@shikijs/engine-oniguruma/-/engine-oniguruma-4.1.0.tgz#3f292d71028ada44756b23c3cb66b4e4517542d3"
|
||||
integrity sha512-axLpjVs45YBvvINa+dJF+NPW+KtFkNXsFr4SDw2BMj9GdeMnGxVB9PQb2xXlJYovslt/nz6giedAyOANkfc7hg==
|
||||
"@shikijs/engine-oniguruma@4.2.0":
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@shikijs/engine-oniguruma/-/engine-oniguruma-4.2.0.tgz#743dc1f5514afbd8423d1e01189b2fb590d62dd5"
|
||||
integrity sha512-hTorK1dffPkpbMUk6Z+828PgRo7d07HbnizoP0hNPFjhxMHctj0Px/qoHeGMYafc6ju+u9iMldN4JbVzNQM++g==
|
||||
dependencies:
|
||||
"@shikijs/types" "4.1.0"
|
||||
"@shikijs/types" "4.2.0"
|
||||
"@shikijs/vscode-textmate" "^10.0.2"
|
||||
|
||||
"@shikijs/langs@3.23.0":
|
||||
@@ -328,19 +350,19 @@
|
||||
dependencies:
|
||||
"@shikijs/types" "3.23.0"
|
||||
|
||||
"@shikijs/langs@4.1.0":
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@shikijs/langs/-/langs-4.1.0.tgz#3f1dc97d8d7b0caf17e854e3864b6ccf1c1c112d"
|
||||
integrity sha512-nwOMruEkbgdZfQ/b8CgpNBVOpvG1k0N5tbmgiFeqsan401+x3ILqlzZJowSla4Agmq4hG2Uf2wh5jLTEhR8VSg==
|
||||
"@shikijs/langs@4.2.0":
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@shikijs/langs/-/langs-4.2.0.tgz#084f832fda4e858738ff3070f8439e732131d709"
|
||||
integrity sha512-bwrVRlJ0wUhZxAbVdvBbv2TTC9yLsh4C/IO5Ofz0T8MQntgDvyVnkbjw9vi50r1kx7RCIJdnJnjZAwmAsXFLZQ==
|
||||
dependencies:
|
||||
"@shikijs/types" "4.1.0"
|
||||
"@shikijs/types" "4.2.0"
|
||||
|
||||
"@shikijs/primitive@4.1.0":
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@shikijs/primitive/-/primitive-4.1.0.tgz#16418a0bfdae374d3675a3aa96e3bfec8a2d8b1f"
|
||||
integrity sha512-zx2/2Uwj2q9X3KSyYREEhXO23xBw5WUhP4orK2lE4r+t9JGITmEe0JH+wPmJhqHpOT2bRRs6lAL945+LDvOAGw==
|
||||
"@shikijs/primitive@4.2.0":
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@shikijs/primitive/-/primitive-4.2.0.tgz#382eb3ac46d7737775dd2abd9fe363b7a86fe612"
|
||||
integrity sha512-NOq+DtUkVBJtZMVXL5A0vI0Xk8nvDYaXetFHSJFlOqjDZIVhIPRYFdGkSoElDqNuegikcc3A76SNUa8dTqtAYA==
|
||||
dependencies:
|
||||
"@shikijs/types" "4.1.0"
|
||||
"@shikijs/types" "4.2.0"
|
||||
"@shikijs/vscode-textmate" "^10.0.2"
|
||||
"@types/hast" "^3.0.4"
|
||||
|
||||
@@ -351,12 +373,12 @@
|
||||
dependencies:
|
||||
"@shikijs/types" "3.23.0"
|
||||
|
||||
"@shikijs/themes@4.1.0":
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@shikijs/themes/-/themes-4.1.0.tgz#8ad5be7eff1794ed72dc07766cb5fc6d164c9c18"
|
||||
integrity sha512-emCcTnUM7yO2wltYbaxm+yLvcCI4+h8XBKc4KmJ7EZUXoSGjcCHifkI//R4OFit9ewpg7H2/9tjOuXrT2v/Knw==
|
||||
"@shikijs/themes@4.2.0":
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@shikijs/themes/-/themes-4.2.0.tgz#3c56a59446775a312d1abaf198a1b18f449acf16"
|
||||
integrity sha512-RX8IHYeLv8Cu2W6ruc3RxUqWn0IYCqSrMBzi/uRGAmfyDNOnNO5BF/Px7o97n4XTpmFTo5GbRaazuOWj+2ak2w==
|
||||
dependencies:
|
||||
"@shikijs/types" "4.1.0"
|
||||
"@shikijs/types" "4.2.0"
|
||||
|
||||
"@shikijs/types@3.23.0":
|
||||
version "3.23.0"
|
||||
@@ -366,10 +388,10 @@
|
||||
"@shikijs/vscode-textmate" "^10.0.2"
|
||||
"@types/hast" "^3.0.4"
|
||||
|
||||
"@shikijs/types@4.1.0":
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-4.1.0.tgz#3dfbede55280906b5f1db34838da69ba72ee5c03"
|
||||
integrity sha512-3EQWX54fMpniOrDblzAhiwiJwpiTMW6+B9DWyUd9ska483tbayFYuw47UxwuPknI31bKnySfVQ/QW+jFL4rFdA==
|
||||
"@shikijs/types@4.2.0":
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-4.2.0.tgz#47832292f85b90040ca6887ce49bf5bc01183eb2"
|
||||
integrity sha512-VT/MKtlpOhEPZloSH3Pb9WCZEBDoQVMa9jedp5UAwmJOar1DVc9DRODAxmYPW9M93IK4ryuqRejFfmlvlVDemw==
|
||||
dependencies:
|
||||
"@shikijs/vscode-textmate" "^10.0.2"
|
||||
"@types/hast" "^3.0.4"
|
||||
@@ -386,114 +408,114 @@
|
||||
dependencies:
|
||||
mini-svg-data-uri "^1.2.3"
|
||||
|
||||
"@tailwindcss/node@4.3.0":
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/node/-/node-4.3.0.tgz#9dc5312bf41c48658529f36021e0b466c4eb7860"
|
||||
integrity sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g==
|
||||
"@tailwindcss/node@4.3.1":
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/node/-/node-4.3.1.tgz#77402afcfa29c4b48b8494d0edfc4428d0a504ba"
|
||||
integrity sha512-6NDaqRoAMSXD1mr/RXu0HBvNE9a2n5tHPsxu9XHLws8o4Twes5rBM2205SUUiJ9goAtadrN6xTGX0UDEwp/N4A==
|
||||
dependencies:
|
||||
"@jridgewell/remapping" "^2.3.5"
|
||||
enhanced-resolve "^5.21.0"
|
||||
jiti "^2.6.1"
|
||||
enhanced-resolve "5.21.6"
|
||||
jiti "^2.7.0"
|
||||
lightningcss "1.32.0"
|
||||
magic-string "^0.30.21"
|
||||
source-map-js "^1.2.1"
|
||||
tailwindcss "4.3.0"
|
||||
tailwindcss "4.3.1"
|
||||
|
||||
"@tailwindcss/oxide-android-arm64@4.3.0":
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.0.tgz#e4533b6125236fe81a899cf5a82028c85244def8"
|
||||
integrity sha512-TJPiq67tKlLuObP6RkwvVGDoxCMBVtDgKkLfa/uyj7/FyxvQwHS+UOnVrXXgbEsfUaMgiVvC4KbJnRr26ho4Ng==
|
||||
"@tailwindcss/oxide-android-arm64@4.3.1":
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.1.tgz#83c6762cd383a2ebc6e01897b0f35f19225e6653"
|
||||
integrity sha512-SVlyf61g374l5cHyg8x9kf5xmLcOaxvOTsbsqDnSsDJaKOEFZ7GCvi84VAVGpxojYOs1+3K6M0UjXfqPU8vmOQ==
|
||||
|
||||
"@tailwindcss/oxide-darwin-arm64@4.3.0":
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.0.tgz#96b074ef64ec6c41d580063740c8d36cf5c459ce"
|
||||
integrity sha512-oMN/WZRb+SO37BmUElEgeEWuU8E/HXRkiODxJxLe1UTHVXLrdVSgfaJV7pSlhRGMSOiXLuxTIjfsF3wYvz8cgQ==
|
||||
"@tailwindcss/oxide-darwin-arm64@4.3.1":
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.1.tgz#2558b7e835889ad721823e4dcb50dd5071d747d8"
|
||||
integrity sha512-hVnWLwv+e/l7c4WKyVtHVrIPvYdqWHjRB3MDIqARynzFtnQg85kmQEFCbV9Ja0VVx4xXTIiDWY60Y7iz/iNoDA==
|
||||
|
||||
"@tailwindcss/oxide-darwin-x64@4.3.0":
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.0.tgz#0d9638d06d38684339b2dc06631966a7296bb64e"
|
||||
integrity sha512-N6CUmu4a6bKVADfw77p+iw6Yd9Q3OBhe0veaDX+QazfuVYlQsHfDgxBrsjQ/IW+zywL8mTrNd0SdJT/zgtvMdA==
|
||||
"@tailwindcss/oxide-darwin-x64@4.3.1":
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.1.tgz#d987957b87a26668b6d0117ccd4a8a4d1a318a2b"
|
||||
integrity sha512-Cf7abu0WVgbhU7ANgPUnSAvm7nCvMweusHb8FnaHlLfv/Caq4GYaEZg7ZImzzmjx4lIAfuS8q+eLIS7A7IzxIg==
|
||||
|
||||
"@tailwindcss/oxide-freebsd-x64@4.3.0":
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.0.tgz#efc7acd17cd38d7585c07cb938a4f1b703f79d7a"
|
||||
integrity sha512-zDL5hBkQdH5C6MpqbK3gQAgP80tsMwSI26vjOzjJtNCMUo0lFgOItzHKBIupOZNQxt3ouPH7RPhvNhiTfCe5CQ==
|
||||
"@tailwindcss/oxide-freebsd-x64@4.3.1":
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.1.tgz#75b342c81a07b1afa437976ec82f86d372431da7"
|
||||
integrity sha512-ZZqzX2Y+GXtXXfqSfpJhDm60OoZfvLHLCgm+J7NVqgHHJjG/m9ugZI77RwTsVd4fnBJuCFP6Ae6kTJb71UdS8g==
|
||||
|
||||
"@tailwindcss/oxide-linux-arm-gnueabihf@4.3.0":
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.0.tgz#e41c945e529670cd93fd6ed0c6a2880de5c40333"
|
||||
integrity sha512-R06HdNi7A7OEoMsf6d4tjZ71RCWnZQPHj2mnotSFURjNLdBC+cIgXQ7l81CqeoiQftjf6OOblxXMInMgN2VzMA==
|
||||
"@tailwindcss/oxide-linux-arm-gnueabihf@4.3.1":
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.1.tgz#6730adc6d17187eeeff2f14f6a914d009749cb97"
|
||||
integrity sha512-/Ah/xik0LaMYfv9DZ0S/t4pBlBNYOcqtRwusjgovHkvT8ixueWCLyJjsaF5kQIckjb4IT8Q6K6p/iPmZMixYgg==
|
||||
|
||||
"@tailwindcss/oxide-linux-arm64-gnu@4.3.0":
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.0.tgz#6bb608b16ba7146d61097c2f4c7ee927d1f3580a"
|
||||
integrity sha512-qTJHELX8jetjhRQHCLilkVLmybpzNQAtaI/gaoVoidn/ufbNDbAo8KlK2J+yPoc8wQxvDxCmh/5lr8nC1+lTbg==
|
||||
"@tailwindcss/oxide-linux-arm64-gnu@4.3.1":
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.1.tgz#869d16b3d9bd8097b797a3dd876db0368c07eae3"
|
||||
integrity sha512-gqdFoVJlw444GvpnheZLHmvTzSxI/cOUUh2KSNejQjTcYkW062SVD+En0rUgD+QV91bz1XGIGtt1HJd48xUGbQ==
|
||||
|
||||
"@tailwindcss/oxide-linux-arm64-musl@4.3.0":
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.0.tgz#1bb443aa371bb99b50cb39d4d688151fadcd8a63"
|
||||
integrity sha512-Z6sukiQsngnWO+l39X4pPbiWT81IC+PLKF+PHxIlyZbGNb9MODfYlXEVlFvej5BOZInWX01kVyzeLvHsXhfczQ==
|
||||
"@tailwindcss/oxide-linux-arm64-musl@4.3.1":
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.1.tgz#ab110680ce3c7a2a135656db4402dffc1fb9c1d7"
|
||||
integrity sha512-Bwv9KwOvE0VKa86xPFif9b9c3Y1NxOV1P0gLti/IYaWEsQYZXDlxfGEtA8mdDZ7SG3wyNXAWYT5SIn3giL57oA==
|
||||
|
||||
"@tailwindcss/oxide-linux-x64-gnu@4.3.0":
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.0.tgz#5267c0bb2597426c0d2e759acb5389cde2aa71fd"
|
||||
integrity sha512-DRNdQRpSGzRGfARVuVkxvM8Q12nh19l4BF/G7zGA1oe+9wcC6saFBHTISrpIcKzhiXtSrlSrluCfvMuledoCTQ==
|
||||
"@tailwindcss/oxide-linux-x64-gnu@4.3.1":
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.1.tgz#422a4175a76ae60dd9d17946eec3584cb636352f"
|
||||
integrity sha512-Ymi8O8T15HYQdOUWUtTI6ldN0neHP85FC+Qz32xTcZ7iJXtem/x8ITev0o1e9e5rkqj4lONZfTRLvkmin1+tKg==
|
||||
|
||||
"@tailwindcss/oxide-linux-x64-musl@4.3.0":
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.0.tgz#fb2da97c67b218e5c7c723cb32782d55d7e4a5d5"
|
||||
integrity sha512-Z0IADbDo8bh6I7h2IQMx601AdXBLfFpEdUotft86evd/8ZPflZe9COPO8Q1vw+pfLWIUo9zN/JGZvwuAJqduqg==
|
||||
"@tailwindcss/oxide-linux-x64-musl@4.3.1":
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.1.tgz#f4c714a653a0e742955d2af2c53d0064b4c500d1"
|
||||
integrity sha512-M+P/91qJ6uILLw4k2G93GMDRAXj61SMvFQYt39AqvUqYgExXpLL5aepfns7sj4HiAQeolirQF9E0lzRvdf4zPQ==
|
||||
|
||||
"@tailwindcss/oxide-wasm32-wasi@4.3.0":
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.0.tgz#3f6538e511066d67d8683863dcaeeb16c22de849"
|
||||
integrity sha512-HNZGOUxEmElksYR7S6sC5jTeNGpobAsy9u7Gu0AskJ8/20FR9GqebUyB+HBcU/ax6BHuiuJi+Oda4B+YX6H1yA==
|
||||
"@tailwindcss/oxide-wasm32-wasi@4.3.1":
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.1.tgz#32172ca8b2427b9c2bb09c97756960185b7d4fc0"
|
||||
integrity sha512-zsM8uOeqvVGHsAXsJxsT28ttosFahLJKCLOTUBqRAtKnVgGSRitds9T432QiT8b77Yga7JIBkulIRRlJPtYhRA==
|
||||
dependencies:
|
||||
"@emnapi/core" "^1.10.0"
|
||||
"@emnapi/runtime" "^1.10.0"
|
||||
"@emnapi/wasi-threads" "^1.2.1"
|
||||
"@napi-rs/wasm-runtime" "^1.1.4"
|
||||
"@tybys/wasm-util" "^0.10.1"
|
||||
"@tybys/wasm-util" "^0.10.2"
|
||||
tslib "^2.8.1"
|
||||
|
||||
"@tailwindcss/oxide-win32-arm64-msvc@4.3.0":
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.0.tgz#ec45fba773c76759338c05d4fe5cf42c4eea2e4e"
|
||||
integrity sha512-Pe+RPVTi1T+qymuuRpcdvwSVZjnll/f7n8gBxMMh3xLTctMDKqpdfGimbMyioqtLhUYZxdJ9wGNhV7MKHvgZsQ==
|
||||
"@tailwindcss/oxide-win32-arm64-msvc@4.3.1":
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.1.tgz#07a11b6eb1f578d012460e6ad6f2352a28d32514"
|
||||
integrity sha512-aiNvSq9BsVk8V513lDKlrCFAgf8qBMPZTpgEhInL+NwQqs97mYmupVMrPrgBBSL8Pv/0zXu9MrMF9rMun1ZeNg==
|
||||
|
||||
"@tailwindcss/oxide-win32-x64-msvc@4.3.0":
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.0.tgz#58cdd6e06adbe2e3160274edfcd0b0b43e17fee4"
|
||||
integrity sha512-Mvrf2kXW/yeW/OTezZlCGOirXRcUuLIBx/5Y12BaPM7wJoryG6dfS/NJL8aBPqtTEx/Vm4T4vKzFUcKDT+TKUA==
|
||||
"@tailwindcss/oxide-win32-x64-msvc@4.3.1":
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.1.tgz#60c6095d97b141c02de36bb52a16c358d9bdaa98"
|
||||
integrity sha512-xDEyu1rg290472FEGaKHnzyDyh5QH+AlWvsU5hMoMtPpzmKlRI0jaYKCgSHDYtaQWZOYbMaduSyCwFwY4n1HmA==
|
||||
|
||||
"@tailwindcss/oxide@4.3.0":
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide/-/oxide-4.3.0.tgz#cc1c61e88f62c0e9f56062de3e7873acaa2159d4"
|
||||
integrity sha512-F7HZGBeN9I0/AuuJS5PwcD8xayx5ri5GhjYUDBEVYUkexyA/giwbDNjRVrxSezE3T250OU2K/wp/ltWx3UOefg==
|
||||
"@tailwindcss/oxide@4.3.1":
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/oxide/-/oxide-4.3.1.tgz#6fdd28b3abf785e2c2cac31f52c4755875826828"
|
||||
integrity sha512-yVPyo8RNkabVr3O2EhHEE0Rewu7YKzc1DhIqfL46LKveFrmu9XbDazNOJY7/GRuvw1h6u3utWnR29H/p5JPlgA==
|
||||
optionalDependencies:
|
||||
"@tailwindcss/oxide-android-arm64" "4.3.0"
|
||||
"@tailwindcss/oxide-darwin-arm64" "4.3.0"
|
||||
"@tailwindcss/oxide-darwin-x64" "4.3.0"
|
||||
"@tailwindcss/oxide-freebsd-x64" "4.3.0"
|
||||
"@tailwindcss/oxide-linux-arm-gnueabihf" "4.3.0"
|
||||
"@tailwindcss/oxide-linux-arm64-gnu" "4.3.0"
|
||||
"@tailwindcss/oxide-linux-arm64-musl" "4.3.0"
|
||||
"@tailwindcss/oxide-linux-x64-gnu" "4.3.0"
|
||||
"@tailwindcss/oxide-linux-x64-musl" "4.3.0"
|
||||
"@tailwindcss/oxide-wasm32-wasi" "4.3.0"
|
||||
"@tailwindcss/oxide-win32-arm64-msvc" "4.3.0"
|
||||
"@tailwindcss/oxide-win32-x64-msvc" "4.3.0"
|
||||
"@tailwindcss/oxide-android-arm64" "4.3.1"
|
||||
"@tailwindcss/oxide-darwin-arm64" "4.3.1"
|
||||
"@tailwindcss/oxide-darwin-x64" "4.3.1"
|
||||
"@tailwindcss/oxide-freebsd-x64" "4.3.1"
|
||||
"@tailwindcss/oxide-linux-arm-gnueabihf" "4.3.1"
|
||||
"@tailwindcss/oxide-linux-arm64-gnu" "4.3.1"
|
||||
"@tailwindcss/oxide-linux-arm64-musl" "4.3.1"
|
||||
"@tailwindcss/oxide-linux-x64-gnu" "4.3.1"
|
||||
"@tailwindcss/oxide-linux-x64-musl" "4.3.1"
|
||||
"@tailwindcss/oxide-wasm32-wasi" "4.3.1"
|
||||
"@tailwindcss/oxide-win32-arm64-msvc" "4.3.1"
|
||||
"@tailwindcss/oxide-win32-x64-msvc" "4.3.1"
|
||||
|
||||
"@tailwindcss/vite@^4.1.18":
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/vite/-/vite-4.3.0.tgz#b2bbc069a4c700ea7aef5ee30416d84b7652e136"
|
||||
integrity sha512-t6J3OrB5Fc0ExuhohouH0fWUGMYL6PTLhW+E7zIk/pdbnJARZDCwjBznFnkh5ynRnIRSI4YjtTH0t6USjJISrw==
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/vite/-/vite-4.3.1.tgz#636f812c870061bd9255ca24d756216f4df031d9"
|
||||
integrity sha512-hItDHuIIlEV61R+faXu66s1K36aTurO/Qw0e45Vskz57gXl9pWOT6eg3zmcEui6CZXddbN7zd41bwmvag4JGwQ==
|
||||
dependencies:
|
||||
"@tailwindcss/node" "4.3.0"
|
||||
"@tailwindcss/oxide" "4.3.0"
|
||||
tailwindcss "4.3.0"
|
||||
"@tailwindcss/node" "4.3.1"
|
||||
"@tailwindcss/oxide" "4.3.1"
|
||||
tailwindcss "4.3.1"
|
||||
|
||||
"@tybys/wasm-util@^0.10.1":
|
||||
"@tybys/wasm-util@^0.10.2":
|
||||
version "0.10.2"
|
||||
resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.2.tgz#12b3a1b33db1f9cad4ddff1f604ab7dd00bf464e"
|
||||
integrity sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==
|
||||
@@ -569,20 +591,20 @@ base64-js@^1.3.1:
|
||||
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
|
||||
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
|
||||
|
||||
baseline-browser-mapping@^2.10.12:
|
||||
version "2.10.32"
|
||||
resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.32.tgz#b6b553a4285fdd606327a617de36a5351e3aaa64"
|
||||
integrity sha512-wbPvpyjJPC0zdfdKXxqEL3Ea+bOMD/87X4lftiJkkaBiuG6ALQy1SLmEd7BSmVCuwCQsBrCamgBoLyfFDD1EPg==
|
||||
baseline-browser-mapping@^2.10.38:
|
||||
version "2.10.38"
|
||||
resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.38.tgz#c84d093c4bf7325c5053c279d90f153c66526042"
|
||||
integrity sha512-31/02mVB4yuQU6adKk5SlY6m+mxDwUq5KZkyYgnLrrKl7TEm1+3PyDtDBz2kOv/wxZz41GHsvV1A/u6RmiyBvw==
|
||||
|
||||
browserslist@^4.28.2:
|
||||
version "4.28.2"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.2.tgz#f50b65362ef48974ca9f50b3680566d786b811d2"
|
||||
integrity sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==
|
||||
version "4.28.4"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.4.tgz#dd8b8167a32845ff5f8cd6ce13f5abba16cd04c9"
|
||||
integrity sha512-MTc8i/x9jBQd1iMw2CFGS+rwMa07eYjLR0CCTLDACl9xhxy+nIs3KeML/biicXtk9JrZ6dnnTatmc7ErPXIxqw==
|
||||
dependencies:
|
||||
baseline-browser-mapping "^2.10.12"
|
||||
caniuse-lite "^1.0.30001782"
|
||||
electron-to-chromium "^1.5.328"
|
||||
node-releases "^2.0.36"
|
||||
baseline-browser-mapping "^2.10.38"
|
||||
caniuse-lite "^1.0.30001799"
|
||||
electron-to-chromium "^1.5.376"
|
||||
node-releases "^2.0.48"
|
||||
update-browserslist-db "^1.2.3"
|
||||
|
||||
buffer@^6.0.3:
|
||||
@@ -593,10 +615,10 @@ buffer@^6.0.3:
|
||||
base64-js "^1.3.1"
|
||||
ieee754 "^1.2.1"
|
||||
|
||||
caniuse-lite@^1.0.30001782, caniuse-lite@^1.0.30001787:
|
||||
version "1.0.30001793"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001793.tgz#238887ddf5fcfc8c36d872394d0a78a517312a72"
|
||||
integrity sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==
|
||||
caniuse-lite@^1.0.30001787, caniuse-lite@^1.0.30001799:
|
||||
version "1.0.30001799"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001799.tgz#5c909138c27f1a61219d3e092071c1cc7d32dc55"
|
||||
integrity sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==
|
||||
|
||||
ccount@^2.0.0:
|
||||
version "2.0.1"
|
||||
@@ -645,9 +667,9 @@ comma-separated-tokens@^2.0.0:
|
||||
integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==
|
||||
|
||||
concurrently@^10.0.0:
|
||||
version "10.0.0"
|
||||
resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-10.0.0.tgz#ceb3782d36a620ae7c05ff8085076c0d96323479"
|
||||
integrity sha512-DRrk10z3sVPpguNe8od2cGNqZGqbT15rwAnxD4dG3b78mdNNb/gJyr8T834Oj518WcBmTktrt4FhdwZn09ZWSg==
|
||||
version "10.0.3"
|
||||
resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-10.0.3.tgz#0ae4bf732e958b1a607b47896dcaa836b72514e8"
|
||||
integrity sha512-hc3LH4UaKWd/bbyDK/IGVa4RB6PtQ3CUYwtrkzqHn+wIG3Hr5fhpRlk0L/gCa8ZE1L/Ufj50Zho69cI5w8SQBA==
|
||||
dependencies:
|
||||
chalk "5.6.2"
|
||||
rxjs "7.8.2"
|
||||
@@ -690,20 +712,20 @@ dotenv@^16.0.3:
|
||||
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.6.1.tgz#773f0e69527a8315c7285d5ee73c4459d20a8020"
|
||||
integrity sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==
|
||||
|
||||
electron-to-chromium@^1.5.328:
|
||||
version "1.5.361"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.361.tgz#b993bc7b34ea83f348aa1787a608ecf12e39b909"
|
||||
integrity sha512-Q6Hts7N9FnJc5LeGRINFvLhCI9xZmNtTDe5ZbcVezQz7cU4a8Aua3GH1b8J2XY8Al9PF+OCwYqhgsOOheMdvkA==
|
||||
electron-to-chromium@^1.5.376:
|
||||
version "1.5.376"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.376.tgz#16a9d4b72cb16c416aa73a879d92b047b96797ac"
|
||||
integrity sha512-cUVA7/RvbFTEuw/i3obUwDTRIXojaxkResf+ibByPFxjc6XK3VNtcQXV0NSbAlJ0FMjcJGgftVVB4Qo184EXvA==
|
||||
|
||||
emoji-regex@^10.3.0:
|
||||
version "10.6.0"
|
||||
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.6.0.tgz#bf3d6e8f7f8fd22a65d9703475bc0147357a6b0d"
|
||||
integrity sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==
|
||||
|
||||
enhanced-resolve@^5.21.0:
|
||||
version "5.22.0"
|
||||
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.22.0.tgz#43c5caad657c6fce58fc6142e5ca6fa8528ed460"
|
||||
integrity sha512-xYcDWrpELkFzz9SpZ3PlI6Eu6eD93Yf0WLDRxikGhWJ3MAir2SNZTIVCVZqZ/NUyx8AdMc2gT9C0gPiw18kG+A==
|
||||
enhanced-resolve@5.21.6:
|
||||
version "5.21.6"
|
||||
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.21.6.tgz#aa207b43cf658e6ab3ba06896edc00c13c3127c6"
|
||||
integrity sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==
|
||||
dependencies:
|
||||
graceful-fs "^4.2.4"
|
||||
tapable "^2.3.3"
|
||||
@@ -782,15 +804,15 @@ ieee754@^1.2.1:
|
||||
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
|
||||
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
|
||||
|
||||
jiti@^2.6.1:
|
||||
jiti@^2.7.0:
|
||||
version "2.7.0"
|
||||
resolved "https://registry.yarnpkg.com/jiti/-/jiti-2.7.0.tgz#974228f2f4ca2bc21885a1797b45fea68e950c64"
|
||||
integrity sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==
|
||||
|
||||
laravel-echo@^2.3.0:
|
||||
version "2.3.4"
|
||||
resolved "https://registry.yarnpkg.com/laravel-echo/-/laravel-echo-2.3.4.tgz#c4ea9b3be0000a66b3453cfa8aa496e0f8f40c22"
|
||||
integrity sha512-rpALCIK1uw2SrttcK9P5JzItt5I85RcfXQKUNnkcorzhtKeXi5GS0PVFFBH8ppNo8wnbdBKuD1EtIHgTbXo9FQ==
|
||||
version "2.3.7"
|
||||
resolved "https://registry.yarnpkg.com/laravel-echo/-/laravel-echo-2.3.7.tgz#ab9a2b0ca9e8a1bfc2f191c6c6091fba62942ac7"
|
||||
integrity sha512-6NoPtOk16PuaykVgcV1MV5665VPtrbyvacBD6AJ8NJdRjTwrOwKrgOYHgq4bz5E1zUbbVi2UJfMN7P7D/yceyQ==
|
||||
|
||||
laravel-vite-plugin@^3.0.0:
|
||||
version "3.1.0"
|
||||
@@ -952,19 +974,19 @@ ms@^2.1.3:
|
||||
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
|
||||
|
||||
nanoid@^3.3.12:
|
||||
version "3.3.12"
|
||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.12.tgz#ab3d912e217a6d0a514f00a72a16543a28982c05"
|
||||
integrity sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==
|
||||
version "3.3.15"
|
||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.15.tgz#36c490fad8c6e86c824c940dfdde999b69ed4316"
|
||||
integrity sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==
|
||||
|
||||
node-releases@^2.0.36:
|
||||
version "2.0.46"
|
||||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.46.tgz#d188a129a83f5e03a101aacb58f260f2ee8faaa1"
|
||||
integrity sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==
|
||||
node-releases@^2.0.48:
|
||||
version "2.0.48"
|
||||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.48.tgz#4da73d040ada751fc9959d993f27de48792e3b7d"
|
||||
integrity sha512-1uz8041X6LoI6ZSdZacM9lVY28vuzDlSKitnpbSNK0RfKoIJkX29NBPVEFXhnuSuEOA9Ww0xnPJ+ILWbGAv8DA==
|
||||
|
||||
nostr-tools@^2.23.0:
|
||||
version "2.23.5"
|
||||
resolved "https://registry.yarnpkg.com/nostr-tools/-/nostr-tools-2.23.5.tgz#46fa68a35cf6e918c4f59208a2ed7585c72a68a0"
|
||||
integrity sha512-Fa7ZlUdjfUW1P4E7H3yBexhOHYi18XNyvd2n7eNHkYR085xADX6Y8V8Vm7nT/XQajaFOBrptXmVIGkJ2E4vfVw==
|
||||
version "2.23.7"
|
||||
resolved "https://registry.yarnpkg.com/nostr-tools/-/nostr-tools-2.23.7.tgz#076e1cc43ef7bb84d69e9288b4e141037c23b6ec"
|
||||
integrity sha512-CEaxvss+HOApABVYZyAH56JbwlPfD1FtRc26fbk41qqVY6njVJKBCgNKZwgzpkN5nlqzUWNKXZZkSP/WIWZg1Q==
|
||||
dependencies:
|
||||
"@noble/ciphers" "2.1.1"
|
||||
"@noble/curves" "2.0.1"
|
||||
@@ -1033,9 +1055,9 @@ postcss@^8.4.41, postcss@^8.5.15:
|
||||
source-map-js "^1.2.1"
|
||||
|
||||
property-information@^7.0.0:
|
||||
version "7.1.0"
|
||||
resolved "https://registry.yarnpkg.com/property-information/-/property-information-7.1.0.tgz#b622e8646e02b580205415586b40804d3e8bfd5d"
|
||||
integrity sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==
|
||||
version "7.2.0"
|
||||
resolved "https://registry.yarnpkg.com/property-information/-/property-information-7.2.0.tgz#0809b34264e995c0bfcd3227028a1e35210af80a"
|
||||
integrity sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==
|
||||
|
||||
pusher-js@^8.4.0:
|
||||
version "8.5.0"
|
||||
@@ -1063,29 +1085,29 @@ regex@^6.1.0:
|
||||
dependencies:
|
||||
regex-utilities "^2.3.0"
|
||||
|
||||
rolldown@1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.0.2.tgz#ea2c786c5f063d08fd22b49e51997f15ec532bbd"
|
||||
integrity sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==
|
||||
rolldown@1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.0.3.tgz#db88a3008fb0e28230a00423727ce75ba32121ac"
|
||||
integrity sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==
|
||||
dependencies:
|
||||
"@oxc-project/types" "=0.132.0"
|
||||
"@oxc-project/types" "=0.133.0"
|
||||
"@rolldown/pluginutils" "^1.0.0"
|
||||
optionalDependencies:
|
||||
"@rolldown/binding-android-arm64" "1.0.2"
|
||||
"@rolldown/binding-darwin-arm64" "1.0.2"
|
||||
"@rolldown/binding-darwin-x64" "1.0.2"
|
||||
"@rolldown/binding-freebsd-x64" "1.0.2"
|
||||
"@rolldown/binding-linux-arm-gnueabihf" "1.0.2"
|
||||
"@rolldown/binding-linux-arm64-gnu" "1.0.2"
|
||||
"@rolldown/binding-linux-arm64-musl" "1.0.2"
|
||||
"@rolldown/binding-linux-ppc64-gnu" "1.0.2"
|
||||
"@rolldown/binding-linux-s390x-gnu" "1.0.2"
|
||||
"@rolldown/binding-linux-x64-gnu" "1.0.2"
|
||||
"@rolldown/binding-linux-x64-musl" "1.0.2"
|
||||
"@rolldown/binding-openharmony-arm64" "1.0.2"
|
||||
"@rolldown/binding-wasm32-wasi" "1.0.2"
|
||||
"@rolldown/binding-win32-arm64-msvc" "1.0.2"
|
||||
"@rolldown/binding-win32-x64-msvc" "1.0.2"
|
||||
"@rolldown/binding-android-arm64" "1.0.3"
|
||||
"@rolldown/binding-darwin-arm64" "1.0.3"
|
||||
"@rolldown/binding-darwin-x64" "1.0.3"
|
||||
"@rolldown/binding-freebsd-x64" "1.0.3"
|
||||
"@rolldown/binding-linux-arm-gnueabihf" "1.0.3"
|
||||
"@rolldown/binding-linux-arm64-gnu" "1.0.3"
|
||||
"@rolldown/binding-linux-arm64-musl" "1.0.3"
|
||||
"@rolldown/binding-linux-ppc64-gnu" "1.0.3"
|
||||
"@rolldown/binding-linux-s390x-gnu" "1.0.3"
|
||||
"@rolldown/binding-linux-x64-gnu" "1.0.3"
|
||||
"@rolldown/binding-linux-x64-musl" "1.0.3"
|
||||
"@rolldown/binding-openharmony-arm64" "1.0.3"
|
||||
"@rolldown/binding-wasm32-wasi" "1.0.3"
|
||||
"@rolldown/binding-win32-arm64-msvc" "1.0.3"
|
||||
"@rolldown/binding-win32-x64-msvc" "1.0.3"
|
||||
|
||||
rxjs@7.8.2:
|
||||
version "7.8.2"
|
||||
@@ -1114,16 +1136,16 @@ shiki@^3.13.0:
|
||||
"@types/hast" "^3.0.4"
|
||||
|
||||
shiki@^4.0.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/shiki/-/shiki-4.1.0.tgz#4cc1cf75f350b41419708cb03bcf2c7b8ccb4550"
|
||||
integrity sha512-l/ABZPUR5v70jI10EzqfMS/I96vjSGv2y0ihUV+WYFzv0EfvW4s54m0Lg8wCrrL+2IkwBzFTuxkZjPf8b2NX9Q==
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/shiki/-/shiki-4.2.0.tgz#7ae3c17322f71255e67df08e754ad22a57adaa62"
|
||||
integrity sha512-hjNax6o/ylDy9lefQEaSDtzaT3iVNtZ3WmpQnbuQNoG4xvnSKf2kSKbihZVO4JRG1TTMejs7CmNRYlWgAL66pQ==
|
||||
dependencies:
|
||||
"@shikijs/core" "4.1.0"
|
||||
"@shikijs/engine-javascript" "4.1.0"
|
||||
"@shikijs/engine-oniguruma" "4.1.0"
|
||||
"@shikijs/langs" "4.1.0"
|
||||
"@shikijs/themes" "4.1.0"
|
||||
"@shikijs/types" "4.1.0"
|
||||
"@shikijs/core" "4.2.0"
|
||||
"@shikijs/engine-javascript" "4.2.0"
|
||||
"@shikijs/engine-oniguruma" "4.2.0"
|
||||
"@shikijs/langs" "4.2.0"
|
||||
"@shikijs/themes" "4.2.0"
|
||||
"@shikijs/types" "4.2.0"
|
||||
"@shikijs/vscode-textmate" "^10.0.2"
|
||||
"@types/hast" "^3.0.4"
|
||||
|
||||
@@ -1181,20 +1203,20 @@ supports-color@10.2.2:
|
||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-10.2.2.tgz#466c2978cc5cd0052d542a0b576461c2b802ebb4"
|
||||
integrity sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==
|
||||
|
||||
tailwindcss@4.3.0, tailwindcss@^4.1.18:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-4.3.0.tgz#0a874e044a859cf6de413f3a59e76a9bedf05264"
|
||||
integrity sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q==
|
||||
tailwindcss@4.3.1, tailwindcss@^4.1.18:
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-4.3.1.tgz#78ee06f6186bc8fb9603f8083eb703dc7dd96a10"
|
||||
integrity sha512-hk+TB1m+K8CYNrP6rjQaq/Y+4Zylwpa87mLYBKCunwnnQ9p+fHb7kmSfGqyEJoxF/O6CDyABWVFEafNSYKll+Q==
|
||||
|
||||
tapable@^2.3.3:
|
||||
version "2.3.3"
|
||||
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.3.tgz#5da7c9992c46038221267985ab28421a8879f160"
|
||||
integrity sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==
|
||||
|
||||
tinyglobby@^0.2.12, tinyglobby@^0.2.16:
|
||||
version "0.2.16"
|
||||
resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.16.tgz#1c3b7eb953fce42b226bc5a1ee06428281aff3d6"
|
||||
integrity sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==
|
||||
tinyglobby@^0.2.12, tinyglobby@^0.2.17:
|
||||
version "0.2.17"
|
||||
resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.17.tgz#562a9a6c9eb2b3b123d39719f9af5bb44fcd7631"
|
||||
integrity sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==
|
||||
dependencies:
|
||||
fdir "^6.5.0"
|
||||
picomatch "^4.0.4"
|
||||
@@ -1300,15 +1322,15 @@ vite-plugin-full-reload@^1.1.0:
|
||||
picomatch "^2.3.1"
|
||||
|
||||
vite@^8.0.0:
|
||||
version "8.0.14"
|
||||
resolved "https://registry.yarnpkg.com/vite/-/vite-8.0.14.tgz#da5d8d1f63dbd106385cbe9c211acbc7a7a5b192"
|
||||
integrity sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw==
|
||||
version "8.0.16"
|
||||
resolved "https://registry.yarnpkg.com/vite/-/vite-8.0.16.tgz#ae073866c06563d6634a90169a496e11bd84f1a6"
|
||||
integrity sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==
|
||||
dependencies:
|
||||
lightningcss "^1.32.0"
|
||||
picomatch "^4.0.4"
|
||||
postcss "^8.5.15"
|
||||
rolldown "1.0.2"
|
||||
tinyglobby "^0.2.16"
|
||||
rolldown "1.0.3"
|
||||
tinyglobby "^0.2.17"
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.3"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user