Commit Graph

1440 Commits

Author SHA1 Message Date
Matthew Raymer
0a8ace0d8f refactor: update nostr-tools imports for better tree shaking
Changes:
- Import specific functions from nostr-tools instead of full module
- Replace nip06.accountFromExtendedKey with direct import
- Update related function calls to use imported version

This change reduces bundle size by enabling better tree shaking
of unused nostr-tools functionality.
2025-02-21 11:53:21 +00:00
Matthew Raymer
f33d1f0af3 WIP: certificate view and dependency updates
- Update certificate view canvas rendering and QR code generation
- Upgrade dependencies (expo-file-system, expo-font, expo-keep-awake)
- Fix type imports for nostr-tools and dexie-export-import
- Update vite config for better dependency resolution
- Clean up main entry points (capacitor, electron, pywebview)
- Improve error handling in API and plan services
- Add type safety to API error handling
- Update build configuration for platform-specific builds

This is a work in progress commit focusing on certificate view improvements
and dependency maintenance. Some type definitions and build configurations
may need further refinement.
2025-02-21 09:47:24 +00:00
Matthew Raymer
b5b5d45b99 feat(logging): enhance debug logging across app
Improves application logging and error tracking:
- Add structured logging in main.common.ts for app initialization
- Enhance API error handling with detailed context in services
- Add deep link debugging in Capacitor platform
- Improve plan service logging with retry information
- Update endorser server logs for better cache debugging

Technical changes:
- Replace console.error with info for non-critical cache misses
- Add component context to global error handler
- Add detailed logging for plan loading and retries
- Improve deep link route matching logs
- Add mount state logging for Capacitor

This improves debugging capabilities across web and mobile platforms.
2025-02-20 10:36:47 +00:00
Matthew Raymer
1e22cdec82 feat(mobile): add deep linking support for Capacitor apps
Adds native deep linking capabilities:
- Configure timesafari:// URL scheme for iOS and Android
- Add @capacitor/app dependency and configuration
- Implement deep link handler with improved error logging
- Support parameterized routes like claim/:id
- Add debug logging for native platforms
- Handle app mounting state for deep links

Technical changes:
- Update AndroidManifest.xml with intent filters
- Add URL scheme to iOS Info.plist
- Add @capacitor/app to Podfile and Gradle
- Enhance main.capacitor.ts with robust deep link handling
2025-02-19 13:07:08 +00:00
Matthew Raymer
3135062c08 fix: disable PWA for Capacitor builds
Updates PWA configuration to:
- Disable PWA features for Capacitor builds
- Add @capacitor/app dependency
- Update environment variable handling in build config

This prevents conflicts between PWA and native app functionality
when building for mobile platforms.

Technical changes:
- Add isCapacitor check to PWA disable logic
- Update VITE_PWA_ENABLED environment variable definition
- Add @capacitor/app to package dependencies
2025-02-18 11:54:42 +00:00
Matthew Raymer
2746b8fe2b refactor: reorganize Vite config into modular files
Split monolithic vite.config.mjs into separate config files:
- vite.config.web.mts
- vite.config.electron.mts
- vite.config.capacitor.mts
- vite.config.pywebview.mts
- vite.config.common.mts
- vite.config.utils.mts

Updates:
- Modify package.json scripts to use specific config files
- Add electron-builder as dev dependency
- Update electron build configuration
- Fix electron resource paths
- Remove old vite.config.mjs and utils.js

This change improves maintainability by:
- Separating concerns for different build targets
- Making build configurations more explicit
- Reducing complexity in individual config files
2025-02-18 11:44:06 +00:00
Matthew Raymer
7f3114fd6c chore: cleanup console logs and test directories
- Remove commented console.log statements from main.ts
- Add test output directories to .gitignore:
  - playwright-tests/
  - test-playwright/
  - test-playwright-results/

Keeps repository clean by excluding test artifacts and removing
unused logging statements.
2025-02-18 09:04:01 +00:00
11a4bbbc8f fix problem when going directly to people-map where the search results disappear 2025-02-17 20:35:05 -07:00
dd8f50a984 bump version and add "-beta" (was 0.4.3 now 0.4.4-beta) 2025-02-17 19:22:03 -07:00
5d5a8a4509 add Discover query param searchPeople to go straight to people map 2025-02-17 19:19:38 -07:00
1bdb3cc3e2 bump version and add "-beta" 2025-02-17 08:55:07 -07:00
4055834c02 Merge pull request 'new build process to allow building native apps' (#126) from split_build_process into master
Reviewed-on: trent_larson/crowd-funder-for-time-pwa#126
2025-02-17 10:50:47 -05:00
0076ca1a64 wait for some elements before calling 'click' 2025-02-17 08:46:46 -07:00
Matthew Raymer
61e32dd560 Merge branch 'master' into split_build_process
fix: image server references and test configurations

- Update image server references to use test server by default for local dev
- Fix registration status checks in tests
- Remove verbose console logging
- Update environment configurations for consistent image server usage
- Fix alert handling in contact registration tests
- Clean up component lifecycle logging
- Add clarifying comments about shared image server usage
- Update playwright test configurations for better reliability

This commit ensures consistent image server behavior across environments
and improves test reliability by properly handling registration status
checks and alerts.
2025-02-17 06:36:40 +00:00
Matthew Raymer
fd66742098 chore: add new playwright test results to .gitignore 2025-02-17 05:43:21 +00:00
ccb5c40e5c enable remainder of the devices for full UI tests 2025-02-16 21:18:21 -07:00
362dbf523c fix a check for user's registration status 2025-02-16 21:00:52 -07:00
e27aefc19e fix error setting the apiServer to "", plus some refactors while fixing test 40 2025-02-16 20:36:44 -07:00
41afbb52a2 fix where function is not found 2025-02-16 17:05:01 -07:00
b24c1b14ed bump version to 0.4.1 2025-02-16 13:55:46 -07:00
898821c9aa fix image server references for tests (2 tests failing: missing function & looking for registration prompt for unregistered user) 2025-02-16 09:11:28 -07:00
Matthew Raymer
cc71d383e6 docs(tests): Add comprehensive test suite documentation
- Add detailed header documentation to playwright tests
- Document test categories and flows
- Add key selector documentation
- Document state verification and alert handling
- Include code examples and usage patterns
- Add important checks and requirements

The documentation helps developers understand the foundational tests that verify
basic application functionality before running more complex test suites.
2025-02-16 03:29:22 +00:00
2b243b6041 fix linting 2025-02-15 12:28:56 -07:00
e31458bef6 yet another attempt at nostr-tools nip06 fix 2025-02-15 12:28:21 -07:00
53f0985205 Merge pull request 'feat(feed): Images in the home feed now take up the full width of the card and displays in lightbox when clicked' (#125) from feat/image-feed-view-improvements into master
Reviewed-on: trent_larson/crowd-funder-for-time-pwa#125
2025-02-15 12:51:59 -05:00
Matthew Raymer
499d35b22b feat(tests): Add structured logging and screenshot capture
Enhances test debugging capabilities by adding:
- Structured logging with timestamps and categories (INFO/STEP/SUCCESS/WAIT)
- Systematic screenshot capture at key test steps
- Comprehensive file documentation headers
- Improved error handling with visual state capture
- Organized test step numbering and progress tracking

Key improvements:
- Added screenshot helper function with consistent naming
- Ensured test-results directory exists before captures
- Replaced console.log with structured logging utility
- Added try-catch blocks with failure state capture
- Improved debugging info for gift button not found error

Tests affected:
- 35-record-gift-from-image-share.spec.ts
- 40-add-contact.spec.ts

Note: Screenshots are stored in test-results/ with test-specific prefixes
2025-02-15 12:50:54 +00:00
Matthew Raymer
cae684bf24 fix(tests): Improve gift recording test reliability
- Add better error handling and logging for gift recording flow
- Add explicit navigation to contacts page before finding gift button
- Add info icon click handling when needed
- Add more comprehensive button detection with multiple selectors
- Add debug logging for page state and navigation
- Add screenshot capture on failures
- Add retry logic with proper state verification
- Fix linter errors in playwright config

The changes help diagnose and handle various UI states that can occur during gift recording, making the tests more reliable especially on Linux.
2025-02-15 07:53:48 +00:00
7458176247 refine instructions & remove duplicate info 2025-02-14 19:23:31 -07:00
238ed2db13 docs(feed): versioning 0.4.0 2025-02-14 13:49:17 -07:00
9c8c027fe8 Merge pull request 'feat(feed): Images in the home feed now take up the full width of the card and displays in lightbox when clicked' (#124) from jsnbuchanan/crowd-funder-for-time-pwa:fix/adding-nostr-tools-dependency into feat/image-feed-view-improvements
Reviewed-on: trent_larson/crowd-funder-for-time-pwa#124
2025-02-14 15:41:31 -05:00
154adbc918 Merge branch 'feat/image-feed-view-improvements' into fix/adding-nostr-tools-dependency 2025-02-14 15:38:19 -05:00
d1faee69a8 chore: cleanup in prep for pull request 2025-02-14 13:39:07 -07:00
6946b177b2 docs(feed): documenting improvements to the image view in the home feed 2025-02-14 13:32:36 -07:00
16b77b283d deps: fixing issues around nostr-tools deps being removed that were necessary 2025-02-14 13:24:29 -07:00
213cec2d85 feat(feed): improving the image viewer, to be more conventional, and also allowing the viewer to download the image on mobile with ... control 2025-02-14 13:06:36 -07:00
62eb3ecccc feat(feed): adding image viewer for expanding images found in the feed instead of displaying in a new tab and taking the viewer away from the application 2025-02-14 11:52:20 -07:00
8f34687bc0 fix(feed): long words or urls displayed in feed break the container layout 2025-02-14 11:46:17 -07:00
479af50f1e deps: updating the nostr-tools version from 2.7.2 to 2.10.4 to fix a bug I was seeing locally 2025-02-14 09:59:47 -07:00
9d5d163ad5 feat(feed): better image formatting, to take up the width of the feed container 2025-02-14 09:58:55 -07:00
633169de9f deps: updated nostr-tools and import 2025-02-14 06:39:46 -07:00
Matthew Raymer
d16d52ddb7 Touch up gitignore 2025-02-14 11:00:27 +00:00
Matthew Raymer
25a63080a2 feat: improve test stability and API routing
- Add proxy configuration for API requests in dev/test
- Target default endorser API server in development
- Add proxy for /api endpoints to handle CORS
- Enhance contact management test reliability
- Add comprehensive error handling and debugging
- Extract test helper functions

Breaking: None
2025-02-14 10:27:01 +00:00
Matthew Raymer
78b0c1c084 refactor(tests): enhance contact management test reliability
- Add comprehensive error handling with try-catch blocks
- Add TypeScript type annotations for Page parameters
- Add debug logging for test troubleshooting
- Add retry logic for flaky operations
- Add API request routing for port conflicts
- Add detailed JSDoc documentation
- Extract helper functions for better maintainability
- Add timeout constants for different operations
- Improve error messages with better context
- Add load state handling for network operations
2025-02-14 10:01:12 +00:00
Matthew Raymer
e0164963a9 fix: add missing DEFAULT_PARTNER_API_SERVER import in DiscoverView
- Import DEFAULT_PARTNER_API_SERVER constant from app constants
- Fix missing import in DiscoverView component
2025-02-14 08:12:35 +00:00
Matthew Raymer
3a6826658f fix: remove navigator.serviceWorker redefinition in Vite config
The previous configuration attempted to redefine the read-only navigator.serviceWorker
property, which caused runtime errors. Instead, we now handle service worker
availability through the transform plugin, which safely removes service worker
code in Electron and PyWebView builds.

This fixes the error:
"Cannot set property serviceWorker of #<Navigator> which has only a getter"

Technical changes:
- Removed navigator.serviceWorker from define section
- Rely on existing transform plugin to handle service worker code removal
- Maintains existing PWA functionality for web builds while properly
  disabling it for desktop builds
2025-02-14 03:31:03 +00:00
Matthew Raymer
3f69f67f39 fix: resolve nostr-tools typescript type conflicts
- Update type definitions for nostr-tools
- Fix type compatibility issues
- Add missing type declarations
2025-02-14 03:21:48 +00:00
Matthew Raymer
0cc4a491f5 chore: update in preparation for production mode 2025-02-13 07:29:08 +00:00
Matthew Raymer
887d37abe5 chore: linting for build 2025-02-13 06:59:06 +00:00
Matthew Raymer
20d2f5be32 fix: add Content Security Policy for Electron API connections
- Add CSP headers to allow connections to endorser.ch and timesafari.app APIs
- Configure secure content policies for images, scripts, styles and fonts
- Fix API connection errors by allowing required external resources
- Remove duplicate CSP header configuration
2025-02-13 06:56:35 +00:00
Matthew Raymer
01365d478c docs: update electron build instructions and fix electron asset paths
- Add web build prerequisite step to electron build docs
- Update electron run command to use npx
- Fix electron asset loading with improved path handling
- Add request interception for proper asset resolution
- Remove service worker files from electron build
- Improve debug logging for electron builds
2025-02-13 06:43:54 +00:00