Commit Graph

108 Commits

Author SHA1 Message Date
Matthew Raymer
a4c44ff052 feat: Add database migration tools and fix Electron integration
- Add comprehensive IndexedDB to SQLite migration service (1,397 lines)
- Create migration UI with progress tracking and validation (1,492 lines)
- Fix Electron TypeScript compilation and SQLite plugin issues
- Expand migration system with detailed documentation and error handling
- Add development guide and coding standards

Resolves: #electron-startup #database-migration #typescript-errors
Impact: Enables user-friendly database migration with full data verification
2025-07-01 03:47:32 +00:00
Matthew Raymer
aa40ef23dc feat: Add Electron dependencies and development scripts
- Added Electron dependencies to package.json:
  * @capacitor-community/electron ^5.0.1
  * electron-builder ^26.0.12
  * better-sqlite3-multiple-ciphers ^12.1.1
  * electron-json-storage ^4.6.0

- Added Electron development scripts:
  * electron:dev - Build and run Electron in development mode
  * electron:setup - Initialize Electron environment
  * electron:dev-full - Full development workflow script

- Updated .gitignore to exclude sql-wasm.wasm file

- Updated package-lock.json with new dependency resolutions

Note: Main app source files (router, platform service, views) also
have minor modifications from previous development work
2025-06-26 08:10:06 +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
ebc241eba0 WIP: restore database migration system and improve error handling
- Restore runMigrations functionality for database schema migrations
- Remove indexedDBMigrationService.ts (was for IndexedDB to SQLite migration)
- Recreate migrationService.ts and db-sql/migration.ts for schema management
- Add proper TypeScript error handling with type guards in AccountViewView
- Fix CreateAndSubmitClaimResult property access in QuickActionBvcBeginView
- Remove LeafletMouseEvent from Vue components array (it's a type, not component)
- Add null check for UserNameDialog callback to prevent undefined assignment
- Implement extractErrorMessage helper function for consistent error handling
- Update router to remove database-migration route

The migration system now properly handles database schema evolution
across app versions, while the IndexedDB to SQLite migration service
has been removed as it was specific to that one-time migration.
2025-06-23 08:25:10 +00:00
a12a7b87e3 Merge branch 'migrate-dexie-to-sqlite' 2025-06-20 11:49:51 -06:00
c1eb242616 add first cut at deep-link redirecting, with one example contact-import that works on mobile 2025-06-18 13:16:17 -06:00
Matthew Raymer
9787763e4b feat: Add comprehensive Database Migration UI component
- Create DatabaseMigration.vue with vue-facing-decorator and Tailwind CSS
- Add complete UI for comparing and migrating data between Dexie and SQLite
- Implement real-time loading states, error handling, and success feedback
- Add navigation link to Account page for easy access
- Include export functionality for comparison data
- Create comprehensive documentation in doc/database-migration-guide.md
- Fix all linting issues and ensure code quality standards
- Support both contact and settings migration with overwrite options
- Add visual difference analysis with summary cards and detailed breakdowns

The component provides a professional interface for the migrationService.ts,
enabling users to safely transfer data between database systems during
the transition from Dexie to SQLite storage.
2025-06-18 11:19:34 +00:00
6e005de65a remove unused redirect to start page (now that we're creating an ID up front) 2025-05-26 16:29:10 -06:00
Matt Raymer
10df60316a Remove ContactScanView and rename ContactQRScanView to ContactQRScanFullView
- Deleted ContactScanView.vue and its route from the router.
- Renamed ContactQRScanView.vue to ContactQRScanFullView.vue.
- Updated all router paths, names, and references for consistency.
- Fixed related links and imports to use the new view/component name.
2025-05-21 05:17:25 -04:00
Matt Raymer
21d9126811 Remove ContactScanView and update QR scan view naming for consistency
- Deleted ContactScanView.vue and removed its route from the router
- Renamed ContactQRScanView.vue to ContactQRScanFullView.vue
- Updated all router paths, names, and references to use 'contact-qr-scan-full'
- Updated related router links in ContactQRScanShowView.vue for consistency
- Ensured all naming and routing is consolidated and matches the new view/component name
2025-05-21 04:16:58 -04:00
Jose Olarte III
504f671aa2 New contact QR scan view for Capacitor version 2025-05-01 21:32:15 +08:00
65e4ddb832 add LogView for those cases where the log download doesn't work 2025-03-22 15:15:17 -06: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
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
73637d80dc refactor: move ProviderInfo interface to claims-result.ts
- Move ProviderInfo interface from ClaimView.vue to claims-result.ts
- Add JSDoc documentation to interface properties
- Update imports in ClaimView.vue
- Clean up route handling using vue-router types
- Remove outdated browser compatibility comment

This improves type organization and documentation while reducing
component-level interface definitions.
2025-02-25 09:03:18 +00: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
ec1f50af69 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
d8c1a84cfe WIP (fix): improve electron build configuration and service worker handling
- Properly disable service workers in electron builds
- Add CSP headers for electron security
- Fix path resolution in electron context
- Improve preload script error handling and IPC setup
- Update build scripts for better electron/capacitor compatibility
- Fix router path handling in electron context
- Remove electron-builder dependency
- Streamline build process and output structure

This change improves the stability and security of electron builds while
maintaining PWA functionality in web builds. Service workers are now
properly disabled in electron context, and path resolution issues are
fixed.
2025-02-12 13:17:25 +00:00
Matthew Raymer
52cbe81f23 (chore): merge mostly pathway changes 2025-02-06 13:34:48 +00:00
6a070a1715 fix linting (and change a little wording in onboarding page) 2025-02-03 16:36:13 -07:00
3a56d83dd6 add onboarding pages for the list and members, and refine the setup 2025-02-03 12:18:13 -07:00
Matthew Raymer
2a7178db53 Merge changes 2025-02-03 13:27:36 +00:00
5943df756a make screen where user can create a group onboarding meeting 2025-02-02 17:06:51 -07:00
6c1cdd3bfd fix a jump on user profile map move & recenter 2025-01-21 19:51:58 -07:00
59b433830d add page for user profile view and update endpoints; rename any "rowid" to "rowId" 2025-01-20 12:43:05 -07:00
Matthew Raymer
6903a02df6 Merge fixes 2025-01-11 12:45:43 +00:00
Matthew Raymer
ff4e23517b Multi-build support; tested successfully for Electron 2025-01-07 09:40:31 +00:00
Matthew Raymer
8b77d2b573 Refatored vite.config to be a bit more streamlined before adding alternate build options. This did end up requiring me to remove @ from imports for some reason. Tests came out fine. 2025-01-05 08:38:15 +00:00
d4bb2a35fc add a contact-edit page and allow saving of notes 2025-01-04 16:35:05 -07:00
e286a8f002 change the contact-sharing data into a JWT for the contact-import page 2024-12-23 20:07:14 -07:00
124ff65aa2 add copy-link on the claim view page & enable certificate 2024-12-18 16:31:27 -07:00
156950c7f0 add invite-one-accept screen dedicated to accepting invitations 2024-12-13 13:27:22 -07:00
af197f7c11 catch more errors if something catastrophic happens to encrypted data 2024-12-10 20:02:49 -07:00
251649e6fe switch the encryption secret from localStorage to IndexedDB (because localStorage gets lost so often) 2024-12-08 19:34:31 -07:00
2b802f01f8 add page for a printable certificate (which works but isn't too impressive yet) 2024-12-01 20:20:03 -07:00
15e09c2d81 change the notification detection to our own variables, and save the selected time 2024-11-20 19:55:51 -07:00
c004706425 add pages to see all the offers to user and offers to user's projects 2024-11-05 19:03:12 -07:00
4168c37074 add large notice when user has a new offer to them 2024-11-03 10:39:28 -07:00
1bfdcab90b add page for one-on-one invites (incomplete) 2024-10-05 18:35:59 -06:00
f2cb7d3ed8 prompt for name when showing info, and provide a "copy" page when remote 2024-08-23 20:06:50 -06:00
f38edff942 allow editing of an offer 2024-08-17 19:59:02 -06:00
6b4b3642f9 record some info on my attempt to test a service worker 2024-08-10 20:09:49 -06:00
4472c3fbdd import & update selected contacts 2024-07-26 19:12:12 -06:00
053ee4a748 add advanced page & flag for editing raw claims, and fix recipient assignment in detail screen 2024-06-29 10:18:56 -06:00
230773a917 add Confirm Gift screen for simpler confirmation 2024-06-20 20:52:26 -06:00
7f02ba29a3 add a share_target for people to add a photo 2024-05-10 13:17:20 -06:00
e2df848e96 add page to view all claims about a DID (which we'll have to restrict to visible people soon) 2024-04-26 20:13:44 -06:00
22cba5babf Merge remote-tracking branch 'original-origin/master' into feat/vitejs-trent 2024-04-07 09:41:14 -06:00
e43c45ebea add onboarding help instructions as separate page 2024-03-24 17:01:53 -06:00
ef5f81932d Initial stab at vitejs update 2024-03-24 11:18:29 -06:00