feat: enhance GenericVerifiableCredential interface with explicit optional properties

- Add name, description, and agent as optional properties to GenericVerifiableCredential
- Improve type safety and IntelliSense for common claim properties
- Maintain backward compatibility with existing code
- Reduce need for type assertions when accessing claim properties
This commit is contained in:
Matthew Raymer
2025-06-23 10:30:08 +00:00
parent 360f00c073
commit d359263704
48 changed files with 141 additions and 205 deletions

View File

@@ -101,8 +101,6 @@ import {
import { Router } from "vue-router";
import * as databaseUtil from "../db/databaseUtil";
import { MASTER_SETTINGS_KEY } from "../db/tables/settings";
import { db, retrieveSettingsForActiveAccount } from "../db/index";
@Component({
components: {

View File

@@ -96,7 +96,6 @@ import {
serverMessageForUser,
} from "../libs/endorserServer";
import * as libsUtil from "../libs/util";
import { db, retrieveSettingsForActiveAccount } from "../db/index";
import { Contact } from "../db/tables/contacts";
import * as databaseUtil from "../db/databaseUtil";
import { retrieveAccountDids } from "../libs/util";

View File

@@ -75,7 +75,6 @@ import { Vue, Component } from "vue-facing-decorator";
import { Router } from "vue-router";
import { AppString, NotificationIface } from "../constants/app";
import { db } from "../db/index";
import { Contact } from "../db/tables/contacts";
import * as databaseUtil from "../db/databaseUtil";
import { GiverReceiverInputInfo } from "../libs/util";

View File

@@ -262,30 +262,21 @@ import { Component, Vue } from "vue-facing-decorator";
import VuePictureCropper, { cropper } from "vue-picture-cropper";
import { Capacitor } from "@capacitor/core";
import { DEFAULT_IMAGE_API_SERVER, NotificationIface } from "../constants/app";
import { retrieveSettingsForActiveAccount } from "../db/index";
import { accessToken } from "../libs/crypto";
import { logger } from "../utils/logger";
import { PlatformServiceFactory } from "../services/PlatformServiceFactory";
import * as databaseUtil from "../db/databaseUtil";
import { Prop } from "vue-facing-decorator";
import { Router } from "vue-router";
const inputImageFileNameRef = ref<Blob>();
@Component({
components: { VuePictureCropper },
props: {
isRegistered: {
type: Boolean,
default: true,
},
defaultCameraMode: {
type: String,
default: "environment",
validator: (value: string) => ["environment", "user"].includes(value),
},
},
})
export default class ImageMethodDialog extends Vue {
$notify!: (notification: NotificationIface, timeout?: number) => void;
$router!: Router;
/** Active DID for user authentication */
activeDid = "";
@@ -303,7 +294,7 @@ export default class ImageMethodDialog extends Vue {
fileName?: string;
/** Callback function to set image URL after upload */
imageCallback: (imageUrl?: string) => void = () => {};
imageCallback: (imageUrl: string) => void = () => {};
/** URL for image input */
imageUrl?: string;
@@ -351,6 +342,14 @@ export default class ImageMethodDialog extends Vue {
cameraStateMessage?: string;
error: string | null = null;
// Props
@Prop({ default: true }) isRegistered!: boolean;
@Prop({
default: "environment",
validator: (value: string) => ["environment", "user"].includes(value),
})
defaultCameraMode!: string;
/**
* Lifecycle hook: Initializes component and retrieves user settings
* @throws {Error} When settings retrieval fails
@@ -411,7 +410,7 @@ export default class ImageMethodDialog extends Vue {
type: file.type,
});
this.blob = blob;
this.fileName = file.name;
this.fileName = (file as File).name;
this.showRetry = false;
}
};
@@ -442,7 +441,7 @@ export default class ImageMethodDialog extends Vue {
);
}
} else {
this.imageCallback(this.imageUrl);
this.imageCallback(this.imageUrl as string);
this.close();
}
}

View File

@@ -159,11 +159,7 @@
<script lang="ts">
import { Component, Vue, Prop } from "vue-facing-decorator";
import {
logConsoleAndDb,
retrieveSettingsForActiveAccount,
db,
} from "../db/index";
import { logConsoleAndDb } from "../db/index";
import {
errorStringForLog,
getHeaders,

View File

@@ -86,7 +86,6 @@ import { NotificationIface } from "../constants/app";
import { createAndSubmitOffer } from "../libs/endorserServer";
import * as libsUtil from "../libs/util";
import * as databaseUtil from "../db/databaseUtil";
import { retrieveSettingsForActiveAccount } from "../db/index";
import { logger } from "../utils/logger";
@Component

View File

@@ -121,7 +121,6 @@ import { Component, Vue } from "vue-facing-decorator";
import VuePictureCropper, { cropper } from "vue-picture-cropper";
import { DEFAULT_IMAGE_API_SERVER, NotificationIface } from "../constants/app";
import * as databaseUtil from "../db/databaseUtil";
import { retrieveSettingsForActiveAccount } from "../db/index";
import { accessToken } from "../libs/crypto";
import { logger } from "../utils/logger";
import { PlatformServiceFactory } from "../services/PlatformServiceFactory";

View File

@@ -104,11 +104,7 @@ import { Component, Vue } from "vue-facing-decorator";
import { DEFAULT_PUSH_SERVER, NotificationIface } from "../constants/app";
import * as databaseUtil from "../db/databaseUtil";
import {
logConsoleAndDb,
retrieveSettingsForActiveAccount,
secretDB,
} from "../db/index";
import { logConsoleAndDb, secretDB } from "../db/index";
import { MASTER_SECRET_KEY } from "../db/tables/secret";
import { urlBase64ToUint8Array } from "../libs/crypto/vc/util";
import * as libsUtil from "../libs/util";

View File

@@ -17,7 +17,6 @@ import { Component, Vue, Prop } from "vue-facing-decorator";
import { AppString, NotificationIface } from "../constants/app";
import * as databaseUtil from "../db/databaseUtil";
import { retrieveSettingsForActiveAccount } from "../db/index";
@Component
export default class TopMessage extends Vue {

View File

@@ -38,7 +38,6 @@
import { Vue, Component, Prop } from "vue-facing-decorator";
import { NotificationIface } from "../constants/app";
import { db, retrieveSettingsForActiveAccount } from "../db/index";
import * as databaseUtil from "../db/databaseUtil";
import { MASTER_SETTINGS_KEY } from "../db/tables/settings";
import { PlatformServiceFactory } from "@/services/PlatformServiceFactory";

View File

@@ -4,7 +4,6 @@ import { GLTFLoader } from "three/addons/loaders/GLTFLoader";
import * as SkeletonUtils from "three/addons/utils/SkeletonUtils";
import * as TWEEN from "@tweenjs/tween.js";
import * as databaseUtil from "../../../../db/databaseUtil";
import { retrieveSettingsForActiveAccount } from "../../../../db";
import { getHeaders } from "../../../../libs/endorserServer";
import { logger } from "../../../../utils/logger";