diff --git a/README.md b/README.md index 485f0df0..70a344d2 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,21 @@ -# Agora +# Eranos Power to the people. -Agora is a Nostr client focused on community ownership, expressive identity, and censorship resistance. This repository (`agora-3`) is the Agora-branded app built from the Ditto codebase. +Eranos is a Nostr client focused on community ownership, expressive identity, and censorship resistance. This repository is the Eranos-branded app, a Grin-only fork of Agora (itself built from the Ditto codebase). All Bitcoin and Lightning payment rails have been removed; Grin payments land in a later phase. -**[agora.spot](https://agora.spot)** | **[Source](https://gitlab.com/soapbox-pub/agora-3)** +**[eranos.fund](https://eranos.fund)** | **Upstream: [Agora](https://gitlab.com/soapbox-pub/agora-3)** ## What This Repo Is -- Agora product identity (name, theme, assets, native IDs) +- Eranos product identity (name, theme, assets, native IDs) - Ditto-derived implementation with broad Nostr feature coverage -- Configurable deployment defaults via `agora.json` +- Configurable deployment defaults via `eranos.json` ## Features - **Community-first social client**: notes, articles, comments, reposts, reactions, and rich event rendering - **Theming system**: built-in presets + custom color/font/background themes that can be shared as events -- **Lightning support**: zaps with Nostr Wallet Connect and WebLN - **Private messaging**: NIP-04 and NIP-17 direct messages - **Mobile app shell**: Capacitor-powered Android/iOS wrappers - **Self-hostable**: static web build + configurable relay and upload infrastructure @@ -31,8 +30,8 @@ Agora is a Nostr client focused on community ownership, expressive identity, and ### Development ```sh -git clone https://gitlab.com/soapbox-pub/agora-3.git -cd agora-3 +git clone +cd eranos npm install npm run dev ``` @@ -44,8 +43,8 @@ Development server: `http://localhost:8080` Use Docker Compose when you want the nginx reverse-proxy stack (necessary if you want decryptable media in messages - kind 15s of NIP 17): ```sh -git clone https://gitlab.com/soapbox-pub/agora-3.git -cd agora-3 +git clone +cd eranos cp .env.example .env docker compose up --build ``` @@ -87,7 +86,7 @@ This runs type-checking, linting, unit tests, and production build checks. ## Configuration -Build-time config is read from `agora.json` (gitignored by default so each deployment can provide its own values). +Build-time config is read from `eranos.json` (gitignored by default so each deployment can provide its own values). ```jsonc { @@ -109,7 +108,7 @@ Build-time config is read from `agora.json` (gitignored by default so each deplo Configuration priority (highest first): 1. User settings (local storage) -2. Build config (`agora.json`) +2. Build config (`eranos.json`) 3. Hardcoded app defaults Use a custom config path: @@ -120,7 +119,7 @@ CONFIG_FILE=./my-config.json npm run build ## Deployment -Agora builds to static files and can be deployed to any static host. +Eranos builds to static files and can be deployed to any static host. - GitLab/GitHub Pages - Netlify/Vercel @@ -155,3 +154,5 @@ Read [CONTRIBUTING.md](CONTRIBUTING.md) before opening a merge request. ## License [AGPL-3.0](LICENSE) + +🤖 Built with AI pair-programming assistance (Claude) diff --git a/android/app/build.gradle b/android/app/build.gradle index a9ed11a4..17585c3d 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -7,10 +7,10 @@ if (keystorePropertiesFile.exists()) { } android { - namespace = "spot.agora.app" + namespace = "fund.eranos.app" compileSdk = rootProject.ext.compileSdkVersion defaultConfig { - applicationId "spot.agora.app" + applicationId "fund.eranos.app" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro index b9bbf2f0..5a608fbd 100644 --- a/android/app/proguard-rules.pro +++ b/android/app/proguard-rules.pro @@ -7,7 +7,7 @@ # Keep Capacitor classes (WebView JS bridge) -keep class com.getcapacitor.** { *; } --keep class spot.agora.app.** { *; } +-keep class fund.eranos.app.** { *; } # Keep WebView JS interfaces -keepclassmembers class * { diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index bf97aae4..7d09b49f 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -24,12 +24,12 @@ - + - + diff --git a/android/app/src/main/java/spot/agora/app/DittoNotificationPlugin.java b/android/app/src/main/java/fund/eranos/app/DittoNotificationPlugin.java similarity index 99% rename from android/app/src/main/java/spot/agora/app/DittoNotificationPlugin.java rename to android/app/src/main/java/fund/eranos/app/DittoNotificationPlugin.java index f7ef0f8b..132adb6e 100644 --- a/android/app/src/main/java/spot/agora/app/DittoNotificationPlugin.java +++ b/android/app/src/main/java/fund/eranos/app/DittoNotificationPlugin.java @@ -1,4 +1,4 @@ -package spot.agora.app; +package fund.eranos.app; import android.app.ForegroundServiceStartNotAllowedException; import android.content.Context; diff --git a/android/app/src/main/java/spot/agora/app/MainActivity.java b/android/app/src/main/java/fund/eranos/app/MainActivity.java similarity index 98% rename from android/app/src/main/java/spot/agora/app/MainActivity.java rename to android/app/src/main/java/fund/eranos/app/MainActivity.java index 8af7135d..ecf767e3 100644 --- a/android/app/src/main/java/spot/agora/app/MainActivity.java +++ b/android/app/src/main/java/fund/eranos/app/MainActivity.java @@ -1,4 +1,4 @@ -package spot.agora.app; +package fund.eranos.app; import android.app.ForegroundServiceStartNotAllowedException; import android.content.Context; @@ -106,7 +106,7 @@ public class MainActivity extends BridgeActivity { private void handleNotificationIntent(Intent intent) { if (intent == null) return; Uri data = intent.getData(); - if (data != null && "agora.spot".equals(data.getHost())) { + if (data != null && "eranos.fund".equals(data.getHost())) { String path = data.getPath(); if (path != null && !path.isEmpty()) { // Wait for WebView to be ready, then navigate diff --git a/android/app/src/main/java/spot/agora/app/NostrPoller.java b/android/app/src/main/java/fund/eranos/app/NostrPoller.java similarity index 99% rename from android/app/src/main/java/spot/agora/app/NostrPoller.java rename to android/app/src/main/java/fund/eranos/app/NostrPoller.java index a74d24cf..af64ba25 100644 --- a/android/app/src/main/java/spot/agora/app/NostrPoller.java +++ b/android/app/src/main/java/fund/eranos/app/NostrPoller.java @@ -1,4 +1,4 @@ -package spot.agora.app; +package fund.eranos.app; import android.app.NotificationChannel; import android.app.NotificationManager; @@ -337,7 +337,7 @@ public class NostrPoller { if (manager == null) return; Intent intent = new Intent(context, MainActivity.class); - intent.setData(Uri.parse("https://agora.spot/notifications")); + intent.setData(Uri.parse("https://eranos.fund/notifications")); intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent pendingIntent = PendingIntent.getActivity( context, id, intent, diff --git a/android/app/src/main/java/spot/agora/app/NotificationRelayService.java b/android/app/src/main/java/fund/eranos/app/NotificationRelayService.java similarity index 99% rename from android/app/src/main/java/spot/agora/app/NotificationRelayService.java rename to android/app/src/main/java/fund/eranos/app/NotificationRelayService.java index b12c9fc8..5cb97d68 100644 --- a/android/app/src/main/java/spot/agora/app/NotificationRelayService.java +++ b/android/app/src/main/java/fund/eranos/app/NotificationRelayService.java @@ -1,4 +1,4 @@ -package spot.agora.app; +package fund.eranos.app; import android.app.AlarmManager; import android.app.ForegroundServiceStartNotAllowedException; @@ -83,7 +83,7 @@ public class NotificationRelayService extends Service { // + REQ + up to 5 events + EOSE + metadata fetch + disconnect. private static final long FETCH_WAKELOCK_TIMEOUT_MS = 30_000; - private static final String ACTION_FETCH = "spot.agora.app.ACTION_FETCH"; + private static final String ACTION_FETCH = "fund.eranos.app.ACTION_FETCH"; // Backoff bounds for relay connect failures (separate from alarm interval). private static final long INITIAL_BACKOFF_MS = 1_000; diff --git a/android/app/src/main/java/spot/agora/app/TorController.java b/android/app/src/main/java/fund/eranos/app/TorController.java similarity index 99% rename from android/app/src/main/java/spot/agora/app/TorController.java rename to android/app/src/main/java/fund/eranos/app/TorController.java index c20d452e..78400775 100644 --- a/android/app/src/main/java/spot/agora/app/TorController.java +++ b/android/app/src/main/java/fund/eranos/app/TorController.java @@ -1,4 +1,4 @@ -package spot.agora.app; +package fund.eranos.app; import android.content.Context; import android.content.SharedPreferences; diff --git a/android/app/src/main/java/spot/agora/app/TorPlugin.java b/android/app/src/main/java/fund/eranos/app/TorPlugin.java similarity index 99% rename from android/app/src/main/java/spot/agora/app/TorPlugin.java rename to android/app/src/main/java/fund/eranos/app/TorPlugin.java index 9ed57f40..f62689cd 100644 --- a/android/app/src/main/java/spot/agora/app/TorPlugin.java +++ b/android/app/src/main/java/fund/eranos/app/TorPlugin.java @@ -1,4 +1,4 @@ -package spot.agora.app; +package fund.eranos.app; import com.getcapacitor.JSObject; import com.getcapacitor.Plugin; diff --git a/android/app/src/main/res/drawable/splash_icon_vector.xml b/android/app/src/main/res/drawable/splash_icon_vector.xml index 428c618d..e8c3a9f7 100644 --- a/android/app/src/main/res/drawable/splash_icon_vector.xml +++ b/android/app/src/main/res/drawable/splash_icon_vector.xml @@ -5,7 +5,7 @@ android:viewportHeight="1200"> - + - + - - + + - + - + @@ -29,7 +29,7 @@ - + diff --git a/ios/App/App.xcodeproj/project.pbxproj b/ios/App/App.xcodeproj/project.pbxproj index e4cfb835..d161d1c8 100644 --- a/ios/App/App.xcodeproj/project.pbxproj +++ b/ios/App/App.xcodeproj/project.pbxproj @@ -325,7 +325,7 @@ ); MARKETING_VERSION = 2.9.1; OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\""; - PRODUCT_BUNDLE_IDENTIFIER = spot.agora.app; + PRODUCT_BUNDLE_IDENTIFIER = fund.eranos.app; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_VERSION = 5.0; @@ -348,7 +348,7 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 2.9.1; - PRODUCT_BUNDLE_IDENTIFIER = spot.agora.app; + PRODUCT_BUNDLE_IDENTIFIER = fund.eranos.app; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = ""; SWIFT_VERSION = 5.0; diff --git a/ios/App/App/App.entitlements b/ios/App/App/App.entitlements index 592b40c8..21d78121 100644 --- a/ios/App/App/App.entitlements +++ b/ios/App/App/App.entitlements @@ -4,8 +4,8 @@ com.apple.developer.associated-domains - webcredentials:agora.spot - webcredentials:agora.spot?mode=developer + webcredentials:eranos.fund + webcredentials:eranos.fund?mode=developer diff --git a/ios/App/App/DittoNotificationPlugin.swift b/ios/App/App/DittoNotificationPlugin.swift index 2fc91d52..f322dbec 100644 --- a/ios/App/App/DittoNotificationPlugin.swift +++ b/ios/App/App/DittoNotificationPlugin.swift @@ -33,7 +33,7 @@ public class DittoNotificationPlugin: CAPPlugin, CAPBridgedPlugin { // MARK: - Constants - static let bgTaskIdentifier = "spot.agora.app.notification-refresh" + static let bgTaskIdentifier = "fund.eranos.app.notification-refresh" private static let prefsKey = "ditto_notification_config" // MARK: - Plugin Methods diff --git a/ios/App/App/Info.plist b/ios/App/App/Info.plist index 74c1120c..3cfdc1de 100644 --- a/ios/App/App/Info.plist +++ b/ios/App/App/Info.plist @@ -7,7 +7,7 @@ CFBundleDevelopmentRegion en CFBundleDisplayName - Agora + Eranos CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -48,11 +48,11 @@ UIViewControllerBasedStatusBarAppearance NSPhotoLibraryUsageDescription - Agora needs access to your photo library to upload images to your posts and profile. + Eranos needs access to your photo library to upload images to your posts and profile. NSCameraUsageDescription - Agora needs camera access to take photos and videos for your posts, and to scan QR codes when sending Bitcoin. + Eranos needs camera access to take photos and videos for your posts, and to scan QR codes. NSMicrophoneUsageDescription - Agora needs access to your microphone to record voice messages. + Eranos needs access to your microphone to record voice messages. ITSAppUsesNonExemptEncryption UIBackgroundModes @@ -61,7 +61,7 @@ BGTaskSchedulerPermittedIdentifiers - spot.agora.app.notification-refresh + fund.eranos.app.notification-refresh diff --git a/ios/fastlane/Appfile b/ios/fastlane/Appfile index c072fc46..2f6a1ca0 100644 --- a/ios/fastlane/Appfile +++ b/ios/fastlane/Appfile @@ -1,2 +1,2 @@ -app_identifier("spot.agora.app") +app_identifier("fund.eranos.app") team_id("GZLTTH5DLM") diff --git a/ios/fastlane/Fastfile b/ios/fastlane/Fastfile index 93be84ff..81fbb690 100644 --- a/ios/fastlane/Fastfile +++ b/ios/fastlane/Fastfile @@ -3,7 +3,7 @@ default_platform(:ios) platform :ios do # ─── Lanes ──────────────────────────────────────────────────────────── - desc "Build and sign the App Store IPA. Output at ../artifacts/Agora.ipa." + desc "Build and sign the App Store IPA. Output at ../artifacts/Eranos.ipa." lane :build_ipa do setup_lane_signing! build_release_ipa! @@ -19,7 +19,7 @@ platform :ios do submit_release_for_review!(ipa_path) end - desc "Build, sign, and submit Agora to the App Store for review (single-step convenience)." + desc "Build, sign, and submit Eranos to the App Store for review (single-step convenience)." lane :release do setup_lane_signing! build_release_ipa! @@ -83,7 +83,7 @@ platform :ios do configuration: "Release", export_method: "app-store", output_directory: "../artifacts", - output_name: "Agora.ipa", + output_name: "Eranos.ipa", clean: true, # Override the Xcode project's Automatic signing for this build only. # Match has already installed the AppStore cert + profile into the @@ -93,7 +93,7 @@ platform :ios do xcargs: [ "CODE_SIGN_STYLE=Manual", "CODE_SIGN_IDENTITY='Apple Distribution'", - "PROVISIONING_PROFILE_SPECIFIER='match AppStore spot.agora.app'", + "PROVISIONING_PROFILE_SPECIFIER='match AppStore fund.eranos.app'", "DEVELOPMENT_TEAM=GZLTTH5DLM", ].join(" "), export_options: { @@ -101,7 +101,7 @@ platform :ios do signingStyle: "manual", teamID: "GZLTTH5DLM", provisioningProfiles: { - "spot.agora.app" => "match AppStore spot.agora.app", + "fund.eranos.app" => "match AppStore fund.eranos.app", }, }, ) diff --git a/ios/fastlane/Matchfile b/ios/fastlane/Matchfile index e2805416..58a3b29b 100644 --- a/ios/fastlane/Matchfile +++ b/ios/fastlane/Matchfile @@ -1,5 +1,5 @@ git_url("https://gitlab.com/soapbox-pub/certificates.git") storage_mode("git") type("appstore") -app_identifier(["spot.agora.app"]) +app_identifier(["fund.eranos.app"]) team_id("GZLTTH5DLM") diff --git a/package-lock.json b/package-lock.json index f71ba94b..aa39e433 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,14 +1,13 @@ { - "name": "agora", - "version": "2.9.0", + "name": "eranos", + "version": "2.9.1", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "agora", - "version": "2.9.0", + "name": "eranos", + "version": "2.9.1", "dependencies": { - "@breeztech/breez-sdk-spark": "^0.10.0", "@capacitor/app": "^8.0.0", "@capacitor/barcode-scanner": "^3.0.2", "@capacitor/core": "^8.1.0", @@ -37,7 +36,6 @@ "@fontsource/pirata-one": "^5.2.8", "@fontsource/silkscreen": "^5.2.8", "@fontsource/special-elite": "^5.2.8", - "@getalby/sdk": "^5.1.1", "@hookform/resolvers": "^5.2.2", "@milkdown/core": "^7.20.0", "@milkdown/ctx": "^7.20.0", @@ -50,7 +48,7 @@ "@milkdown/prose": "^7.20.0", "@milkdown/react": "^7.20.0", "@milkdown/utils": "^7.20.0", - "@noble/curves": "^2.2.0", + "@noble/curves": "^1.2.0", "@noble/hashes": "^1.8.0", "@nostrify/nostrify": "^0.52.2", "@nostrify/react": "^0.6.2", @@ -80,9 +78,6 @@ "@radix-ui/react-toggle-group": "^1.1.0", "@radix-ui/react-tooltip": "^1.2.8", "@scure/base": "^1.1.1", - "@scure/bip32": "^2.2.0", - "@scure/bip39": "^1.6.0", - "@scure/btc-signer": "^2.2.0", "@sentry/react": "^10.42.0", "@tanstack/react-query": "^5.56.2", "@unhead/addons": "^2.1.13", @@ -142,7 +137,6 @@ "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.0.1", - "@webbtc/webln-types": "^3.0.0", "autoprefixer": "^10.4.20", "eslint": "^9.9.0", "eslint-plugin-react-hooks": "^5.1.0-rc.0", @@ -367,18 +361,6 @@ "node": ">=6.9.0" } }, - "node_modules/@breeztech/breez-sdk-spark": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@breeztech/breez-sdk-spark/-/breez-sdk-spark-0.10.0.tgz", - "integrity": "sha512-eBsh0oX2B8uGuWfCMmtH3SNXmSkED5du/CiWQKh1Ei1r0LsO6jlVnUmh94j7R5W4siIi7M6CC7ywll3FQ47rYQ==", - "license": "MIT", - "engines": { - "node": ">=22" - }, - "optionalDependencies": { - "better-sqlite3": "^12.2.0" - } - }, "node_modules/@capacitor/android": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-8.1.0.tgz", @@ -1487,36 +1469,6 @@ "url": "https://github.com/sponsors/ayuhito" } }, - "node_modules/@getalby/lightning-tools": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@getalby/lightning-tools/-/lightning-tools-5.2.0.tgz", - "integrity": "sha512-8kBvENBTMh541VjGKhw3I29+549/C02gLSh3AQaMfoMNSZaMxfQW+7dcMcc7vbFaCKEcEe18ST5bUveTRBuXCQ==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "lightning", - "url": "lightning:hello@getalby.com" - } - }, - "node_modules/@getalby/sdk": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@getalby/sdk/-/sdk-5.1.1.tgz", - "integrity": "sha512-t/kg2ljPx86qRYKqEVc5VYhDICFKtVPRlQKIz5cI/AqOLYVguLJz1AkQlDBaiOz2PW5FxoyGlLkTGmX7ONHH/Q==", - "license": "MIT", - "dependencies": { - "@getalby/lightning-tools": "^5.1.2", - "nostr-tools": "2.15.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "lightning", - "url": "lightning:hello@getalby.com" - } - }, "node_modules/@hookform/resolvers": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-5.2.2.tgz", @@ -2429,27 +2381,15 @@ } }, "node_modules/@noble/curves": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-2.2.0.tgz", - "integrity": "sha512-T/BoHgFXirb0ENSPBquzX0rcjXeM6Lo892a2jlYJkqk83LqZx0l1Of7DzlKJ6jkpvMrkHSnAcgb5JegL8SeIkQ==", + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz", + "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==", "license": "MIT", "dependencies": { - "@noble/hashes": "2.2.0" + "@noble/hashes": "1.8.0" }, "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/curves/node_modules/@noble/hashes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.2.0.tgz", - "integrity": "sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg==", - "license": "MIT", - "engines": { - "node": ">= 20.19.0" + "node": "^14.21.3 || >=16" }, "funding": { "url": "https://paulmillr.com/funding/" @@ -5336,99 +5276,6 @@ ], "license": "MIT" }, - "node_modules/@scure/bip32": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-2.2.0.tgz", - "integrity": "sha512-zFr7t2F+a9+5tB7QbarF2HQNYrgjCNaoLAupZdKkrFMYMozJf5zqH2WJCQibMzm1qQ0QogrxVGO3qXfQDYMaQg==", - "license": "MIT", - "dependencies": { - "@noble/curves": "2.2.0", - "@noble/hashes": "2.2.0", - "@scure/base": "2.2.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/bip32/node_modules/@noble/hashes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.2.0.tgz", - "integrity": "sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg==", - "license": "MIT", - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/bip32/node_modules/@scure/base": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-2.2.0.tgz", - "integrity": "sha512-b8XEupJibegiXV+tDUseI8oLQc8ei3d/4Jkb2RpbHh3MfE054ov3uIz2dhFkB3FI8iwYkEh0gGCApkrYggkPNg==", - "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/bip39": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz", - "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==", - "license": "MIT", - "dependencies": { - "@noble/hashes": "~1.8.0", - "@scure/base": "~1.2.5" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/bip39/node_modules/@scure/base": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz", - "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==", - "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/btc-signer": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@scure/btc-signer/-/btc-signer-2.2.0.tgz", - "integrity": "sha512-ZXZ08sZqSZKEcOuEQnxTF66ouHtl6+UA6U/QfQM06K9WiOlEkXF4LviZCaSgkdiFh9cyMt9+xdup7JtEv3p0fw==", - "license": "MIT", - "dependencies": { - "@noble/curves": "~2.2.0", - "@noble/hashes": "~2.2.0", - "@scure/base": "~2.2.0", - "micro-packed": "~0.9.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/btc-signer/node_modules/@noble/hashes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.2.0.tgz", - "integrity": "sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg==", - "license": "MIT", - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/btc-signer/node_modules/@scure/base": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-2.2.0.tgz", - "integrity": "sha512-b8XEupJibegiXV+tDUseI8oLQc8ei3d/4Jkb2RpbHh3MfE054ov3uIz2dhFkB3FI8iwYkEh0gGCApkrYggkPNg==", - "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/@sentry-internal/browser-utils": { "version": "10.42.0", "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-10.42.0.tgz", @@ -6609,17 +6456,6 @@ "integrity": "sha512-nBxuiuS9Lj5bPkPbWogPUnjxxWpkRniX7e5UBQDWl6Fsf4roq9wwV+cR7ezQ4zXswNvPIlsdj1slcLB7XCsRAw==", "license": "MIT" }, - "node_modules/@webbtc/webln-types": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@webbtc/webln-types/-/webln-types-3.0.0.tgz", - "integrity": "sha512-aXfTHLKz5lysd+6xTeWl+qHNh/p3qVYbeLo+yDN5cUDmhie2ZoGvkppfWxzbGkcFBzb6dJyQ2/i2cbmDHas+zQ==", - "dev": true, - "license": "MIT", - "funding": { - "type": "lightning", - "url": "lightning:hello@getalby.com" - } - }, "node_modules/@xmldom/xmldom": { "version": "0.8.13", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.13.tgz", @@ -6912,7 +6748,7 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "devOptional": true, + "dev": true, "funding": [ { "type": "github", @@ -6929,21 +6765,6 @@ ], "license": "MIT" }, - "node_modules/better-sqlite3": { - "version": "12.9.0", - "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.9.0.tgz", - "integrity": "sha512-wqUv4Gm3toFpHDQmaKD4QhZm3g1DjUBI0yzS4UBl6lElUmXFYdTQmmEDpAFa5o8FiFiymURypEnfVHzILKaxqQ==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "dependencies": { - "bindings": "^1.5.0", - "prebuild-install": "^7.1.1" - }, - "engines": { - "node": "20.x || 22.x || 23.x || 24.x || 25.x" - } - }, "node_modules/big-integer": { "version": "1.6.52", "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", @@ -6967,53 +6788,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "license": "MIT", - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bl/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, "node_modules/blurhash": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.5.tgz", @@ -7708,32 +7482,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -7794,7 +7542,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "devOptional": true, + "dev": true, "license": "Apache-2.0", "engines": { "node": ">=8" @@ -7924,16 +7672,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "license": "MIT" }, - "node_modules/end-of-stream": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", - "license": "MIT", - "optional": true, - "dependencies": { - "once": "^1.4.0" - } - }, "node_modules/entities": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz", @@ -8223,16 +7961,6 @@ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "license": "MIT" }, - "node_modules/expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "license": "(MIT OR WTFPL)", - "optional": true, - "engines": { - "node": ">=6" - } - }, "node_modules/expect-type": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", @@ -8360,13 +8088,6 @@ "node": ">=16.0.0" } }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "license": "MIT", - "optional": true - }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -8432,13 +8153,6 @@ "url": "https://github.com/sponsors/rawify" } }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "license": "MIT", - "optional": true - }, "node_modules/fs-extra": { "version": "11.3.4", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz", @@ -8510,13 +8224,6 @@ "node": ">=6" } }, - "node_modules/github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", - "license": "MIT", - "optional": true - }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -8765,27 +8472,6 @@ "integrity": "sha512-LtwtVyVYO5BqRvcsKuB2iUMnHwPVByPCXFXOpuU96IZPPoPN6xjOGxZQ74pgSVVLQWtUOYgyeL4GE98BY5D3wg==", "license": "ISC" }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause", - "optional": true - }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -8837,7 +8523,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "devOptional": true, + "dev": true, "license": "ISC" }, "node_modules/ini": { @@ -10005,30 +9691,6 @@ "node": ">= 8" } }, - "node_modules/micro-packed": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/micro-packed/-/micro-packed-0.9.0.tgz", - "integrity": "sha512-gFdaWTxEXOwtSOcpxulO4AuXVtp3HWIRmB8eq8+3m1Zku0ubgva0UGpi03YhcvsTJasHngG9gTIUK5kHNKdesg==", - "license": "MIT", - "dependencies": { - "@scure/base": "~2.2.0" - }, - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/micro-packed/node_modules/@scure/base": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-2.2.0.tgz", - "integrity": "sha512-b8XEupJibegiXV+tDUseI8oLQc8ei3d/4Jkb2RpbHh3MfE054ov3uIz2dhFkB3FI8iwYkEh0gGCApkrYggkPNg==", - "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/micromark": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", @@ -10625,19 +10287,6 @@ "node": ">=8.6" } }, - "node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", @@ -10661,16 +10310,6 @@ "node": "*" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "optional": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/minipass": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", @@ -10694,13 +10333,6 @@ "node": ">= 18" } }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "license": "MIT", - "optional": true - }, "node_modules/mlly": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.2.tgz", @@ -10749,13 +10381,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/napi-build-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", - "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", - "license": "MIT", - "optional": true - }, "node_modules/native-run": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/native-run/-/native-run-2.0.3.tgz", @@ -10789,19 +10414,6 @@ "dev": true, "license": "MIT" }, - "node_modules/node-abi": { - "version": "3.89.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.89.0.tgz", - "integrity": "sha512-6u9UwL0HlAl21+agMN3YAMXcKByMqwGx+pq+P76vii5f7hTPtKDp08/H9py6DY+cfDw7kQNTGEj/rly3IgbNQA==", - "license": "MIT", - "optional": true, - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/node-releases": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", @@ -10979,16 +10591,6 @@ "node": ">=12.20.0" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "optional": true, - "dependencies": { - "wrappy": "1" - } - }, "node_modules/open": { "version": "8.4.2", "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", @@ -11419,34 +11021,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/prebuild-install": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", - "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", - "deprecated": "No longer maintained. Please contact the author of the relevant native addon; alternatives are available.", - "license": "MIT", - "optional": true, - "dependencies": { - "detect-libc": "^2.0.0", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^2.0.0", - "node-abi": "^3.3.0", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^4.0.0", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -11735,17 +11309,6 @@ } } }, - "node_modules/pump": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", - "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", - "license": "MIT", - "optional": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -11803,39 +11366,6 @@ ], "license": "MIT" }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "optional": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "license": "ISC", - "optional": true - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/react": { "version": "19.2.4", "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", @@ -12118,7 +11648,7 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "inherits": "^2.0.3", @@ -12787,7 +12317,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "devOptional": true, + "dev": true, "funding": [ { "type": "github", @@ -12841,7 +12371,7 @@ "version": "7.7.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "devOptional": true, + "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -12893,53 +12423,6 @@ "dev": true, "license": "ISC" }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "optional": true - }, - "node_modules/simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -13031,7 +12514,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" @@ -13271,43 +12754,6 @@ "node": ">=18" } }, - "node_modules/tar-fs": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz", - "integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "license": "ISC", - "optional": true - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -13519,19 +12965,6 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -13924,7 +13357,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/vaul": { @@ -14359,13 +13792,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC", - "optional": true - }, "node_modules/ws": { "version": "8.21.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", diff --git a/package.json b/package.json index c9a2d519..f107a67a 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "agora", + "name": "eranos", "private": true, "version": "2.9.1", "type": "module", @@ -15,7 +15,6 @@ "node": ">=22" }, "dependencies": { - "@breeztech/breez-sdk-spark": "^0.10.0", "@capacitor/app": "^8.0.0", "@capacitor/barcode-scanner": "^3.0.2", "@capacitor/core": "^8.1.0", @@ -44,7 +43,6 @@ "@fontsource/pirata-one": "^5.2.8", "@fontsource/silkscreen": "^5.2.8", "@fontsource/special-elite": "^5.2.8", - "@getalby/sdk": "^5.1.1", "@hookform/resolvers": "^5.2.2", "@milkdown/core": "^7.20.0", "@milkdown/ctx": "^7.20.0", @@ -57,8 +55,9 @@ "@milkdown/prose": "^7.20.0", "@milkdown/react": "^7.20.0", "@milkdown/utils": "^7.20.0", - "@noble/curves": "^2.2.0", + "@noble/curves": "^1.2.0", "@noble/hashes": "^1.8.0", + "@scure/base": "^1.1.1", "@nostrify/nostrify": "^0.52.2", "@nostrify/react": "^0.6.2", "@nostrify/types": "^0.37.0", @@ -86,10 +85,6 @@ "@radix-ui/react-toggle": "^1.1.0", "@radix-ui/react-toggle-group": "^1.1.0", "@radix-ui/react-tooltip": "^1.2.8", - "@scure/base": "^1.1.1", - "@scure/bip32": "^2.2.0", - "@scure/bip39": "^1.6.0", - "@scure/btc-signer": "^2.2.0", "@sentry/react": "^10.42.0", "@tanstack/react-query": "^5.56.2", "@unhead/addons": "^2.1.13", @@ -149,7 +144,6 @@ "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.0.1", - "@webbtc/webln-types": "^3.0.0", "autoprefixer": "^10.4.20", "eslint": "^9.9.0", "eslint-plugin-react-hooks": "^5.1.0-rc.0", diff --git a/public/cashapp.svg b/public/cashapp.svg deleted file mode 100644 index 8bcb0c44..00000000 --- a/public/cashapp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/hero/ve-quake-1.jpg b/public/hero/ve-quake-1.jpg deleted file mode 100644 index 3b3b94b1..00000000 Binary files a/public/hero/ve-quake-1.jpg and /dev/null differ diff --git a/public/hero/ve-quake-2.jpg b/public/hero/ve-quake-2.jpg deleted file mode 100644 index f5410e93..00000000 Binary files a/public/hero/ve-quake-2.jpg and /dev/null differ diff --git a/public/hero/ve-quake-3.jpg b/public/hero/ve-quake-3.jpg deleted file mode 100644 index 3d01b2f2..00000000 Binary files a/public/hero/ve-quake-3.jpg and /dev/null differ diff --git a/public/manifest.webmanifest b/public/manifest.webmanifest index 25be1f9c..6402db79 100644 --- a/public/manifest.webmanifest +++ b/public/manifest.webmanifest @@ -1,11 +1,11 @@ { - "name": "Agora", - "short_name": "Agora", + "name": "Eranos", + "short_name": "Eranos", "description": "Power to the people. Organize, create, and connect across the open Nostr network.", "start_url": "/", "display": "standalone", "background_color": "#0a0c14", - "theme_color": "#ff6600", + "theme_color": "#faa805", "icons": [ { "src": "/icon-192.png", @@ -38,12 +38,6 @@ "purpose": "any" } ], - "related_applications": [ - { - "platform": "play", - "url": "https://play.google.com/store/apps/details?id=spot.agora.app", - "id": "spot.agora.app" - } - ], + "related_applications": [], "prefer_related_applications": false } diff --git a/public/sw.js b/public/sw.js index af2783a6..f9bf8986 100644 --- a/public/sw.js +++ b/public/sw.js @@ -1,5 +1,5 @@ /** - * Agora Service Worker + * Eranos Service Worker * * Handles incoming Web Push notifications from the nostr-push server and * opens/focuses the app when the user taps a notification. @@ -14,17 +14,17 @@ self.addEventListener('push', (event) => { try { payload = event.data.json(); } catch { - payload = { title: 'Agora', body: event.data.text() }; + payload = { title: 'Eranos', body: event.data.text() }; } - const title = payload.title ?? 'Agora'; + const title = payload.title ?? 'Eranos'; const options = { body: payload.body ?? '', icon: payload.icon ?? '/icon-192.png', badge: payload.badge ?? '/icon-192.png', data: payload.data ?? {}, requireInteraction: false, - tag: payload.data?.subscription_id ?? 'agora-notification', + tag: payload.data?.subscription_id ?? 'eranos-notification', renotify: true, }; @@ -42,7 +42,7 @@ self.addEventListener('notificationclick', (event) => { self.clients .matchAll({ type: 'window', includeUncontrolled: true }) .then((clientList) => { - // Focus an existing Agora tab if one is open + // Focus an existing Eranos tab if one is open for (const client of clientList) { if (new URL(client.url).origin === self.location.origin) { client.navigate('/notifications'); @@ -58,7 +58,7 @@ self.addEventListener('notificationclick', (event) => { // --- Activate immediately --- // // On activate: -// 1. Wipe every Cache Storage entry. A previous version of Agora deployed +// 1. Wipe every Cache Storage entry. A previous version of Eranos deployed // a precaching service worker (Workbox-style) that's still serving stale // HTML/JS to returning users on this origin. Clearing caches means future // requests bypass anything the old SW left behind. diff --git a/public/theme.js b/public/theme.js index e96e9b43..0ef8548c 100644 --- a/public/theme.js +++ b/public/theme.js @@ -2,7 +2,7 @@ // preloader background before first paint. Runs as a blocking