Commit Graph
100 Commits
Author SHA1 Message Date
Matthew Raymer 4230deab1d fix: Improve Electron application stability and asset handling
- Completely rewrite main.js for reliable asset loading
- Update preload.js with proper security context isolation
- Fix file:// protocol handling for application resources
- Add proper error logging and reporting in Electron context
- Disable service workers in Electron environment
- Fix path resolution for assets in packaged application
- Add prerequisite checking for Electron builds
- Update electron-builder configuration

The changes resolve persistent issues with:
1. Missing assets in packaged application
2. Incorrect path resolution in production builds
3. Service worker conflicts in desktop environment
4. Security context handling in preload script
5. Electron build process reliability
2025-03-17 07:18:06 +00:00
Matthew Raymer 683e85f5be Merge branch 'deep_linking' 2025-03-17 03:01:53 +00:00
Matthew Raymer a215b1de72 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 d1acfb3c49 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 6773f512b9 Remove android/app/src/main/assets/public/assets/ from git tracking 2025-03-13 07:50:14 +00:00
Matthew Raymer 611d318a7a 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 2fbd42def5 Cleanup 2025-03-12 07:24:25 +00:00
Matthew Raymer 9c8bf7997f 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 e0aded04b4 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 8cae601148 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 93219219ba 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 02d6d220c7 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 22de70a77d chore: added ios and android to ignore 2025-03-10 03:39:42 +00:00
Matthew Raymer d6bf89ba57 chore: Remove folders 2025-03-10 03:38:24 +00:00
Matthew Raymer b55b786738 documentation: update Android build 2025-03-10 03:21:29 +00:00
Matthew Raymer 879c00bd97 chore: add android/ios to gitignore 2025-03-10 03:18:31 +00:00
Matthew Raymer 6cb1482b5f chore: updated package-lock and added a README for the test scripts. 2025-03-09 11:10:48 +00:00
Matthew Raymer bfd1aee27c Experimental DID creation and registration 2025-03-05 06:30:32 +00:00
Matthew Raymer 2424d788d1 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 d14431161a 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 bc971056e1 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 69b4b899c9 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 02747fb771 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 3dae8f7f7f 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 9e6f0ab468 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 4fcbb78450 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 f6802cd160 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 a8e15804a6 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 caabaa3257 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 e2b7797e2d chore: add new playwright test results to .gitignore 2025-02-17 05:43:21 +00:00
Matthew Raymer a66093028e 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 f07a2de565 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 a5c86fbc53 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 11d1fae35a 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 8eabf76f56 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 fa15f7da85 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 1045266310 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 12025d6f21 chore: update in preparation for production mode 2025-02-13 07:29:08 +00:00
Matthew Raymer 16bc47921d chore: linting for build 2025-02-13 06:59:06 +00:00
Matthew Raymer 9a966ef04d 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 de017d1a71 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
Matthew Raymer a288496dcf docs: enhance BUILDING.md with environment and deployment details
- Add environment configuration section with .env templates for dev/test/prod
- Add deployment instructions for test and production servers
- Add version management workflow steps
- Add troubleshooting section for common build issues
- Improve documentation organization and completeness
2025-02-13 04:53:40 +00:00
Matthew Raymer 4e0f9235cd docs: move build instructions from README to BUILDING.md
- Move detailed setup and build instructions from README.md to BUILDING.md
- Add concise reference to BUILDING.md in README.md
- Keep testing and other documentation in README.md
- Improve organization of documentation by separating build-specific content
2025-02-13 04:48:18 +00:00
Matthew Raymer e6138bd0e2 fix: improve electron asset path handling
- Add extraResources config to package.json to properly include www directory
- Update path rewriting in build-electron.js to handle all asset types
- Fix modulepreload and stylesheet paths in index.html
- Improve path handling in main.js for packaged app
- Clean up file protocol handling and service worker management

This fixes the issue with assets not loading in the packaged Electron app
by ensuring all paths are correctly rewritten to reference the www directory
in the app resources.
2025-02-12 07:47:18 +00:00
Matthew Raymer 47a28ff7ad commit working index.html 2025-02-12 06:46:16 +00:00
Matthew Raymer 562b27851c feat(electron): improve electron build configuration
- Add dedicated electron build scripts for each platform
- Configure Vite rollup options for electron builds
- Update electron-builder configuration with proper app metadata
- Add clean script and rimraf dependency
- Set proper appId and build settings for production builds
- Enable asar packaging for better security
2025-02-12 03:44:05 +00:00
Matthew Raymer b1ba3935e6 docs: add comprehensive build instructions for all platforms
Add detailed build instructions for web, desktop (Electron), and mobile
(Capacitor) platforms. Include prerequisites, setup steps, and platform-specific
build commands. Add sections for testing, linting, and development workflows.
Document build output directories and PWA features.
2025-02-11 07:33:49 +00:00
Matthew Aaron Raymer 1ee6203f4c Small package update 2023-12-01 17:14:17 +08:00
Matthew Aaron Raymer d93299c352 Update worker dependencies 2023-12-01 17:04:14 +08:00
Matthew Aaron Raymer 9aea7a576d Merging the workflow 2023-12-01 17:03:19 +08:00
Matthew Aaron Raymer 7f0f1b7fc8 Merging changes 2023-11-08 14:47:48 +08:00
Matthew Raymer cfc4d0a947 Updates package file 2023-11-07 21:12:49 +08:00
Matthew Raymer a820a7b131 Minor formatting changes 2023-11-07 21:01:37 +08:00
Matthew Raymer 082a6eae1f Refactor db setup a bit 2023-10-16 18:49:18 +08:00
Matthew Raymer 2c4a920c3c Updates for web push workflow 2023-09-08 21:04:50 +08:00
Matthew Raymer ed91cadd9d Added permission step; UI workflow documentation 2023-09-07 20:42:15 +08:00
Matthew Raymer a6de282aec Another upgrade of package.json 2023-09-07 18:31:55 +08:00
Matthew Raymer 3bbb138299 Merge branch 'new-web-push' of ssh://173.199.124.46:222/trent_larson/kick-starter-for-time-pwa into new-web-push 2023-09-07 18:09:50 +08:00
Matthew Raymer 5b5c631001 Fix typing errors from the refactoring 2023-09-07 18:07:53 +08:00
Matthew Raymer 2fba7f2a55 Merge branch 'new-web-push' of ssh://173.199.124.46:222/trent_larson/kick-starter-for-time-pwa into new-web-push 2023-09-06 20:49:23 +08:00
Matthew Raymer 31d13b9143 Refactoring for cleanup 2023-09-06 20:46:16 +08:00
Matthew Raymer 852bd93f3f New branch for cleanup and web push 2023-09-05 21:25:04 +08:00
Matthew Raymer fd43da93a5 A whole lot of cleaning going on 2023-09-04 20:44:00 +08:00
Matthew Raymer 5501ac1a2f Many fixes -- especially and endorserServer 2023-09-03 21:08:30 +08:00
Matthew Aaron Raymer b514d64068 Type fixes 2023-09-02 18:15:30 +08:00
Matthew Aaron Raymer c4537420b4 Merge branch 'search-bbox' of ssh://173.199.124.46:222/trent_larson/kick-starter-for-time-pwa into search-bbox 2023-09-02 17:09:58 +08:00
Matthew Aaron Raymer 5f50338dd0 We have to remove the decorator in package -- it breaks install 2023-09-02 17:09:41 +08:00
Matthew Raymer 3f7bcbfd76 Added unsubscribe and mute 2023-08-28 19:57:47 +08:00
Matthew Aaron Raymer f1b3094026 Added a bit more of the workflow on the client side 2023-08-26 16:27:43 +08:00
Matthew Raymer e5ad87f4d5 Updates to web push guide 2023-08-25 21:45:55 +08:00
Matthew Raymer 7de6171911 Notes on service worker for development of web push 2023-08-24 21:21:15 +08:00
Matthew Raymer bb6bacac97 Some notes on web-push nuts and bolts 2023-08-24 21:01:31 +08:00
Matthew Raymer 40fc6a29a4 Small fix 2023-08-24 18:49:06 +08:00
Matthew Raymer 9ec19fa4ee Added a quick fix to console signing. Need to edit text later 2023-08-24 18:46:33 +08:00
Matthew Aaron Raymer bfd2498906 Merge branch 'master' of ssh://173.199.124.46:222/trent_larson/kick-starter-for-time-pwa 2023-08-07 16:33:47 +08:00
Matthew Aaron Raymer 4933017e9c Merge remote-tracking branch 'origin/cleanup-and-qr-code' 2023-08-07 16:33:37 +08:00
Matthew Aaron Raymer 18c23451bb Merge remote-tracking branch 'origin/contact-amounts-ui-improvements' 2023-08-07 16:10:34 +08:00
Matthew Aaron Raymer 304985f88d Merge remote-tracking branch 'origin/polish-ui-project-view' 2023-08-07 16:08:48 +08:00
Matthew Aaron Raymer 9a41aff8f0 Merge remote-tracking branch 'origin/jdenticon-entity-photos' 2023-08-07 15:59:47 +08:00
Matthew Aaron Raymer e19cd980b4 Merging with corrections 2023-08-07 15:54:06 +08:00
Matthew Raymer c4443f2ed1 Added error handling and new alerts in DiscoverView 2023-07-20 16:36:33 +08:00
Matthew Raymer c502869c5f Add button with gift icon for future dialog 2023-07-19 18:41:12 +08:00
Matthew Raymer b7aacd63e6 Add and edit project tasks list 2023-07-19 18:26:59 +08:00
Matthew Raymer 5bc0e27b30 Use a DID instead of a name ... this may need some better design on the dialog @jose 2023-07-19 18:25:58 +08:00
Matthew Raymer a4fe94f081 Add a back arrow 2023-07-19 18:25:03 +08:00
Matthew Raymer 8de95566df Cleaning up this page to switch to GiftedDialog 2023-07-19 18:23:55 +08:00
Matthew Raymer 97569697f6 * show DID if no name
* hide no contacts when there are no contacts
* replace contact property with giver (? can you have another contact give you something ?)
2023-07-19 18:22:35 +08:00
Matthew Raymer b9ed9d748b Only project owner may see edit button of a project 2023-07-19 18:19:29 +08:00
Matthew Raymer 790d44db81 Remove the stub context menu causing vertical ellipsis 2023-07-19 16:30:56 +08:00
Matthew Raymer 6e3066ae92 Stub update of project task list 2023-07-18 21:04:48 +08:00
Matthew Raymer e8eae544f3 Merge remote-tracking branch 'origin/no-accounts-in-memory' 2023-07-18 18:50:55 +08:00
Matthew Raymer 47ade49e31 Cleanup after some testing 2023-07-14 20:29:38 +08:00
Matthew Raymer 4ecea1ab0e Add a special page for seeing all contacts to gift 2023-07-14 18:12:39 +08:00
Matthew Raymer b9fdc920ea Remove the old identity management. Update project tasks 2023-07-13 18:13:41 +08:00
Matthew Aaron Raymer 0907d59a6a Remove form tags 2023-07-13 16:06:09 +08:00
Matthew Raymer f428199228 Redirect to account tab after switching identity 2023-07-12 19:12:31 +08:00
Matthew Raymer 1405b88323 Functional Identity Management 2023-07-12 18:47:21 +08:00
Matthew Raymer 52d411470e Send back to Jose for some list magic 2023-07-12 16:11:35 +08:00
Matthew Raymer 7a4ceaa455 Adding Identity Management stubs 2023-07-12 15:16:07 +08:00
Matthew Raymer 1d362c314b Beginning of integration. Seems the data coming back from local and remote are different? 2023-07-11 18:31:58 +08:00