@sphereon/ssi-sdk.data-store 0.34.1-feature.SSISDK.82.linkedVP.327 → 0.34.1-feature.SSISDK.82.linkedVP.341

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -848,7 +848,14 @@ declare const isDidAuthConfig: (config: NonPersistedConnectionConfig | BaseConfi
848
848
 
849
849
  declare function isHex(input: string): boolean;
850
850
  declare function parseRawDocument(raw: string): OriginalVerifiableCredential | OriginalVerifiablePresentation;
851
+ /**
852
+ * Normalizes nullable fields by converting undefined to null.
853
+ * This ensures TypeORM actually clears the database fields instead of ignoring them.
854
+ */
855
+ declare function normalizeNullableFields<T extends Record<string, any>>(obj: T, nullableKeys: Array<keyof T>): T;
851
856
  declare const nonPersistedDigitalCredentialEntityFromAddArgs: (addCredentialArgs: AddCredentialArgs) => NonPersistedDigitalCredential;
857
+ declare const persistedDigitalCredentialEntityFromUpdateArgs: (existingCredential: DigitalCredentialEntity, updates: Partial<DigitalCredential>) => DigitalCredentialEntity;
858
+ declare const persistedDigitalCredentialEntityFromStateArgs: (existingCredential: DigitalCredentialEntity, args: UpdateCredentialStateArgs) => DigitalCredentialEntity;
852
859
  declare const digitalCredentialFrom: (credentialEntity: DigitalCredentialEntity) => DigitalCredential;
853
860
  declare const digitalCredentialsFrom: (credentialEntities: Array<DigitalCredentialEntity>) => DigitalCredential[];
854
861
 
@@ -884,4 +891,4 @@ declare const DataStoreDigitalCredentialEntities: (typeof DigitalCredentialEntit
884
891
  declare const DataStoreMachineStateEntities: (typeof MachineStateInfoEntity)[];
885
892
  declare const DataStoreEntities: (typeof BaseConfigEntity | typeof ConnectionEntity | typeof PartyEntity | typeof IdentityMetadataItemEntity | typeof CorrelationIdentifierEntity | typeof PartyRelationshipEntity | typeof PartyTypeEntity | typeof BaseContactEntity | typeof ElectronicAddressEntity | typeof PhysicalAddressEntity | typeof ContactMetadataItemEntity | typeof CredentialBrandingEntity | typeof ImageAttributesEntity | typeof ImageDimensionsEntity | typeof BaseLocaleBrandingEntity | typeof IssuerBrandingEntity | typeof TextAttributesEntity | typeof CredentialClaimsEntity | typeof DcqlQueryItemEntity | typeof StatusListEntity | typeof StatusListEntryEntity | typeof AuditEventEntity | typeof DigitalCredentialEntity | typeof MachineStateInfoEntity)[];
886
893
 
887
- export { AuditEventEntity, BackgroundAttributesEntity, BaseConfigEntity, BaseContactEntity, BaseLocaleBrandingEntity, type BitstringStatusListArgs, BitstringStatusListEntity, type BitstringStatusListEntryCredentialStatus, BitstringStatusListEntryEntity, type BitstringStatusMessage, type BitstringStatusPurpose, ConnectionEntity, ContactMetadataItemEntity, ContactStore, CorrelationIdentifierEntity, CredentialBrandingEntity, CredentialClaimsEntity, CredentialLocaleBrandingEntity, DataStoreContactEntities, DataStoreContactMigrations, DataStoreDigitalCredentialEntities, DataStoreDigitalCredentialMigrations, DataStoreEntities, DataStoreEventLoggerEntities, DataStoreEventLoggerMigrations, DataStoreIssuanceBrandingEntities, DataStoreIssuanceBrandingMigrations, DataStoreMachineStateEntities, DataStoreMachineStateMigrations, DataStoreMigrations, DataStoreOid4vcStateEntities, DataStorePresentationDefinitionEntities, DataStorePresentationDefinitionMigrations, DataStoreStatusListEntities, DataStoreStatusListMigrations, DcqlQueryItemEntity, DidAuthConfigEntity, DigitalCredentialEntity, DigitalCredentialStore, ElectronicAddressEntity, EventLoggerStore, type FindStatusListArgs, type FindStatusListEntryArgs, type IAddStatusListArgs, type IAddStatusListEntryArgs, type IBitstringStatusListArgs, type IBitstringStatusListEntity, type IBitstringStatusListEntryEntity, type IGetStatusListArgs, type IGetStatusListEntriesArgs, type IGetStatusListEntryByCredentialIdArgs, type IGetStatusListEntryByIndexArgs, type IGetStatusListsArgs, type IOAuthStatusListArgs, type IOAuthStatusListEntity, type IRemoveStatusListArgs, type IStatusList2021Args, type IStatusList2021Entity, type IStatusListEntity, type IStatusListEntryAvailableArgs, type IStatusListEntryEntity, type IUpdateStatusListIndexArgs, IdentityEntity, IdentityMetadataItemEntity, ImageAttributesEntity, ImageDimensionsEntity, IssuanceBrandingStore, IssuerBrandingEntity, IssuerLocaleBrandingEntity, MachineStateInfoEntity, MachineStateStore, OAuthStatusListEntity, Oid4vcStateEntity, OpenIdConfigEntity, PDStore, PartyEntity, PhysicalAddressEntity, StatusList2021Entity, StatusListEntity, StatusListEntryEntity, StatusListStore, TextAttributesEntity, activityEventEntityFrom, activityEventFrom, auditEventEntityFrom, auditEventFrom, backgroundAttributesEntityFrom, configFrom, connectionEntityFrom, connectionFrom, contactEntityFrom, contactFrom, contactMetadataItemEntityFrom, correlationIdentifierEntityFrom, correlationIdentifierFrom, credentialBrandingEntityFrom, credentialBrandingFrom, credentialClaimsEntityFrom, credentialLocaleBrandingEntityFrom, dcqlQueryEntityItemFrom, dcqlQueryItemFrom, didAuthConfigEntityFrom, didAuthConfigFrom, digitalCredentialFrom, digitalCredentialsFrom, electronicAddressEntityFrom, electronicAddressFrom, identityEntityFrom, identityFrom, identityMetadataItemEntityFrom, imageAttributesEntityFrom, imageDimensionsEntityFrom, isDidAuthConfig, isHex, isNaturalPerson, isOpenIdConfig, isOrganization, isPresentationDefinitionEqual, issuerBrandingEntityFrom, issuerBrandingFrom, issuerLocaleBrandingEntityFrom, localeBrandingFrom, metadataItemFrom, naturalPersonEntityFrom, naturalPersonFrom, nonPersistedDigitalCredentialEntityFromAddArgs, openIdConfigEntityFrom, openIdConfigFrom, organizationEntityFrom, organizationFrom, parseRawDocument, partyEntityFrom, partyFrom, partyRelationshipEntityFrom, partyRelationshipFrom, partyTypeEntityFrom, partyTypeFrom, physicalAddressEntityFrom, physicalAddressFrom, textAttributesEntityFrom };
894
+ export { AuditEventEntity, BackgroundAttributesEntity, BaseConfigEntity, BaseContactEntity, BaseLocaleBrandingEntity, type BitstringStatusListArgs, BitstringStatusListEntity, type BitstringStatusListEntryCredentialStatus, BitstringStatusListEntryEntity, type BitstringStatusMessage, type BitstringStatusPurpose, ConnectionEntity, ContactMetadataItemEntity, ContactStore, CorrelationIdentifierEntity, CredentialBrandingEntity, CredentialClaimsEntity, CredentialLocaleBrandingEntity, DataStoreContactEntities, DataStoreContactMigrations, DataStoreDigitalCredentialEntities, DataStoreDigitalCredentialMigrations, DataStoreEntities, DataStoreEventLoggerEntities, DataStoreEventLoggerMigrations, DataStoreIssuanceBrandingEntities, DataStoreIssuanceBrandingMigrations, DataStoreMachineStateEntities, DataStoreMachineStateMigrations, DataStoreMigrations, DataStoreOid4vcStateEntities, DataStorePresentationDefinitionEntities, DataStorePresentationDefinitionMigrations, DataStoreStatusListEntities, DataStoreStatusListMigrations, DcqlQueryItemEntity, DidAuthConfigEntity, DigitalCredentialEntity, DigitalCredentialStore, ElectronicAddressEntity, EventLoggerStore, type FindStatusListArgs, type FindStatusListEntryArgs, type IAddStatusListArgs, type IAddStatusListEntryArgs, type IBitstringStatusListArgs, type IBitstringStatusListEntity, type IBitstringStatusListEntryEntity, type IGetStatusListArgs, type IGetStatusListEntriesArgs, type IGetStatusListEntryByCredentialIdArgs, type IGetStatusListEntryByIndexArgs, type IGetStatusListsArgs, type IOAuthStatusListArgs, type IOAuthStatusListEntity, type IRemoveStatusListArgs, type IStatusList2021Args, type IStatusList2021Entity, type IStatusListEntity, type IStatusListEntryAvailableArgs, type IStatusListEntryEntity, type IUpdateStatusListIndexArgs, IdentityEntity, IdentityMetadataItemEntity, ImageAttributesEntity, ImageDimensionsEntity, IssuanceBrandingStore, IssuerBrandingEntity, IssuerLocaleBrandingEntity, MachineStateInfoEntity, MachineStateStore, OAuthStatusListEntity, Oid4vcStateEntity, OpenIdConfigEntity, PDStore, PartyEntity, PhysicalAddressEntity, StatusList2021Entity, StatusListEntity, StatusListEntryEntity, StatusListStore, TextAttributesEntity, activityEventEntityFrom, activityEventFrom, auditEventEntityFrom, auditEventFrom, backgroundAttributesEntityFrom, configFrom, connectionEntityFrom, connectionFrom, contactEntityFrom, contactFrom, contactMetadataItemEntityFrom, correlationIdentifierEntityFrom, correlationIdentifierFrom, credentialBrandingEntityFrom, credentialBrandingFrom, credentialClaimsEntityFrom, credentialLocaleBrandingEntityFrom, dcqlQueryEntityItemFrom, dcqlQueryItemFrom, didAuthConfigEntityFrom, didAuthConfigFrom, digitalCredentialFrom, digitalCredentialsFrom, electronicAddressEntityFrom, electronicAddressFrom, identityEntityFrom, identityFrom, identityMetadataItemEntityFrom, imageAttributesEntityFrom, imageDimensionsEntityFrom, isDidAuthConfig, isHex, isNaturalPerson, isOpenIdConfig, isOrganization, isPresentationDefinitionEqual, issuerBrandingEntityFrom, issuerBrandingFrom, issuerLocaleBrandingEntityFrom, localeBrandingFrom, metadataItemFrom, naturalPersonEntityFrom, naturalPersonFrom, nonPersistedDigitalCredentialEntityFromAddArgs, normalizeNullableFields, openIdConfigEntityFrom, openIdConfigFrom, organizationEntityFrom, organizationFrom, parseRawDocument, partyEntityFrom, partyFrom, partyRelationshipEntityFrom, partyRelationshipFrom, partyTypeEntityFrom, partyTypeFrom, persistedDigitalCredentialEntityFromStateArgs, persistedDigitalCredentialEntityFromUpdateArgs, physicalAddressEntityFrom, physicalAddressFrom, textAttributesEntityFrom };
package/dist/index.d.ts CHANGED
@@ -848,7 +848,14 @@ declare const isDidAuthConfig: (config: NonPersistedConnectionConfig | BaseConfi
848
848
 
849
849
  declare function isHex(input: string): boolean;
850
850
  declare function parseRawDocument(raw: string): OriginalVerifiableCredential | OriginalVerifiablePresentation;
851
+ /**
852
+ * Normalizes nullable fields by converting undefined to null.
853
+ * This ensures TypeORM actually clears the database fields instead of ignoring them.
854
+ */
855
+ declare function normalizeNullableFields<T extends Record<string, any>>(obj: T, nullableKeys: Array<keyof T>): T;
851
856
  declare const nonPersistedDigitalCredentialEntityFromAddArgs: (addCredentialArgs: AddCredentialArgs) => NonPersistedDigitalCredential;
857
+ declare const persistedDigitalCredentialEntityFromUpdateArgs: (existingCredential: DigitalCredentialEntity, updates: Partial<DigitalCredential>) => DigitalCredentialEntity;
858
+ declare const persistedDigitalCredentialEntityFromStateArgs: (existingCredential: DigitalCredentialEntity, args: UpdateCredentialStateArgs) => DigitalCredentialEntity;
852
859
  declare const digitalCredentialFrom: (credentialEntity: DigitalCredentialEntity) => DigitalCredential;
853
860
  declare const digitalCredentialsFrom: (credentialEntities: Array<DigitalCredentialEntity>) => DigitalCredential[];
854
861
 
@@ -884,4 +891,4 @@ declare const DataStoreDigitalCredentialEntities: (typeof DigitalCredentialEntit
884
891
  declare const DataStoreMachineStateEntities: (typeof MachineStateInfoEntity)[];
885
892
  declare const DataStoreEntities: (typeof BaseConfigEntity | typeof ConnectionEntity | typeof PartyEntity | typeof IdentityMetadataItemEntity | typeof CorrelationIdentifierEntity | typeof PartyRelationshipEntity | typeof PartyTypeEntity | typeof BaseContactEntity | typeof ElectronicAddressEntity | typeof PhysicalAddressEntity | typeof ContactMetadataItemEntity | typeof CredentialBrandingEntity | typeof ImageAttributesEntity | typeof ImageDimensionsEntity | typeof BaseLocaleBrandingEntity | typeof IssuerBrandingEntity | typeof TextAttributesEntity | typeof CredentialClaimsEntity | typeof DcqlQueryItemEntity | typeof StatusListEntity | typeof StatusListEntryEntity | typeof AuditEventEntity | typeof DigitalCredentialEntity | typeof MachineStateInfoEntity)[];
886
893
 
887
- export { AuditEventEntity, BackgroundAttributesEntity, BaseConfigEntity, BaseContactEntity, BaseLocaleBrandingEntity, type BitstringStatusListArgs, BitstringStatusListEntity, type BitstringStatusListEntryCredentialStatus, BitstringStatusListEntryEntity, type BitstringStatusMessage, type BitstringStatusPurpose, ConnectionEntity, ContactMetadataItemEntity, ContactStore, CorrelationIdentifierEntity, CredentialBrandingEntity, CredentialClaimsEntity, CredentialLocaleBrandingEntity, DataStoreContactEntities, DataStoreContactMigrations, DataStoreDigitalCredentialEntities, DataStoreDigitalCredentialMigrations, DataStoreEntities, DataStoreEventLoggerEntities, DataStoreEventLoggerMigrations, DataStoreIssuanceBrandingEntities, DataStoreIssuanceBrandingMigrations, DataStoreMachineStateEntities, DataStoreMachineStateMigrations, DataStoreMigrations, DataStoreOid4vcStateEntities, DataStorePresentationDefinitionEntities, DataStorePresentationDefinitionMigrations, DataStoreStatusListEntities, DataStoreStatusListMigrations, DcqlQueryItemEntity, DidAuthConfigEntity, DigitalCredentialEntity, DigitalCredentialStore, ElectronicAddressEntity, EventLoggerStore, type FindStatusListArgs, type FindStatusListEntryArgs, type IAddStatusListArgs, type IAddStatusListEntryArgs, type IBitstringStatusListArgs, type IBitstringStatusListEntity, type IBitstringStatusListEntryEntity, type IGetStatusListArgs, type IGetStatusListEntriesArgs, type IGetStatusListEntryByCredentialIdArgs, type IGetStatusListEntryByIndexArgs, type IGetStatusListsArgs, type IOAuthStatusListArgs, type IOAuthStatusListEntity, type IRemoveStatusListArgs, type IStatusList2021Args, type IStatusList2021Entity, type IStatusListEntity, type IStatusListEntryAvailableArgs, type IStatusListEntryEntity, type IUpdateStatusListIndexArgs, IdentityEntity, IdentityMetadataItemEntity, ImageAttributesEntity, ImageDimensionsEntity, IssuanceBrandingStore, IssuerBrandingEntity, IssuerLocaleBrandingEntity, MachineStateInfoEntity, MachineStateStore, OAuthStatusListEntity, Oid4vcStateEntity, OpenIdConfigEntity, PDStore, PartyEntity, PhysicalAddressEntity, StatusList2021Entity, StatusListEntity, StatusListEntryEntity, StatusListStore, TextAttributesEntity, activityEventEntityFrom, activityEventFrom, auditEventEntityFrom, auditEventFrom, backgroundAttributesEntityFrom, configFrom, connectionEntityFrom, connectionFrom, contactEntityFrom, contactFrom, contactMetadataItemEntityFrom, correlationIdentifierEntityFrom, correlationIdentifierFrom, credentialBrandingEntityFrom, credentialBrandingFrom, credentialClaimsEntityFrom, credentialLocaleBrandingEntityFrom, dcqlQueryEntityItemFrom, dcqlQueryItemFrom, didAuthConfigEntityFrom, didAuthConfigFrom, digitalCredentialFrom, digitalCredentialsFrom, electronicAddressEntityFrom, electronicAddressFrom, identityEntityFrom, identityFrom, identityMetadataItemEntityFrom, imageAttributesEntityFrom, imageDimensionsEntityFrom, isDidAuthConfig, isHex, isNaturalPerson, isOpenIdConfig, isOrganization, isPresentationDefinitionEqual, issuerBrandingEntityFrom, issuerBrandingFrom, issuerLocaleBrandingEntityFrom, localeBrandingFrom, metadataItemFrom, naturalPersonEntityFrom, naturalPersonFrom, nonPersistedDigitalCredentialEntityFromAddArgs, openIdConfigEntityFrom, openIdConfigFrom, organizationEntityFrom, organizationFrom, parseRawDocument, partyEntityFrom, partyFrom, partyRelationshipEntityFrom, partyRelationshipFrom, partyTypeEntityFrom, partyTypeFrom, physicalAddressEntityFrom, physicalAddressFrom, textAttributesEntityFrom };
894
+ export { AuditEventEntity, BackgroundAttributesEntity, BaseConfigEntity, BaseContactEntity, BaseLocaleBrandingEntity, type BitstringStatusListArgs, BitstringStatusListEntity, type BitstringStatusListEntryCredentialStatus, BitstringStatusListEntryEntity, type BitstringStatusMessage, type BitstringStatusPurpose, ConnectionEntity, ContactMetadataItemEntity, ContactStore, CorrelationIdentifierEntity, CredentialBrandingEntity, CredentialClaimsEntity, CredentialLocaleBrandingEntity, DataStoreContactEntities, DataStoreContactMigrations, DataStoreDigitalCredentialEntities, DataStoreDigitalCredentialMigrations, DataStoreEntities, DataStoreEventLoggerEntities, DataStoreEventLoggerMigrations, DataStoreIssuanceBrandingEntities, DataStoreIssuanceBrandingMigrations, DataStoreMachineStateEntities, DataStoreMachineStateMigrations, DataStoreMigrations, DataStoreOid4vcStateEntities, DataStorePresentationDefinitionEntities, DataStorePresentationDefinitionMigrations, DataStoreStatusListEntities, DataStoreStatusListMigrations, DcqlQueryItemEntity, DidAuthConfigEntity, DigitalCredentialEntity, DigitalCredentialStore, ElectronicAddressEntity, EventLoggerStore, type FindStatusListArgs, type FindStatusListEntryArgs, type IAddStatusListArgs, type IAddStatusListEntryArgs, type IBitstringStatusListArgs, type IBitstringStatusListEntity, type IBitstringStatusListEntryEntity, type IGetStatusListArgs, type IGetStatusListEntriesArgs, type IGetStatusListEntryByCredentialIdArgs, type IGetStatusListEntryByIndexArgs, type IGetStatusListsArgs, type IOAuthStatusListArgs, type IOAuthStatusListEntity, type IRemoveStatusListArgs, type IStatusList2021Args, type IStatusList2021Entity, type IStatusListEntity, type IStatusListEntryAvailableArgs, type IStatusListEntryEntity, type IUpdateStatusListIndexArgs, IdentityEntity, IdentityMetadataItemEntity, ImageAttributesEntity, ImageDimensionsEntity, IssuanceBrandingStore, IssuerBrandingEntity, IssuerLocaleBrandingEntity, MachineStateInfoEntity, MachineStateStore, OAuthStatusListEntity, Oid4vcStateEntity, OpenIdConfigEntity, PDStore, PartyEntity, PhysicalAddressEntity, StatusList2021Entity, StatusListEntity, StatusListEntryEntity, StatusListStore, TextAttributesEntity, activityEventEntityFrom, activityEventFrom, auditEventEntityFrom, auditEventFrom, backgroundAttributesEntityFrom, configFrom, connectionEntityFrom, connectionFrom, contactEntityFrom, contactFrom, contactMetadataItemEntityFrom, correlationIdentifierEntityFrom, correlationIdentifierFrom, credentialBrandingEntityFrom, credentialBrandingFrom, credentialClaimsEntityFrom, credentialLocaleBrandingEntityFrom, dcqlQueryEntityItemFrom, dcqlQueryItemFrom, didAuthConfigEntityFrom, didAuthConfigFrom, digitalCredentialFrom, digitalCredentialsFrom, electronicAddressEntityFrom, electronicAddressFrom, identityEntityFrom, identityFrom, identityMetadataItemEntityFrom, imageAttributesEntityFrom, imageDimensionsEntityFrom, isDidAuthConfig, isHex, isNaturalPerson, isOpenIdConfig, isOrganization, isPresentationDefinitionEqual, issuerBrandingEntityFrom, issuerBrandingFrom, issuerLocaleBrandingEntityFrom, localeBrandingFrom, metadataItemFrom, naturalPersonEntityFrom, naturalPersonFrom, nonPersistedDigitalCredentialEntityFromAddArgs, normalizeNullableFields, openIdConfigEntityFrom, openIdConfigFrom, organizationEntityFrom, organizationFrom, parseRawDocument, partyEntityFrom, partyFrom, partyRelationshipEntityFrom, partyRelationshipFrom, partyTypeEntityFrom, partyTypeFrom, persistedDigitalCredentialEntityFromStateArgs, persistedDigitalCredentialEntityFromUpdateArgs, physicalAddressEntityFrom, physicalAddressFrom, textAttributesEntityFrom };
package/dist/index.js CHANGED
@@ -5314,17 +5314,14 @@ var DigitalCredentialStore = class extends AbstractDigitalCredentialStore {
5314
5314
  if (!credential) {
5315
5315
  return Promise.reject(Error(`No credential found for args: ${JSON.stringify(whereClause)}`));
5316
5316
  }
5317
- const { id, hash, ...updates } = args;
5318
- const updatedCredential = {
5319
- ...credential,
5320
- ...updates,
5321
- id: credential.id,
5322
- hash: credential.hash,
5323
- createdAt: credential.createdAt,
5324
- lastUpdatedAt: /* @__PURE__ */ new Date()
5325
- };
5326
- debug2("Updating credential", updatedCredential);
5327
- const updatedResult = await dcRepo.save(updatedCredential, {
5317
+ const updates = Object.fromEntries(Object.entries(args).filter(([key]) => key !== "id" && key !== "hash"));
5318
+ const entityToSave = persistedDigitalCredentialEntityFromUpdateArgs(credential, updates);
5319
+ const validationError = this.assertValidDigitalCredential(entityToSave);
5320
+ if (validationError) {
5321
+ return Promise.reject(validationError);
5322
+ }
5323
+ debug2("Updating credential", entityToSave);
5324
+ const updatedResult = await dcRepo.save(entityToSave, {
5328
5325
  transaction: true
5329
5326
  });
5330
5327
  return digitalCredentialFrom(updatedResult);
@@ -5399,20 +5396,9 @@ var DigitalCredentialStore = class extends AbstractDigitalCredentialStore {
5399
5396
  if (!credential) {
5400
5397
  return Promise.reject(Error(`No credential found for args: ${JSON.stringify(whereClause)}`));
5401
5398
  }
5402
- const updatedCredential = {
5403
- ...credential,
5404
- ...args.verifiedState !== CredentialStateType2.REVOKED && {
5405
- verifiedAt: args.verifiedAt
5406
- },
5407
- ...args.verifiedState === CredentialStateType2.REVOKED && {
5408
- revokedAt: args.revokedAt
5409
- },
5410
- identifierMethod: credential.identifierMethod,
5411
- lastUpdatedAt: /* @__PURE__ */ new Date(),
5412
- verifiedState: args.verifiedState
5413
- };
5414
- debug2("Updating credential", credential);
5415
- const updatedResult = await credentialRepository.save(updatedCredential, {
5399
+ const entityToSave = persistedDigitalCredentialEntityFromStateArgs(credential, args);
5400
+ debug2("Updating credential state", entityToSave);
5401
+ const updatedResult = await credentialRepository.save(entityToSave, {
5416
5402
  transaction: true
5417
5403
  });
5418
5404
  return digitalCredentialFrom(updatedResult);
@@ -9332,7 +9318,7 @@ var DataStoreMigrations = [
9332
9318
 
9333
9319
  // src/utils/digitalCredential/MappingUtils.ts
9334
9320
  import { defaultHasher } from "@sphereon/ssi-sdk.core";
9335
- import { CredentialDocumentFormat as CredentialDocumentFormat2, DocumentType as DocumentType2, RegulationType as RegulationType2 } from "@sphereon/ssi-sdk.data-store-types";
9321
+ import { CredentialDocumentFormat as CredentialDocumentFormat2, CredentialStateType as CredentialStateType3, DocumentType as DocumentType2, RegulationType as RegulationType2 } from "@sphereon/ssi-sdk.data-store-types";
9336
9322
  import { CredentialMapper, DocumentFormat, ObjectUtils } from "@sphereon/ssi-types";
9337
9323
  import { computeEntryHash } from "@veramo/utils";
9338
9324
  function determineDocumentType(raw) {
@@ -9383,6 +9369,18 @@ function determineCredentialDocumentFormat(documentFormat) {
9383
9369
  }
9384
9370
  }
9385
9371
  __name(determineCredentialDocumentFormat, "determineCredentialDocumentFormat");
9372
+ function normalizeNullableFields(obj, nullableKeys) {
9373
+ const normalized = {
9374
+ ...obj
9375
+ };
9376
+ for (const key of nullableKeys) {
9377
+ if (normalized[key] === void 0) {
9378
+ normalized[key] = null;
9379
+ }
9380
+ }
9381
+ return normalized;
9382
+ }
9383
+ __name(normalizeNullableFields, "normalizeNullableFields");
9386
9384
  function getValidUntil(uniformDocument) {
9387
9385
  if ("expirationDate" in uniformDocument && uniformDocument.expirationDate) {
9388
9386
  return new Date(uniformDocument.expirationDate);
@@ -9445,6 +9443,33 @@ var nonPersistedDigitalCredentialEntityFromAddArgs = /* @__PURE__ */ __name((add
9445
9443
  lastUpdatedAt: /* @__PURE__ */ new Date()
9446
9444
  };
9447
9445
  }, "nonPersistedDigitalCredentialEntityFromAddArgs");
9446
+ var persistedDigitalCredentialEntityFromUpdateArgs = /* @__PURE__ */ __name((existingCredential, updates) => {
9447
+ const entity = new DigitalCredentialEntity();
9448
+ Object.assign(entity, existingCredential);
9449
+ const normalizedUpdates = normalizeNullableFields(updates, [
9450
+ "linkedVpId",
9451
+ "linkedVpFrom"
9452
+ ]);
9453
+ Object.assign(entity, normalizedUpdates);
9454
+ entity.id = existingCredential.id;
9455
+ entity.hash = existingCredential.hash;
9456
+ entity.createdAt = existingCredential.createdAt;
9457
+ entity.lastUpdatedAt = /* @__PURE__ */ new Date();
9458
+ return entity;
9459
+ }, "persistedDigitalCredentialEntityFromUpdateArgs");
9460
+ var persistedDigitalCredentialEntityFromStateArgs = /* @__PURE__ */ __name((existingCredential, args) => {
9461
+ const entity = new DigitalCredentialEntity();
9462
+ Object.assign(entity, existingCredential);
9463
+ entity.verifiedState = args.verifiedState;
9464
+ entity.lastUpdatedAt = /* @__PURE__ */ new Date();
9465
+ if (args.verifiedState === CredentialStateType3.REVOKED && args.revokedAt) {
9466
+ entity.revokedAt = args.revokedAt;
9467
+ }
9468
+ if (args.verifiedState !== CredentialStateType3.REVOKED && args.verifiedAt) {
9469
+ entity.verifiedAt = args.verifiedAt;
9470
+ }
9471
+ return entity;
9472
+ }, "persistedDigitalCredentialEntityFromStateArgs");
9448
9473
  var digitalCredentialFrom = /* @__PURE__ */ __name((credentialEntity) => {
9449
9474
  const result = {
9450
9475
  ...credentialEntity
@@ -9621,6 +9646,7 @@ export {
9621
9646
  naturalPersonEntityFrom,
9622
9647
  naturalPersonFrom,
9623
9648
  nonPersistedDigitalCredentialEntityFromAddArgs,
9649
+ normalizeNullableFields,
9624
9650
  openIdConfigEntityFrom,
9625
9651
  openIdConfigFrom,
9626
9652
  organizationEntityFrom,
@@ -9632,6 +9658,8 @@ export {
9632
9658
  partyRelationshipFrom,
9633
9659
  partyTypeEntityFrom,
9634
9660
  partyTypeFrom,
9661
+ persistedDigitalCredentialEntityFromStateArgs,
9662
+ persistedDigitalCredentialEntityFromUpdateArgs,
9635
9663
  physicalAddressEntityFrom,
9636
9664
  physicalAddressFrom,
9637
9665
  textAttributesEntityFrom