- Update commented TODO in PaymentMonitorService to use proper DI pattern
- Remove outdated reference to legacy invoiceService singleton
- Prepare PaymentMonitorService for future DI migration with proper pattern
This cleanup eliminates the last remaining reference to the legacy
InvoiceService singleton pattern, ensuring code consistency.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
This major refactor consolidates the authentication system to use a single
source of truth, eliminating timing issues and architectural complexity
that was causing chat and payment functionality problems.
Key Changes:
• Remove old global useAuth composable and replace with useAuthService wrapper
• Update all 25+ files to use consistent auth pattern via dependency injection
• Eliminate dual auth detection workarounds from services (ChatService, PaymentService, etc.)
• Fix TypeScript errors and add proper Uint8Array conversion for Nostr private keys
• Consolidate auth state management to AuthService as single source of truth
Benefits:
• Resolves chat peer loading and message subscription timing issues
• Fixes wallet detection problems for Lightning payments
• Eliminates race conditions between global and injected auth
• Maintains API compatibility while improving architecture
• Reduces code complexity and improves maintainability
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Chat Service:
- Added detailed logging for API calls and responses, including warnings for missing authentication tokens and invalid response formats.
- Implemented a retry mechanism for message subscription setup on connection errors.
- Merged peers instead of clearing existing ones when loading from the API.
Market Service:
- Updated authentication checks to prioritize global auth state, improving user experience during order placement.
- Enhanced error messages for missing Nostr keys to guide users in configuring their profiles.
These changes improve the robustness and user-friendliness of the chat and market functionalities.
Major accomplishments:
- Remove duplicate components (market/, events/ legacy wrappers)
- Move services to appropriate modules (paymentMonitor, nostrmarketService)
- Relocate invoiceService to core/services as shared utility
- Clean up legacy re-export composables (useMarket, useMarketPreloader)
- Update all import paths to use proper module structure
- Fix circular imports and TypeScript errors
- Achieve successful production build (4.99s)
Architecture goals achieved:
✅ Module-first architecture with clean boundaries
✅ All duplicate patterns consolidated (1.3.1 through 1.3.6)
✅ Proper service organization and dependency injection
✅ Legacy code elimination with no backwards compatibility concerns
✅ 30-40% reduction in duplicate code across modules
Build verification: All TypeScript errors resolved, production build successful
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update AuthService and RelayHub to extend BaseService, introducing standardized initialization and metadata handling.
- Implement service-specific initialization methods in both services, enhancing error handling and logging.
- Modify NostrmarketService to inherit from BaseService, ensuring consistent dependency management and initialization.
- Refactor market module to dynamically import NostrmarketService, improving service registration and initialization flow.
- Enhance debug logging across services for better traceability during initialization and operation.
- Update import paths for useTicketPurchase in PurchaseTicketDialog.vue to reflect new module structure.
- Adjust type handling in Navbar.vue and various market components to use 'any' for improved compatibility with existing data structures.
- Enhance useLightningPayment composable to include shipping zone details, ensuring better order management.
- Remove unused pages (events.vue, MyTickets.vue, OrderHistory.vue) to streamline the codebase and improve maintainability.
- Update OrderHistory.vue to utilize a new method for determining effective order status, enhancing clarity in payment and shipping status display.
- Add a new composable, usePaymentStatusChecker, to handle payment status checks via LNbits API, improving order payment verification.
- Modify nostrmarketService to streamline order updates with consolidated status handling for paid and shipped states.
- Enhance market store initialization to include payment status and paid fields for better order management.
- Update market types to include new fields for payment and shipping status, ensuring consistency across the application.
- Make ChatService globally available for other modules, enabling market-related message handling.
- Introduce a market message handler in ChatService to process market-related direct messages (DMs).
- Update useMarket to register the market message handler with ChatService, streamlining order-related DM processing.
- Refactor message handling logic to differentiate between market messages and regular chat messages, improving message management.
- Enhance order update logging in nostrmarketService for better debugging and verification of order status.
- Update imports in DashboardOverview.vue to use relative paths for better module organization.
- Modify OrderHistory.vue to replace 'lightningInvoice' with 'paymentRequest' for consistency in payment handling.
- Enhance order event handling in useMarket.ts by adding subscription and decryption logic for order-related DMs.
- Update nostrmarketService.ts to use relative imports, ensuring consistency across the module.
- Introduce error handling and logging for order updates, improving the robustness of the market module.
- Delete the useNostrOrders composable as it is no longer needed.
- Update MerchantStore.vue to utilize nostrmarketService for publishing orders instead of the removed composable.
- Refactor market store to check the readiness of nostrmarketService instead of useNostrOrders.
- Remove the Checkout.vue page, streamlining the checkout process and improving code maintainability.
- Inject AuthService into useMarket for improved user authentication checks.
- Add error handling for missing AuthService and RelayHub to ensure proper module installation.
- Update comments to clarify the use of pubkey from either nostrStore or AuthService, indicating a need for confirmation on the preferred source.
- Refactor NostrmarketService to utilize injected RelayHub, improving error handling and code clarity.
- Introduce chat module with components, services, and composables for real-time messaging.
- Implement events module with API service, components, and ticket purchasing functionality.
- Update app configuration to include new modules and their respective settings.
- Refactor existing components to integrate with the new chat and events features.
- Enhance market store and services to support new functionalities and improve order management.
- Update routing to accommodate new views for chat and events, ensuring seamless navigation.