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
This commit is contained in:
Matthew Raymer
2025-03-11 09:35:55 +00:00
parent 515bb38db4
commit c9536dd643
1781 changed files with 81616 additions and 401 deletions

View File

@@ -11,6 +11,7 @@ import {
CONTACT_IMPORT_ONE_URL_PATH_TIME_SAFARI,
} from "../../libs/endorserServer";
import { DEFAULT_DID_PROVIDER_NAME } from "../veramo/setup";
import { logger } from "../../utils/logger";
export const DEFAULT_ROOT_DERIVATION_PATH = "m/84737769'/0'/0'/0'";
@@ -269,35 +270,35 @@ export async function testEncryptionDecryption() {
const testMessage = "Hello, this is a test message! 🚀";
const testPassword = "myTestPassword123";
console.log("Original message:", testMessage);
logger.log("Original message:", testMessage);
// Test encryption
console.log("Encrypting...");
logger.log("Encrypting...");
const encrypted = await encryptMessage(testMessage, testPassword);
console.log("Encrypted result:", encrypted);
logger.log("Encrypted result:", encrypted);
// Test decryption
console.log("Decrypting...");
logger.log("Decrypting...");
const decrypted = await decryptMessage(encrypted, testPassword);
console.log("Decrypted result:", decrypted);
logger.log("Decrypted result:", decrypted);
// Verify
const success = testMessage === decrypted;
console.log("Test " + (success ? "PASSED ✅" : "FAILED ❌"));
console.log("Messages match:", success);
logger.log("Test " + (success ? "PASSED ✅" : "FAILED ❌"));
logger.log("Messages match:", success);
// Test with wrong password
console.log("\nTesting with wrong password...");
logger.log("\nTesting with wrong password...");
try {
await decryptMessage(encrypted, "wrongPassword");
console.log("Should not reach here");
logger.log("Should not reach here");
} catch (error) {
console.log("Correctly failed with wrong password ✅");
logger.log("Correctly failed with wrong password ✅");
}
return success;
} catch (error) {
console.error("Test failed with error:", error);
logger.error("Test failed with error:", error);
return false;
}
}

View File

@@ -27,6 +27,7 @@ import {
peerDidToPublicKeyBytes,
verifyPeerSignature,
} from "../../../libs/crypto/vc/didPeer";
import { logger } from "../../../utils/logger";
export interface JWK {
kty: string;
@@ -69,7 +70,7 @@ export async function registerCredential(passkeyName?: string) {
const credIdBase64Url = verification.registrationInfo?.credentialID as string;
if (attResp.rawId !== credIdBase64Url) {
console.log("Warning! The raw ID does not match the credential ID.");
logger.warn("Warning! The raw ID does not match the credential ID.");
}
const credIdHex = Buffer.from(
base64URLStringToArrayBuffer(credIdBase64Url),

View File

@@ -48,6 +48,7 @@ import {
UserInfo,
CreateAndSubmitClaimResult,
} from "../interfaces";
import { logger } from "../utils/logger";
/**
* Standard context for schema.org data
@@ -174,8 +175,8 @@ export function isEmptyOrHiddenDid(did?: string): boolean {
* testRecursivelyOnStrings(isHiddenDid, obj); // Returns: true
*/
function testRecursivelyOnStrings(
func: (arg0: any) => boolean,
input: any,
func: (arg0: unknown) => boolean,
input: unknown,
): boolean {
// Test direct string values
if (Object.prototype.toString.call(input) === "[object String]") {
@@ -507,7 +508,7 @@ export async function getPlanFromCache(
cred = resp.data.data[0];
planCache.set(handleId, cred);
} else {
console.info(
logger.log(
"[EndorserServer] Plan cache is empty for handle",
handleId,
" Got data:",
@@ -515,7 +516,7 @@ export async function getPlanFromCache(
);
}
} catch (error) {
console.error(
logger.error(
"[EndorserServer] Failed to load plan with handle",
handleId,
" Got error:",
@@ -543,7 +544,7 @@ export async function setPlanInCache(
* @param {any} error - Error thrown from Endorser server call
* @returns {string|undefined} User-friendly message or undefined if none found
*/
export function serverMessageForUser(error: any): string | undefined {
export function serverMessageForUser(error: unknown): string | undefined {
return error?.response?.data?.error?.message;
}
@@ -554,7 +555,7 @@ export function serverMessageForUser(error: any): string | undefined {
* @param error
*/
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export function errorStringForLog(error: any) {
export function errorStringForLog(error: unknown) {
let stringifiedError = "" + error;
try {
stringifiedError = JSON.stringify(error);
@@ -984,7 +985,7 @@ export async function createAndSubmitClaim(
return { type: "success", response };
// eslint-disable-next-line @typescript-eslint/no-explicit-any
} catch (error: any) {
console.error("Error submitting claim:", error);
logger.error("Error submitting claim:", error);
const errorMessage: string =
serverMessageForUser(error) ||
error.message ||
@@ -1330,7 +1331,7 @@ export async function register(
}
return { error: message };
} else {
console.error(resp);
logger.error(resp);
return { error: "Got a server error when registering." };
}
}
@@ -1360,7 +1361,7 @@ export async function setVisibilityUtil(
}
return { success };
} else {
console.error(
logger.error(
"Got some bad server response when setting visibility: ",
resp.status,
resp,
@@ -1370,7 +1371,7 @@ export async function setVisibilityUtil(
return { error: message };
}
} catch (err) {
console.error("Got some error when setting visibility:", err);
logger.error("Got some error when setting visibility:", err);
return { error: "Check connectivity and try again." };
}
}

View File

@@ -27,6 +27,7 @@ import {
import { KeyMeta } from "../libs/crypto/vc";
import { createPeerDid } from "../libs/crypto/vc/didPeer";
import { registerCredential } from "../libs/crypto/vc/passkeyDidPeer";
import { logger } from "../utils/logger";
export interface GiverReceiverInputInfo {
did?: string;
@@ -222,7 +223,7 @@ export async function retrieveConfirmerIdList(
};
return result;
} else {
console.error(
logger.error(
"Bad response status of",
response.status,
"for confirmers:",
@@ -610,7 +611,7 @@ export const sendTestThroughPushServer = async (
message: `Test, where you will see this message ${ skipFilter ? "un" : "" }filtered.`,
title: skipFilter ? DIRECT_PUSH_TITLE : "Your Web Push",
};
console.log("Sending a test web push message:", newPayload);
logger.log("Sending a test web push message:", newPayload);
const payloadStr = JSON.stringify(newPayload);
const response = await axios.post(
pushUrl + "/web-push/send-test",
@@ -622,6 +623,6 @@ export const sendTestThroughPushServer = async (
},
);
console.log("Got response from web push server:", response);
logger.log("Got response from web push server:", response);
return response;
};