Commit Graph

1845 Commits

Author SHA1 Message Date
9760f02aab fix linting 2025-06-07 17:19:01 -06:00
987f9217de Merge branch 'sql-absurd-sql-back' 2025-06-07 17:18:10 -06:00
5cbb42ff4f Merge branch 'search-map-fix' 2025-06-07 16:43:49 -06:00
a694d0dba3 update messaging for unknown icons on home feed 2025-06-07 16:23:07 -06:00
737c8c4fa7 fix verbiage and fix the contact actions to be on the right-hand side 2025-06-07 16:03:47 -06:00
b2628c467f fix linting 2025-06-07 15:40:52 -06:00
d5501d9db1 fix a non-existent description, move the description right below the image 2025-06-07 15:33:29 -06:00
9de09b1d75 remove unnecessary data element from export 2025-06-07 14:02:22 -06:00
Matthew Raymer
92e70b1ed7 fix(import): ensure contact import works for both Dexie and absurd-sql backends
- Refactor importContacts to handle both Dexie and absurd-sql (SQLite) storage
- Add ContactDbRecord interface with all string fields strictly typed (never null)
- Add helper functions to coerce null/undefined to empty string for all string fields
- Guarantee contactMethods is always stored as a JSON string (never null)
- Add runtime validation for required fields (e.g., did)
- Ensure imported/updated contacts are type-safe and compatible with both backends
- Improve code documentation and maintainability

Security:
- No sensitive data exposed
- All fields validated and sanitized before database write
- Consistent data structure across storage backends

Testing:
- Import tested with both Dexie and absurd-sql backends
- Null/undefined fields correctly handled and coerced
- No linter/type errors remain
2025-06-07 06:01:17 +00:00
Matthew Raymer
b9223d7fe2 feat(export): Replace CSV export with standardized JSON format
- Add contactsToExportJson utility function for standardized data export
- Replace CSV export with JSON format in DataExportSection
- Update file extension and MIME type to application/json
- Remove Dexie-specific export logic in favor of unified SQLite/Dexie approach
- Update success notifications to reflect JSON format
- Add TypeScript interfaces for export data structure

This change improves data portability and standardization by:
- Using a consistent JSON format for data export/import
- Supporting both SQLite and Dexie databases
- Including all contact fields in export
- Properly handling contactMethods as stringified JSON
- Maintaining backward compatibility with existing import tools

Security: No sensitive data exposure, maintains existing access controls
2025-06-07 05:02:33 +00:00
cfb186a04e update a DB save to match others, ie. first SQL then maybe Dexie 2025-06-06 19:50:16 -06:00
60a02259a6 add another way to fix the privacy policy manifest for third parties like GoogleToolboxForMac 2025-06-06 19:45:41 -06:00
c1f4aa0827 format total numbers better 2025-06-06 19:40:53 -06:00
6b515a3197 fix problem finding offer identifiers 2025-06-06 19:06:29 -06:00
Jose Olarte III
3264b44172 Updated icon and splash assets 2025-06-06 18:15:42 +08:00
Jose Olarte III
c056eb1188 Adjusted iOS-specific paddings
- Switched to CSS max() for proper conditional padding when dealing with screens that have a notch, dynamic island, gesture bar, etc.
- Top padding should now appear more compact in iOS
2025-06-06 18:14:56 +08:00
Matthew Raymer
ce9c193a30 feat(db): improve settings retrieval resilience and logging
Enhance retrieveSettingsForActiveAccount with better error handling and logging
while maintaining core functionality. Changes focus on making the system more
debuggable and resilient without overcomplicating the logic.

Key improvements:
- Add structured error handling with specific try-catch blocks
- Implement detailed logging with [databaseUtil] prefix for easy filtering
- Add graceful fallbacks for searchBoxes parsing and missing settings
- Improve error recovery paths with safe defaults
- Maintain existing security model and data integrity

Security:
- No sensitive data in logs
- Safe JSON parsing with fallbacks
- Proper error boundaries
- Consistent state management
- Clear fallback paths

Testing:
- Verify settings retrieval works with/without active DID
- Check error handling for invalid searchBoxes
- Confirm logging provides clear debugging context
- Validate fallback to default settings works
2025-06-06 09:22:35 +00:00
7547e7a5f7 bump to build # 19 version 0.4.7 for mobile packages 2025-06-05 20:30:27 -06:00
3f10833d79 fix SQL references to bad "key" -> "id" 2025-06-05 20:11:32 -06:00
71052e8d9d fix retrieval of column names -- so now most ops are working (but not all, eg. set name) 2025-06-05 20:06:32 -06:00
340bceee31 remove unused DB methods (for now) 2025-06-05 20:00:51 -06:00
ea227fe0b8 fix extraction of values from SQLite queries 2025-06-05 19:57:59 -06:00
4256cbcb61 refactor for clarity (no logic changes) 2025-06-05 18:30:25 -06:00
493438215c fix extraction of migration names for SQLite via Capacitor 2025-06-05 18:13:33 -06:00
8e57692387 fix Capacitor to use the same migrations (migrations run but accounts aren't created) 2025-06-04 22:01:14 -06:00
Jose Olarte III
eeb3485589 Map z-index fix + adjustments
- Set map z-index lower than nav
- Relocated search box to account for conditional visibility
- Various conditional fixes
- Spacing adjustments
2025-06-04 18:41:49 +08:00
705c6092a3 disable SQLite in Java & Swift (since they don't compile) & add SQL queueing on startup
At this point, the app compiles and runs in Android & iOS but DB operations fail.
2025-06-03 19:59:28 -06:00
Jose Olarte III
2137dd2c11 Clickable person & project icons
- Known entities get routed to their corresponding detail views
- Unknown entities pop up a notification
2025-06-02 21:35:15 +08:00
Jose Olarte III
ce2a27f691 Icon for hidden DID entity
- Display EntityIcon for known entities, eye-slash icon for hidden entities, and the person-question icon for unknown entities
- Design tweaks (spacings, mostly)
2025-06-02 17:44:37 +08:00
Matthew Raymer
1d1b37125d merge(master): big merge for qrcode-reboot 2025-06-02 03:57:00 +00:00
fcb41101be add some time to test 30 (but shrink the per-loop timeout) 2025-06-01 15:08:32 -06:00
92e564f7a5 add iOS development team ID 2025-06-01 14:29:32 -06:00
Jose Olarte III
366f5edae4 Look in .own.did for DID, as well 2025-05-30 17:34:50 +08:00
9741b6a3e6 fix linting 2025-05-28 20:30:00 -06:00
c7c7b050af fix more logging cleanup errors 2025-05-28 20:20:09 -06:00
931308f5b5 fix more of the logging & log display 2025-05-28 20:08:09 -06:00
de7ab5c152 fix log cleanup check to actually pay attention to limit 2025-05-28 19:44:16 -06:00
b2cccfb7ef correct & simplify the DB logging 2025-05-28 19:37:01 -06:00
Matthew Raymer
8bcdf86891 fix: one lint that got past me 2025-05-28 14:03:21 +00:00
Matthew Raymer
97027cb025 fix: linting issues 2025-05-28 14:02:02 +00:00
Matthew Raymer
cd47c1014c fix: resolve TypeScript errors in database service implementation
- Remove unnecessary generic type parameter from AbsurdSqlDatabaseService
- Fix type handling in operation queue and result processing
- Correct WebPlatformService dbGetOneRow implementation to use imported databaseService
- Add proper type annotations for database operation results

This commit improves type safety and fixes several TypeScript errors that were
preventing proper type checking in the database service layer.
2025-05-28 13:20:01 +00:00
Matthew Raymer
473a115841 WIP: BROKEN FOR ELECTRON: Fixes in progress 2025-05-28 13:09:51 +00:00
Matthew Raymer
25b269bbfc feat(types): add comprehensive type definitions for @jlongster/sql.js
- Add FileSystem and FileStream interfaces for filesystem operations

- Update Database interface with proper Promise-based return types

- Add QueryExecResult interface for structured query results

- Include FS and register_for_idb in initialization result

- Fix Database constructor to support path and options parameters

- Add proper JSDoc documentation with author and description

This change resolves TypeScript compilation errors in AbsurdSqlDatabaseService by providing complete type coverage for the SQL.js WASM module with filesystem support.
2025-05-28 11:16:56 +00:00
Jose Olarte III
287c2707b2 Look for DID in .iss field instead of .own.did 2025-05-28 19:08:15 +08:00
Matthew Raymer
ceed68db83 WIP: fix(AbsurdSqlDatabaseService) fixes to typing and other curious beasts 2025-05-28 10:56:27 +00:00
Matthew Raymer
df180b1c46 fix: update offerGiverDid to use credentialSubject.offeredBy
The offerGiverDid function was looking for offeredBy at the root level of the
OfferVerifiableCredential, but it was moved to credentialSubject in our interface
changes. This fix updates the function to look in the correct location while
maintaining the same fallback behavior of using the issuer if offeredBy is not
available.

- Update path from claim.offeredBy to claim.credentialSubject.offeredBy
- Remove unnecessary string type cast
- Keep issuer fallback behavior unchanged
2025-05-28 10:41:39 +00:00
Matthew Raymer
6af17c6868 refactor: remove unused imports and parameters in passkeyDidPeer.ts
- Remove unused imports:
  - DIDResolutionResult from did-resolver
  - sha256 from ethereum-cryptography/sha256.js
- Remove unused parameters from verifyJwtP256 and verifyJwtWebCrypto:
  - credIdHex
  - clientDataJsonBase64Url
  - credId

This change improves code cleanliness by removing unused code while
maintaining the core passkey authentication functionality.
2025-05-28 10:37:01 +00:00
Matthew Raymer
2d548bce1c fix: use challenge parameter in verifyJwtWebCrypto preimage
- Remove unused client data hashing in verifyJwtWebCrypto
- Use challenge parameter directly in preimage construction
- Fix TS6133 error for unused challenge parameter
- Make verification logic consistent with verifyJwtP256

This change maintains the same verification logic while properly
utilizing the challenge parameter in the signature verification.
2025-05-28 10:28:57 +00:00
Matthew Raymer
81ef55b2bf fix: use challenge parameter in verifyJwtP256 preimage
- Remove unused client data hashing in verifyJwtP256
- Use challenge parameter directly in preimage construction
- Fix TS6133 error for unused challenge parameter

This change maintains the same verification logic while properly
utilizing the challenge parameter in the signature verification.
2025-05-28 10:27:19 +00:00
Matthew Raymer
86cc2b6d68 fix: resolve TypeScript errors in passkeyDidPeer.ts
- Fix import path for VerifyAuthenticationResponseOpts to use main package
- Add proper type assertions for credential response using AuthenticatorAssertionResponse
- Add back p256 import from @noble/curves/p256
- Remove unused functions marked with @typescript-eslint/no-unused-vars:
  - peerDidToDidDocument
  - COSEtoPEM
  - base64urlDecodeArrayBuffer
  - base64urlEncodeArrayBuffer
  - pemToCryptoKey

This change improves type safety and removes dead code while maintaining
the core passkey authentication functionality.
2025-05-28 10:24:17 +00:00