Commit Graph
100 Commits
Author SHA1 Message Date
Matt Raymer d137093aa9 Merging 2025-05-16 06:23:46 -04:00
Matt Raymer 74e39eea5c chore: update camera documentation 2025-05-16 06:17:10 -04:00
Matt Raymer 5a4bf99534 fix: remove duplicate Advanced heading and improve UX
- Remove redundant Advanced heading from advanced settings section\n- Make clickable text more descriptive (Show/Hide Advanced Settings)\n- Add cursor-pointer class for better UX\n- Make section heading screen-reader only for accessibility
2025-05-15 03:37:01 -04:00
Matthew Raymer 29607f4e58 feat(accessibility): enhance AccountViewView and document test suite
- Add ARIA annotations and roles to AccountViewView for better screen reader support
  - Add role="tooltip" to API server description
  - Improve input control accessibility with proper ARIA attributes
  - Add descriptive labels and aria-labels for interactive elements

- Create comprehensive README.md for Playwright test suite
  - Document test structure and organization
  - Add setup instructions and prerequisites
  - Include troubleshooting guide and contribution guidelines
  - Link to related documentation

This change improves accessibility compliance and makes the test suite
more maintainable for contributors.
2025-05-15 06:19:36 +00:00
Matt Raymer 36b755e859 feat(ui): disable all photo upload actions for unregistered users
- Updated ImageMethodDialog.vue to accept an isRegistered prop and show "Register to Upload a Photo" message instead of upload UI when not registered.
- Updated AccountViewView.vue to pass isRegistered to ImageMethodDialog and replace all profile photo add/upload buttons with the same message for unregistered users.
- Ensures consistent UX and prevents unregistered users from accessing any photo upload features.
2025-05-14 05:39:03 -04:00
Matt Raymer ea76d5c1ac feat(web): enable desktop webcam capture in WebPlatformService
- Updated WebPlatformService.takePicture() to use getUserMedia for webcam capture on desktop browsers, providing a live video preview and capture button in an overlay.
- Retained file input with capture attribute for mobile browsers and as a fallback if webcam access fails.
- Ensured interface and factory pattern compatibility; no changes required in PhotoDialog.vue or PlatformServiceFactory.
- Added a stub for writeAndShareFile to satisfy the PlatformService interface on web.
2025-05-14 04:35:33 -04:00
Matt Raymer 06ed7d44ab chore: adjusting file location 2025-05-08 04:50:27 -04:00
Matt Raymer 7c54fc7223 feat(qr-scanner): implement WebInlineQRScanner with jsQR integration
- Add jsQR library for QR code detection and scanning
- Implement WebInlineQRScanner class with comprehensive camera handling
- Add detailed logging throughout scanner lifecycle
- Include error handling and cleanup procedures
- Add blur detection for QR codes
- Implement FPS throttling for performance optimization
- Add device compatibility checks and permission handling

The scanner now provides:
- Camera stream management
- QR code detection with blur prevention
- Performance optimized scanning (15 FPS target)
- Detailed logging for debugging
- Proper cleanup of resources
2025-05-08 01:58:39 -04:00
Matt Raymer 151bbc5467 chore: updates for qr code reader rules, linting, and cleanup 2025-05-07 01:57:18 -04:00
Matt Raymer 3cf256cf3a style: improve code formatting and type safety
- Add proper type annotation for onDetect result parameter
- Fix indentation and line wrapping in template
- Remove unused WebInlineQRScanner import
- Clean up button attribute ordering
- Fix whitespace and formatting issues
- Remove unused empty divs
2025-05-06 02:45:24 -04:00
Matthew Raymer 5e9785605c doc: camera system details 2025-05-02 10:30:09 +00:00
Matthew Raymer 99cf47dd58 docs: add macOS build and packaging instructions
- Add detailed macOS build procedure for Electron app
- Include instructions for Intel and Universal builds
- Add code signing and notarization requirements
- Document running instructions for .app, .dmg, and .zip formats
- Add security warning handling instructions
2025-05-02 03:22:07 -07:00
Matthew Raymer 58735cad0a chore: lint fix 2025-05-01 09:47:20 +00:00
Matthew Raymer bfe46f8789 refactor(electron): improve build process and configuration
- Enhance electron build configuration with proper asset handling
- Add comprehensive logging and error tracking
- Implement CSP headers for security
- Fix module exports for logger compatibility
- Update TypeScript and Vite configs for better build support
- Improve development workflow with better dev tools integration
2025-05-01 09:30:02 +00:00
Matt Raymer a7d3c62077 cursor(ADR): attempt to keep changes between the lines when making platform level changes 2025-04-30 02:45:30 -04:00
Matt Raymer 254f14dc72 refactor: replace console.log with logger utility
- Replace all console.log statements with appropriate logger methods in QRScannerDialog.vue
- Replace console.log statements with logger methods in WebDialogQRScanner.ts
- Fix TypeScript type for failsafeTimeout from 'any' to 'unknown'
- Update LogCollector.ts to use 'unknown' type instead of 'any'
- Add eslint-disable comments for console overrides in LogCollector

This change improves logging consistency across the application by using the centralized logger utility, which provides better error handling, log persistence, and environment-aware logging.
2025-04-29 23:22:10 -04:00
Matt Raymer 9ff385a414 fix(qr-scanner): robustly handle array/object detection results and guarantee dialog dismissal
- Update QRScannerDialog.vue to handle both array and object detection results in onDetect fallback logic (supports vue-qrcode-reader returning arrays).
- Ensure dialog closes and scan is processed for all detection result shapes.
- Use arrow function for close() to guarantee correct binding with vue-facing-decorator.
- Add enhanced logging for all dialog lifecycle and close/cleanup events.
- In WebDialogQRScanner, use direct mount result (not $refs) for dialogComponent to ensure correct instance.
- Add sessionId and improved logging for dialog open/close/cleanup lifecycle.
2025-04-29 06:10:12 -04:00
Matthew Raymer a941911e95 chore(qr): add unconditional debug panel and simplify onInit for event binding test
- Add always-visible debug panel to QRScannerDialog to confirm template updates
- Simplify onInit signature and add alert to verify @init event is firing
- Refine error handling in onInit for clarity during debugging
2025-04-28 10:18:15 +00:00
Matthew Raymer 67c1d470ba chore(qr): add visible debug output and version bump for device-side troubleshooting
- Bump version string in QRScannerDialog to include build number for cache-busting and verification
- Add debugMessage UI panel to display internal state and debug info directly in the dialog
- Add alert() and debugMessage updates at key points in QR scanner initialization for device-visible feedback
2025-04-28 09:07:27 +00:00
Matthew Raymer a0bf07d59d debug: add an old-school alert 2025-04-28 08:49:16 +00:00
Matthew Raymer 00f6be672e fix(qr): add timeout fallback for QR scanner initialization
- Adds a 4-second timeout to force initialization complete if the QR scanner promise never resolves
- Prevents UI from being stuck on "Checking camera access..." when camera is active but init promise hangs
- Retains retry logic for transient initialization failures
2025-04-28 08:01:21 +00:00
Matthew Raymer c56a9ac5b4 fix(qr): add retry logic to QR scanner initialization
- Retries QR scanner initialization up to 3 times if it fails, with a delay between attempts
- Improves user experience on slow or delayed camera hardware/browser permission responses
- Updates status message to reflect retry attempts
2025-04-28 07:25:25 +00:00
Matthew Raymer 9cafe1cc83 debug: comment out promise 2025-04-28 05:48:00 +00:00
Matthew Raymer f275732d99 Merge branch 'qrcode-reboot' of ssh://173.199.124.46:222/trent_larson/crowd-funder-for-time-pwa into qrcode-reboot 2025-04-28 04:35:07 +00:00
Matthew Raymer e68b282553 style: fix max-len warnings in QRScannerDialog.vue SVG paths
- Break long SVG path 'd' attributes into multiple lines for readability
- Ensure all lines comply with max-len linting rule
2025-04-28 04:22:34 +00:00
Matt Raymer 3808cf9088 refactor(QRScanner): improve camera handling and UI feedback
- Add detailed camera status and initialization feedback\n- Implement proper error handling with specific error messages\n- Add camera switching functionality with visual indicator\n- Improve TypeScript types with DetectionResult interface\n- Fix duplicate onError method with consolidated error handling\n- Add version display (v1.1.0)\n- Enhance UI with better status indicators and debug info\n- Clean up code formatting and improve maintainability
2025-04-25 06:31:18 -04:00
Matt Raymer d578fe2565 feat(qr-scanner): Enhance QR scanner dialog with user feedback
- Add status messages for different scanning states (initializing, scanning, error)
- Add visual feedback with color-coded scanning frame and animations
- Add camera switch button for toggling between front/back cameras
- Add scanning instructions and tips in the footer
- Add retry button for error recovery
- Improve error handling and state management
- Add browser compatibility message for unsupported browsers

This change improves the user experience by providing clear visual feedback
and guidance during the QR code scanning process.
2025-04-25 04:55:36 -04:00
Matt Raymer 0a545b6a05 feat(qr-scanner): Add detailed logging for QR code scanning process
- Add browser capability detection logging (userAgent, mediaDevices, getUserMedia)
- Add detailed error logging with stack traces and error names
- Add new event handlers for detect and error events
- Add logging for key scanning events (init, detect, decode, close)
- Improve error handling with structured error objects

This change will help diagnose QR code registration issues by providing
more detailed information about the scanning process and any errors that occur.
2025-04-25 04:32:35 -04:00
Matt Raymer 9863f5bdaf feature: adding Dockerfile for online testing or deployment to docker 2025-04-25 04:20:20 -04:00
Matthew Raymer 656871660c fix: add HTTPS requirement check for camera access
- Check for secure context before attempting camera access
- Show clear user feedback when HTTPS is required
- Prevent confusing permission errors on insecure connections
2025-04-24 09:55:01 +00:00
Matthew Raymer b4101b7d65 fix: improve camera permission error feedback
- Add user-visible notification when camera access is denied
- Keep error message in UI for better visibility
- Pass notification timeout as second argument
2025-04-24 09:48:58 +00:00
Matthew Raymer db86114196 fix: standardize FontAwesome usage and improve error handling
- Change <fa> to <font-awesome> for consistent component naming
- Add structured error logging in QR scanner services
- Fix cacheImage event handling in ActivityListItem
- Improve code formatting and error wrapping
2025-04-24 09:34:01 +00:00
Matthew Raymer 0dfcb17ecc fix: correct import paths and add host flag for dev server
- Update import path for GiveRecordWithContactInfo to use relative path
- Add --host flag to dev script for network access during development
2025-04-24 09:03:04 +00:00
Matthew Raymer e27700f52a fix: prevent duplicate contacts during QR code scanning
- Add explicit duplicate contact check before database insertion
- Show warning notification when duplicate contact is detected
- Return early to prevent duplicate database entries
- Improve user feedback for duplicate contact scenarios

This change ensures users get clear feedback when scanning an already-added contact and prevents duplicate entries in the contacts database.
2025-04-24 08:42:44 +00:00
Matthew Raymer 70dfbe44fa fix(qr): improve QR scanner implementation and error handling
- Implement robust QR scanner factory with platform detection
- Add proper camera permissions to Android manifest
- Improve error handling and logging across scanner implementations
- Add continuous scanning mode for Capacitor/MLKit scanner
- Enhance UI feedback during scanning process
- Fix build configuration for proper platform detection
- Clean up resources properly in scanner components
- Add TypeScript improvements and error wrapping

The changes include:
- Adding CAMERA permission to AndroidManifest.xml
- Setting proper build flags (__IS_MOBILE__, __USE_QR_READER__)
- Implementing continuous scanning mode for better UX
- Adding proper cleanup of scanner resources
- Improving error handling and type safety
- Enhancing UI with loading states and error messages
2025-04-22 10:00:37 +00:00
Matthew Raymer 3e87b2ecda chore: cleanup and test 2025-04-22 07:48:04 +00:00
Matthew Raymer 448f32abaa Merge branch 'qrcode-reboot' of ssh://173.199.124.46:222/trent_larson/crowd-funder-for-time-pwa into qrcode-reboot 2025-04-22 07:06:13 +00:00
Matthew Raymer e4bf646e64 fix(deep-links): standardize DID parameter name and add route mapping docs
- Change DID schema parameter from 'id' to 'did' for consistency
- Add documentation for deep link route mapping functionality
2025-04-22 06:57:14 +00:00
Matthew Raymer ff605b3676 feature(qrcode): reboot qrcode reader 2025-04-21 10:13:12 +00:00
Matthew Raymer 2b7b07441e test: increase timeout for record offer test to 60s
The record offer test occasionally hits the 45s timeout limit.
Increasing to 60s provides more headroom, aligning with actual
test durations seen in Firefox (up to 43.1s for similar operations).
2025-04-21 06:14:34 +00:00
Matthew Raymer 19a55d4128 fix: improve file sharing on Android using app-private storage
- Replace direct file writing with app-private storage + share dialog
- Add Share plugin for cross-platform file sharing
- Update file paths configuration for Android
- Fix permission issues by using Directory.Data instead of Documents
- Simplify file export flow in DataExportSection
2025-04-11 07:13:07 +00:00
Matthew Raymer a3f7e0e12f feat(android): implement file picker for data export
- Add @capawesome/capacitor-file-picker dependency
- Update DataExportSection UI text to reflect new file picker behavior
- Implement file picker in CapacitorPlatformService
- Add debug logging for path handling
- Fix logger to show messages in Capacitor environment

WIP: File path handling still needs refinement
2025-04-09 10:04:03 +00:00
Matthew Raymer 2063e39fe0 fix: remove last "any" lint messages 2025-04-09 07:37:54 +00:00
Matthew Raymer 669ecbd1eb chore: linted with auto-fix 2025-04-09 07:17:21 +00:00
Matthew Raymer 41c0f32544 feat(android): update Capacitor assets and fix Xcode project version
- Generate new launcher icons for all densities (mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi)
- Update both regular and round icon variants
- Fix Xcode project version numbers (0920 -> 920)
- Add missing file provider paths meta-data
2025-04-09 07:10:30 +00:00
Matthew Raymer 23e5fbc5d0 feat(export): adapt DataExportSection for platform-specific file handling
Integrate PlatformServiceFactory to provide platform-specific data export:
- Add platform-specific file saving for Capacitor and other platforms
- Use web download mechanism only in web platform
- Conditionally show platform-specific save instructions
- Add iOS/Android detection for targeted guidance
- Update success messages based on platform context
- Improve download link visibility logic for web platform

This change ensures proper file handling across web, mobile, and desktop
platforms while maintaining a consistent user experience.
2025-04-07 08:50:09 +00:00
Matthew Raymer 7b681db3e8 docs: add comprehensive JSDoc documentation to service layer
Add detailed TypeScript JSDoc documentation to core service modules:
- api.ts: Document error handling utilities and platform-specific logging
- plan.ts: Document plan/claim loading with retry mechanism
- deepLinks.ts: Document URL parsing and routing functionality
- Platform services:
  - CapacitorPlatformService: Document mobile platform capabilities
  - ElectronPlatformService: Document desktop placeholder implementation
  - PyWebViewPlatformService: Document Python bridge placeholder
  - WebPlatformService: Document web platform limitations and features

Key improvements:
- Add detailed @remarks sections explaining implementation details
- Include usage examples with TypeScript code snippets
- Document error handling and platform-specific behaviors
- Add @todo tags for unimplemented features
- Fix PlanResponse interface to include headers property

This documentation enhances code maintainability and developer experience
by providing clear guidance on service layer functionality and usage.
2025-04-07 07:49:39 +00:00
Matthew Raymer a3f7b651d2 fix: improve error handling in photo upload
- Add proper unknown type for error handling in PhotoDialog
- Remove any type in favor of unknown for better type safety
- Fix error message access with type guards
2025-04-07 07:29:52 +00:00
Matthew Raymer 17c9c22741 refactor: improve camera controls and modularize data export
- Add detailed error logging for image upload failures in PhotoDialog and SharedPhotoView
- Extract DataExportSection into standalone component with proper prop handling
- Fix Backup Identifier Seed visibility by passing activeDid prop
2025-04-07 07:17:43 +00:00
Matthew Raymer c8eb72ba52 chore: commit gitignore 2025-04-07 06:43:56 +00:00
Matthew Raymer 7db3974459 feat: enhance error logging and upgrade Android build tools
- Add detailed error logging for image upload failures
- Upgrade Gradle to 8.11.1 and Android build tools to 8.9.0
- Add Capacitor camera and filesystem modules to Android build
2025-04-07 06:37:14 +00:00
Matthew Raymer 2c6bfc30bc feat: update TypeScript config for platform services
- Add useDefineForClassFields for class field initialization
- Remove test-playwright from includes
- Add tsconfig.node.json reference
- Remove redundant node_modules exclude
2025-04-06 06:58:25 +00:00
Matthew Raymer e7e9b4d27c feat: update TypeScript config for platform services
- Add useDefineForClassFields for class field initialization
- Remove test-playwright from includes
- Add tsconfig.node.json reference
- Remove redundant node_modules exclude
2025-04-06 06:58:14 +00:00
Matthew Raymer 2ae2595525 baseline for this branch 2025-04-06 05:41:12 +00:00
Matthew Raymer 9bccd1f02d fix(ui): resolve duplicate attributes and improve code style
- Remove duplicate class attributes in ProjectsView and ClaimView
- Fix attribute ordering for better readability
- Replace this references with direct variable names in templates
- Update icon-size prop to use kebab-case
- Remove unnecessary comments and improve formatting
- Fix import organization in ProjectsView

This commit resolves Vue template errors and improves code consistency.
2025-04-02 00:39:38 -07:00
Matthew Raymer e94c8d179a Merge branch 'ui-fixes-2025-03' 2025-04-02 06:48:07 +00:00
Matthew Raymer 9eabbc4a49 fix: resolve strict mode violation in gift recording test
- Update selector to target specific gift text link instead of generic anchor
- Add filter to ensure unique element selection
- Fix test reliability by being explicit about element selection
2025-03-31 09:32:58 +00:00
Matthew Raymer 34dc4149f5 refactor: improve feed loading and infinite scroll reliability
- Add debouncing and loading state to InfiniteScroll component to prevent duplicate entries
- Refactor updateAllFeed into smaller, focused functions for better maintainability
- Add proper error handling and type assertions
- Optimize test performance with networkidle waits and better selectors
- Fix strict mode violations in Playwright tests
- Clean up test configuration by commenting out unused browser targets
2025-03-31 09:17:15 +00:00
Matthew Raymer 391d352e5a chore: chang applicationId in iOS for consistency 2025-03-24 09:01:56 +00:00
Matthew Raymer dfe10973c4 Merge branch 'homeview-refresh-2025-02'
refactor: Extract ActivityListItem component and add claim confirmation

- Move activity list item from HomeView to dedicated component
- Add claim confirmation functionality with AgreeAction schema
- Update feed data handling for confirmation status
- Improve error handling with structured logging
- Add user confirmation dialog for claim verification

The changes improve code organization by:
1. Separating activity item UI into reusable component
2. Adding proper type definitions for activity records
3. Implementing structured claim confirmation flow
4. Adding user feedback for confirmation actions
5. Improving error handling with logger utility

Technical details:
- Added ActivityListItem.vue component
- Added confirmClaim method with schema.org AgreeAction
- Updated feed refresh after confirmation
- Added proper TypeScript interfaces
- Improved notification handling
2025-03-24 08:52:29 +00:00
Matthew Raymer 00f71afd85 fix: Update Android package name and improve test reliability
- Change package name from app.timesafari.app to app.timesafari
- Fix ADB connection issues with server restart and retries
- Add interactive test flow with user prompts between tests
- Generate test data locally instead of external script
- Add proper cleanup of readline interface
- Fix URL scheme registration in Android manifest

Technical changes:
1. Remove duplicate SDK suppression entries
2. Update Gradle and build configurations
3. Add retry logic for flaky ADB connections
4. Add proper error handling for test data generation
5. Update all package references consistently

The changes improve Android testing by:
1. Making package naming consistent
2. Adding reliability to ADB connections
3. Adding user control over test flow
4. Providing better test progress visibility
5. Improving error handling and logging
2025-03-21 08:31:55 +00:00
Matthew Raymer e11d616a67 feature: move amount and wire it up 2025-03-21 07:03:31 +00:00
Matthew Raymer 4b7a618ab6 feat(ios-testing): Enhance deeplink testing and error handling
- Improve test data generation and validation
  - Add detailed logging of generated test data
  - Implement robust validation of required fields
  - Use ts-node script for test data generation
  - Add fallback data generation with validation

- Enhance deeplink testing UX
  - Add interactive prompts between tests
  - Display detailed test progress and next steps
  - Improve error handling and test skip logic
  - Add comprehensive logging throughout test execution

- Improve DeepLinkErrorView
  - Add detailed error information display
  - Show debug information for parameters and queries
  - Enhance UI with better styling and layout
  - Add safe area spacing for iOS

- Refactor deeplink handling
  - Standardize route definitions
  - Improve parameter validation
  - Add better error logging
2025-03-20 04:34:47 -07:00
Matthew Raymer 26b98d8b0a wip: Improve deep link validation and error handling
- Add comprehensive route validation with zod schema
- Create type-safe DeepLinkRoute enum for all valid routes
- Add structured error handling for invalid routes
- Redirect to error page with detailed feedback
- Add better timeout handling in deeplink tests

The changes improve robustness by:
1. Validating route paths before navigation
2. Providing detailed error messages for invalid links
3. Redirecting users to dedicated error pages
4. Adding parameter validation with specific feedback
5. Improving type safety across deeplink handling
2025-03-18 09:19:35 +00:00
Matthew Raymer 60ab6ad0c8 feat(test): Comprehensive iOS test script overhaul with context-aware deeplink testing
* Add complete iOS platform cleanup and reset on each test run
* Implement interactive deeplink testing with keyboard controls between tests
* Add context awareness to verify app is running and in foreground
* Improve error handling and diagnostic messaging throughout
* Auto-register URL schemes and verify app state for reliable testing
Include prerequisites check for Xcode, CocoaPods and simulator availability
* Include prerequisites check for Xcode, CocoaPods and simulator availability
2025-03-18 00:34:17 -07:00
Matthew Raymer 71cdca3935 Merge branch 'deep_linking' 2025-03-17 03:01:53 +00:00
Matthew Raymer 309fa8f9b1 feat: Add comprehensive iOS test runner with deeplink testing
- Add test-ios.js script for iOS build and test automation
- Add simulator detection and validation
- Add CocoaPods dependency handling
- Add iOS deeplink testing with xcrun simctl
- Add detailed build logging for iOS tests

The changes improve iOS testing by:
1. Automating iOS build and test process
2. Adding structured logging to build_logs directory
3. Supporting deeplink testing in iOS simulator
4. Validating iOS development environment
5. Matching Android test capabilities

Technical details:
- Uses xcodebuild for building and testing
- Handles simulator device detection
- Supports all deeplink test cases
- Provides detailed error reporting
- Maintains test logs for debugging
2025-03-13 08:48:47 +00:00
Matthew Raymer d1fa36f896 feat: Add comprehensive Android test logging and build tracking
- Add build_logs directory for tracking Android build output
- Add Android generated assets to gitignore
- Improve test logging with timestamps and build context
- Add detailed error reporting for build and test failures
- Add proper cleanup of Android build artifacts

The changes improve Android testing by:
1. Tracking build history in build_logs directory
2. Providing detailed build context for debugging
3. Cleaning up generated assets properly
4. Improving error reporting and traceability
5. Adding structured logging for test execution

Added:
- build_logs/ directory for build history
- Android assets cleanup in .gitignore
- Detailed build and test logging
2025-03-13 08:02:03 +00:00
Matthew Raymer 4e3a0ee75f feat: Add comprehensive mobile testing infrastructure
- Add test scripts for Android and iOS platforms
- Create prerequisite checker for mobile development setup
- Add device/simulator availability checks
- Update test-all command to include mobile tests
- Add granular test commands for web and mobile

The changes improve testing by:
1. Adding structured mobile test runners
2. Validating development environment setup
3. Separating web and mobile test flows
4. Adding device availability checks
5. Providing detailed test documentation

Added scripts:
- check-prerequisites.js: Validates dev environment
- test-android.js: Runs Android tests
- test-ios.js: Runs iOS tests
- run-available-mobile-tests.js: Smart platform detection
2025-03-12 08:33:29 +00:00
Matthew Raymer e4619f2943 Cleanup 2025-03-12 07:24:25 +00:00
Matthew Raymer 1a6c7b4b1b feat: Add Fastlane configuration for mobile app deployment
- Add Fastlane scripts for iOS and Android beta/release
- Remove DID generator scripts in favor of mobile deployment
- Update .gitignore for Fastlane artifacts and reports
- Remove Android test results and build artifacts
- Increase deep link test timeout for better reliability

The changes improve mobile deployment by:
1. Adding automated deployment pipelines for iOS/Android
2. Cleaning up build artifacts from version control
3. Improving test reliability with longer timeouts
4. Removing unused DID generator scripts
5. Adding proper gitignore rules for mobile builds
2025-03-12 07:22:35 +00:00
Matthew Raymer c9536dd643 refactor: Replace console logging with logger utility
- Add logger import across multiple view components
- Replace console.error/warn/log with logger methods
- Update error handling to use structured logging
- Improve type safety for error objects
- Add crypto-browserify polyfill for browser environment

The changes improve logging by:
1. Using consistent logging interface
2. Adding structured error logging
3. Improving error type safety
4. Centralizing logging configuration
5. Fixing browser compatibility issues

Affected files:
- Multiple view components
- vite.config.ts
- Build configuration
2025-03-11 09:35:55 +00:00
Matthew Raymer 515bb38db4 Merge branch 'master' into deep_linking
chore: Clean up merge conflicts in documentation files

- Resolve merge conflicts in BUILDING.md and CHANGELOG.md
- Remove duplicate entries in documentation
- Fix formatting inconsistencies from merge
- Maintain consistent documentation style
- Clean up git diff markers

The cleanup improves documentation by:
1. Resolving all merge conflicts
2. Ensuring consistent formatting
3. Removing duplicate content
4. Maintaining documentation standards
5. Preserving change history
2025-03-11 04:05:24 +00:00
Matthew Raymer 29d61d2a75 refactor: Improve ConfirmGiftView component organization and error handling
- Split loadClaim into focused methods for better separation of concerns
- Add proper error handling and error messages
- Add JSDoc comments for all methods
- Extract URL parameter handling into dedicated method
- Improve gift confirmation and sharing workflows

The changes improve code maintainability by:
1. Breaking down monolithic methods into smaller, focused functions
2. Adding clear error handling and user feedback
3. Improving method documentation with JSDoc
4. Separating data fetching from processing logic
5. Making component behavior more predictable
2025-03-10 10:50:50 +00:00
Matthew Raymer 7d60b80bba docs: Add JSDoc comments to DIDView methods
- Add detailed JSDoc comments for all methods in DIDView
- Improve method descriptions and parameter documentation
- Group related methods with descriptive comments
- Add return type documentation where applicable
- Clarify method purposes and side effects

The changes improve code documentation by:
1. Adding clear method descriptions
2. Documenting parameters and return types
3. Explaining method behaviors and side effects
4. Grouping related functionality
5. Making code more maintainable
2025-03-10 07:01:05 +00:00
Matthew Raymer 167e131da5 chore: added ios and android to ignore 2025-03-10 03:39:42 +00:00
Matthew Raymer 4e0c88b85f chore: Remove folders 2025-03-10 03:38:24 +00:00
Matthew Raymer 46b0c0e7d4 documentation: update Android build 2025-03-10 03:21:29 +00:00
Matthew Raymer 362961353e chore: add android/ios to gitignore 2025-03-10 03:18:31 +00:00
Matthew Raymer 023804fa12 chore: updated package-lock and added a README for the test scripts. 2025-03-09 11:10:48 +00:00
Matthew Raymer ddcf674b94 Experimental DID creation and registration 2025-03-05 06:30:32 +00:00
Matthew Raymer 3b07164d99 Merge branch 'deep_linking' of ssh://173.199.124.46:222/trent_larson/crowd-funder-for-time-pwa into deep_linking 2025-03-05 06:08:54 +00:00
Matthew Raymer 46f6268e5b refactor: Improve settings and feed handling in HomeView
- Split feed initialization into separate methods
- Add registration status verification
- Improve error handling and notifications
- Add JSDoc comments for better code documentation
- Make apiServer optional in settings type

The changes improve code organization by:
1. Breaking down monolithic initialization into focused methods
2. Adding proper type safety for optional settings
3. Improving error handling and user feedback
4. Adding clear documentation for methods
5. Separating concerns for feed, contacts and registration
2025-03-05 06:08:08 +00:00
Matthew Raymer 9c2ff01302 fix: WIP: Update test scripts for DID verification and claim generation
- Add check-did.sh to verify DID registration using admin JWT auth
- Fix JWT signing in generate-test-claim.sh to match uport-credentials format
- Clean up DID extraction in run-deeplink-tests.sh
- Add proper error handling and response parsing

The changes improve test script reliability by:
1. Using consistent JWT signing across scripts
2. Adding ability to verify DID registration status
3. Simplifying DID info extraction
4. Adding better error messages and debug output
2025-03-04 10:20:14 +00:00
Matthew Raymer 5c09b46ec3 fix: Implement proper JWT signing in test claim generator
- Add ES256K signature generation for test claims
- Fix signature format to match endorser.ch requirements
- Remove dependency on did_generator.sh for signing
- Improve JWT creation with proper header and payload structure

The changes fix JWT verification issues by:
1. Implementing proper DER to R+S signature conversion
2. Handling secp256k1 private key formatting correctly
3. Using correct base64url encoding for JWT components
4. Adding proper issuer field to JWT payload
2025-03-04 09:12:47 +00:00
Matthew Raymer fb10d7ba0a feat: Improve test scripts for deep link testing
- Add DID generation and management for testing
- Create .generated directory for test artifacts
- Add environment variable support for test configuration
- Improve deep link test script with better URL handling
- Add print/execute modes for testing with/without device

The changes improve the testing workflow by:
1. Generating and managing test DIDs automatically
2. Storing test artifacts in .generated directory (gitignored)
3. Adding proper URL encoding for deep links
4. Supporting both print mode for debugging and execute mode for device testing
5. Adding better error handling and validation
2025-03-04 09:01:05 +00:00
Matthew Raymer a4279fab34 feat: Add environment variable support for DID registration
- Bash implementation of DID creation-registration
- Move admin credentials to .env file for better security
- Add .env.example with default values
- Add dotenv support to TypeScript, Python and Bash implementations
- Update dependencies to include dotenv packages
- Fix JWT signature format in Bash implementation
- Add DER signature parsing for ES256K in Bash script

The admin DID and private key can now be configured via environment
variables, with fallback to default values if not set. This allows
for easier testing and deployment across different environments.
2025-03-04 06:27:20 +00:00
Matthew Raymer 48c749a804 feat: Improve DID registration with admin credentials
- Add admin keypair (DID + private key) for proper registration signing
- Remove SQLite database dependency for admin DID lookup
- Update both TypeScript and Python implementations to use admin credentials
- Enhance documentation with detailed usage, options, and security notes
- Fix JWT signing to use admin's key as issuer
- Standardize API URL handling with defaults
- Add command-line options for admin DID and API URL override

Both implementations now successfully register new DIDs using the admin's
credentials to sign the registration claims. The admin acts as both the
agent in the claim and the issuer of the JWT.
2025-03-04 05:59:10 +00:00
Matthew Raymer 053306217e feat(test-scripts): add registration attempt to TypeScript DID generator
- Added registration attempt to TypeScript DID generator to match Python version
- Added node-fetch and types for HTTP request
- Both scripts now show same UNREGISTERED_USER error from server
- Cleaned up package.json devDependencies formatting
2025-03-03 10:43:42 +00:00
Matthew Raymer bf23c56475 refactor: extract ActivityListItem into separate component
- Move activity list item markup from HomeView to new component
- Improve code organization and reusability
- Pass required props for claim handling and image viewing
- Maintain existing functionality while reducing component complexity
- Clean up unused commented code in HomeView

This refactor improves code maintainability by extracting the activity
feed item logic into its own component.
2025-02-28 09:34:59 +00:00
Matthew Raymer 03178d35e7 refactor: improve router type safety and usage
- Add explicit Router type imports across views
- Replace $router type casting with proper typing
- Use $router.back() instead of $router.go(-1) for consistency
- Add proper route and router typings to components
- Clean up router navigation methods
- Fix router push/back method calls

This commit improves type safety and consistency in router usage across
the application's view components.
2025-02-26 06:50:08 +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 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
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
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
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