mirror of
https://github.com/selfxyz/self.git
synced 2026-02-09 05:46:01 -05:00
42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
export function getFirstName(mrz: string): string {
|
|
const names = mrz.split("<<");
|
|
const firstName = names[1].split("<")[0].trim();
|
|
const capitalized = firstName.charAt(0) + firstName.slice(1).toLowerCase();
|
|
return capitalized || "Unknown";
|
|
}
|
|
|
|
export function formatDuration(durationInMs: number) {
|
|
const durationInSeconds = durationInMs / 1000;
|
|
const minutes = Math.floor((durationInSeconds % 3600) / 60);
|
|
const seconds = Math.floor(durationInSeconds % 60);
|
|
|
|
return minutes > 0 ? `${minutes}m ${seconds}s` : `${seconds}s`;
|
|
}
|
|
|
|
export function formatProof(proof: any) {
|
|
const formattedProof: { [key: string]: any } = {};
|
|
|
|
for (const key in proof) {
|
|
if (Object.hasOwnProperty.call(proof, key)) {
|
|
const element = proof[key];
|
|
|
|
if (key === 'b') {
|
|
// Special formatting for 'b'
|
|
formattedProof[key] = element.map((complex: string) => {
|
|
const matches = complex.match(/QuadExtField\(([^)]+)\)/);
|
|
if (matches && matches[1]) {
|
|
return matches[1].split(' + ').map(num => {
|
|
return num.replace(' * u', '').trim();
|
|
});
|
|
}
|
|
return [];
|
|
});
|
|
} else {
|
|
// Direct copy for 'a' and 'c'
|
|
formattedProof[key] = [...element];
|
|
}
|
|
}
|
|
}
|
|
|
|
return formattedProof;
|
|
} |