Commit Graph

10 Commits

Author SHA1 Message Date
e07da3ffe1 fix: Change some build instructions to include BUILD_MODE, and other script tweaks 2025-08-14 08:26:46 -06:00
Matthew Raymer
c27caf8887 Fix build script to fail on TypeScript errors
Update measure_time function to properly handle command exit codes:
- Check command success/failure and return appropriate exit code
- Log failure messages with timing and exit code information
- Ensure TypeScript type checking failures stop the build process
- Maintains timing logs for both success and failure cases

This prevents deployment of code with TypeScript type errors by making
test and production builds fail fast when tsc --noEmit reports issues.
2025-08-06 03:10:17 +00:00
Matthew Raymer
974d33b322 Document environment variable precedence and API configuration scheme
Add comprehensive documentation explaining the order of precedence for
environment variables in TimeSafari project. Covers shell script overrides,
platform-specific configurations, .env file usage, and API alignment between
claim and partner APIs. Includes troubleshooting guide and best practices
for maintaining consistent environment configuration across development,
test, and production environments.
2025-08-05 11:51:48 +00:00
Matthew Raymer
32f589b866 Fix Android emulator API connectivity with cleaner build script approach
- Move Android-specific API server logic from common.sh to build-android.sh
- Remove unnecessary ANDROID_BUILD environment variable
- Set localhost:3000 as default in common.sh for all Capacitor builds
- Override to 10.0.2.2:3000 specifically in build-android.sh for Android development
- Fix execution order issue where common.sh ran before ANDROID_BUILD was set
- Maintain proper separation: Android emulator uses 10.0.2.2, iOS simulator uses localhost
2025-08-05 09:08:50 +00:00
Matthew Raymer
e789e9dfb2 Configure API server endpoints for iOS/Android development builds
Updated scripts/common.sh to set appropriate API server endpoints based on build mode:
- Development: localhost:3000 for Endorser API, production for Image/Partner APIs
- Test: test-api.endorser.ch for Endorser API, production for Image/Partner APIs
- Production: All production endpoints

This ensures mobile builds use correct API endpoints for each environment
while keeping Image and Partner APIs on production servers for dev/test.
2025-07-28 07:40:17 +00:00
Matthew Raymer
6d4fb4f57a Remove manual service worker registration; rely on VitePWA auto-registration
- Deleted src/registerServiceWorker.ts and all related imports
- Cleaned up WebPlatformService and main.web.ts to remove manual SW logic
- Updated VitePWA config for correct dev/prod SW handling
- Fixed missing FontAwesome download icon in PWA prompt
- Updated docs to reflect new PWA registration approach

PWA now works reliably in all web environments with zero manual SW code.
2025-07-15 06:13:33 +00:00
Matthew Raymer
292aceee75 # Commit Message for SharedArrayBuffer Platform Exclusion
fix: eliminate SharedArrayBuffer checks on non-web platforms

* Add platform guard in AbsurdSqlDatabaseService to only initialize on web
* Change singleton pattern from eager to lazy instantiation
* Update worker import to use lazy singleton pattern
* Prevents absurd-sql initialization on Electron/Capacitor platforms
* Reduces console noise and memory footprint on desktop/mobile
* Maintains full web platform functionality and performance

Resolves SharedArrayBuffer-related console output on Electron platform
while preserving all web features and maintaining clean architecture.
2025-07-03 05:15:57 +00:00
Matthew Raymer
812c91502e feat: Add comprehensive Electron build script and automation
- Create build-electron.sh script following build-android.sh patterns
- Add support for multiple build modes: dev, package, appimage, deb
- Implement comprehensive error handling with specific exit codes
- Add proper logging and step-by-step build process tracking
- Include built-in help system and verbose logging options

Build Script Features:
- Development builds that compile and launch Electron app
- Package builds for creating distributable applications
- Support for AppImage and Debian package generation
- Automatic cleanup of previous builds and artifacts
- TypeScript compilation with proper error handling
- Capacitor sync and asset generation integration

NPM Script Integration:
- Add build:electron for development builds
- Add build:electron:package for distributable packages
- Add build:electron:appimage for AppImage packages
- Add build:electron:deb for Debian packages
- Add clean:electron for build artifact cleanup

Common Utilities Enhancement:
- Extend setup_build_env() to support 'electron' build type
- Configure proper environment variables for Electron builds
- Maintain consistency with existing build infrastructure

This provides a complete, automated build solution for Electron
that matches the quality and functionality of the Android build
system, enabling reliable cross-platform desktop application builds.
2025-06-27 10:09:16 +00:00
Matthew Raymer
ea0f49d5c3 WIP: add Electron platform configuration to Capacitor
- Add electron platform section to capacitor.config.json
- Configure deep linking with timesafari:// scheme
- Set up build options for macOS, Windows, and Linux
- Configure output directory and file inclusion
- Add platform-specific build targets (DMG, NSIS, AppImage)
- Support both x64 and arm64 architectures for macOS
- Set appropriate app categories for each platform

This enables building TimeSafari as a native desktop application
using Capacitor's Electron platform while maintaining existing
mobile and web functionality.
2025-06-25 12:50:46 +00:00
Matthew Raymer
94ac7d648d migration: move to bash based build scripts 2025-06-24 11:11:33 +00:00