@sphereon/ssi-sdk.data-store 0.29.0 → 0.29.1-next.104

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.
Files changed (94) hide show
  1. package/dist/digitalCredential/DigitalCredentialStore.js +1 -1
  2. package/dist/digitalCredential/DigitalCredentialStore.js.map +1 -1
  3. package/dist/entities/contact/BaseContactEntity.js +2 -2
  4. package/dist/entities/contact/BaseContactEntity.js.map +1 -1
  5. package/dist/entities/contact/ContactMetadataItemEntity.js +1 -1
  6. package/dist/entities/contact/ContactMetadataItemEntity.js.map +1 -1
  7. package/dist/entities/contact/ElectronicAddressEntity.js +2 -2
  8. package/dist/entities/contact/ElectronicAddressEntity.js.map +1 -1
  9. package/dist/entities/contact/IdentityEntity.js +2 -2
  10. package/dist/entities/contact/IdentityEntity.js.map +1 -1
  11. package/dist/entities/contact/IdentityMetadataItemEntity.js +1 -1
  12. package/dist/entities/contact/IdentityMetadataItemEntity.js.map +1 -1
  13. package/dist/entities/contact/OrganizationEntity.d.ts.map +1 -1
  14. package/dist/entities/contact/OrganizationEntity.js.map +1 -1
  15. package/dist/entities/contact/PartyEntity.js +2 -2
  16. package/dist/entities/contact/PartyEntity.js.map +1 -1
  17. package/dist/entities/contact/PartyRelationshipEntity.js +2 -2
  18. package/dist/entities/contact/PartyRelationshipEntity.js.map +1 -1
  19. package/dist/entities/contact/PartyTypeEntity.js +2 -2
  20. package/dist/entities/contact/PartyTypeEntity.js.map +1 -1
  21. package/dist/entities/contact/PhysicalAddressEntity.js +2 -2
  22. package/dist/entities/contact/PhysicalAddressEntity.js.map +1 -1
  23. package/dist/entities/digitalCredential/DigitalCredentialEntity.d.ts +2 -2
  24. package/dist/entities/digitalCredential/DigitalCredentialEntity.d.ts.map +1 -1
  25. package/dist/entities/digitalCredential/DigitalCredentialEntity.js +6 -6
  26. package/dist/entities/digitalCredential/DigitalCredentialEntity.js.map +1 -1
  27. package/dist/entities/eventLogger/AuditEventEntity.js +3 -3
  28. package/dist/entities/eventLogger/AuditEventEntity.js.map +1 -1
  29. package/dist/entities/issuanceBranding/BaseLocaleBrandingEntity.js +2 -2
  30. package/dist/entities/issuanceBranding/BaseLocaleBrandingEntity.js.map +1 -1
  31. package/dist/entities/issuanceBranding/CredentialBrandingEntity.js +2 -2
  32. package/dist/entities/issuanceBranding/CredentialBrandingEntity.js.map +1 -1
  33. package/dist/entities/issuanceBranding/IssuerBrandingEntity.js +2 -2
  34. package/dist/entities/issuanceBranding/IssuerBrandingEntity.js.map +1 -1
  35. package/dist/entities/machineState/MachineStateInfoEntity.js +4 -4
  36. package/dist/entities/machineState/MachineStateInfoEntity.js.map +1 -1
  37. package/dist/entities/presentationDefinition/PresentationDefinitionItemEntity.js +2 -2
  38. package/dist/entities/presentationDefinition/PresentationDefinitionItemEntity.js.map +1 -1
  39. package/dist/migrations/postgres/1708525189001-CreateDigitalCredential.js +1 -1
  40. package/dist/migrations/postgres/1708525189001-CreateDigitalCredential.js.map +1 -1
  41. package/dist/migrations/sqlite/1708525189002-CreateDigitalCredential.js +2 -2
  42. package/dist/statusList/IStatusListStore.d.ts +2 -2
  43. package/dist/statusList/IStatusListStore.d.ts.map +1 -1
  44. package/dist/types/contact/contact.d.ts +2 -2
  45. package/dist/types/contact/contact.d.ts.map +1 -1
  46. package/dist/types/digitalCredential/digitalCredential.d.ts +7 -1
  47. package/dist/types/digitalCredential/digitalCredential.d.ts.map +1 -1
  48. package/dist/types/digitalCredential/digitalCredential.js +36 -0
  49. package/dist/types/digitalCredential/digitalCredential.js.map +1 -1
  50. package/dist/utils/contact/MappingUtils.d.ts.map +1 -1
  51. package/dist/utils/contact/MappingUtils.js +13 -1
  52. package/dist/utils/contact/MappingUtils.js.map +1 -1
  53. package/dist/utils/digitalCredential/MappingUtils.d.ts +1 -2
  54. package/dist/utils/digitalCredential/MappingUtils.d.ts.map +1 -1
  55. package/dist/utils/digitalCredential/MappingUtils.js +21 -22
  56. package/dist/utils/digitalCredential/MappingUtils.js.map +1 -1
  57. package/package.json +7 -6
  58. package/src/__tests__/contact.entities.test.ts +19 -18
  59. package/src/__tests__/contact.store.test.ts +1 -1
  60. package/src/__tests__/digitalCredential.entities.test.ts +1 -1
  61. package/src/__tests__/digitalCredential.store.test.ts +1 -1
  62. package/src/__tests__/eventLogger.entities.test.ts +1 -1
  63. package/src/__tests__/eventLogger.store.test.ts +1 -1
  64. package/src/__tests__/issuanceBranding.entities.test.ts +1 -1
  65. package/src/__tests__/issuanceBranding.store.test.ts +1 -1
  66. package/src/__tests__/machineState.entities.test.ts +1 -1
  67. package/src/__tests__/machineState.store.test.ts +1 -1
  68. package/src/__tests__/pd-manager.entities.test.ts +1 -1
  69. package/src/__tests__/pd-manager.store.test.ts +1 -1
  70. package/src/digitalCredential/DigitalCredentialStore.ts +1 -1
  71. package/src/entities/contact/BaseContactEntity.ts +3 -3
  72. package/src/entities/contact/ContactMetadataItemEntity.ts +2 -2
  73. package/src/entities/contact/ElectronicAddressEntity.ts +3 -3
  74. package/src/entities/contact/IdentityEntity.ts +3 -3
  75. package/src/entities/contact/IdentityMetadataItemEntity.ts +2 -2
  76. package/src/entities/contact/OrganizationEntity.ts +5 -5
  77. package/src/entities/contact/PartyEntity.ts +3 -3
  78. package/src/entities/contact/PartyRelationshipEntity.ts +3 -3
  79. package/src/entities/contact/PartyTypeEntity.ts +3 -3
  80. package/src/entities/contact/PhysicalAddressEntity.ts +3 -3
  81. package/src/entities/digitalCredential/DigitalCredentialEntity.ts +16 -9
  82. package/src/entities/eventLogger/AuditEventEntity.ts +4 -4
  83. package/src/entities/issuanceBranding/BaseLocaleBrandingEntity.ts +3 -3
  84. package/src/entities/issuanceBranding/CredentialBrandingEntity.ts +3 -3
  85. package/src/entities/issuanceBranding/IssuerBrandingEntity.ts +3 -3
  86. package/src/entities/machineState/MachineStateInfoEntity.ts +5 -5
  87. package/src/entities/presentationDefinition/PresentationDefinitionItemEntity.ts +3 -3
  88. package/src/migrations/postgres/1708525189001-CreateDigitalCredential.ts +1 -1
  89. package/src/migrations/sqlite/1708525189002-CreateDigitalCredential.ts +2 -2
  90. package/src/statusList/IStatusListStore.ts +2 -2
  91. package/src/types/contact/contact.ts +2 -2
  92. package/src/types/digitalCredential/digitalCredential.ts +32 -0
  93. package/src/utils/contact/MappingUtils.ts +12 -1
  94. package/src/utils/digitalCredential/MappingUtils.ts +18 -25
@@ -1,8 +1,5 @@
1
- import { AddCredentialArgs } from '../../types/digitalCredential/IAbstractDigitalCredentialStore'
2
- import { DigitalCredentialEntity } from '../../entities/digitalCredential/DigitalCredentialEntity'
3
1
  import {
4
2
  CredentialMapper,
5
- decodeSdJwtVc,
6
3
  DocumentFormat,
7
4
  IVerifiableCredential,
8
5
  IVerifiablePresentation,
@@ -10,13 +7,9 @@ import {
10
7
  OriginalVerifiablePresentation,
11
8
  SdJwtDecodedVerifiableCredentialPayload,
12
9
  } from '@sphereon/ssi-types'
13
- import {
14
- CredentialDocumentFormat,
15
- DocumentType,
16
- DigitalCredential,
17
- NonPersistedDigitalCredential,
18
- } from '../../types/digitalCredential/digitalCredential'
19
10
  import { computeEntryHash } from '@veramo/utils'
11
+ import { DigitalCredentialEntity } from '../../entities/digitalCredential/DigitalCredentialEntity'
12
+ import { AddCredentialArgs, CredentialDocumentFormat, DigitalCredential, DocumentType, NonPersistedDigitalCredential } from '../../types'
20
13
 
21
14
  function determineDocumentType(raw: string): DocumentType {
22
15
  const rawDocument = parseRawDocument(raw)
@@ -61,24 +54,24 @@ function determineCredentialDocumentFormat(documentFormat: DocumentFormat): Cred
61
54
  }
62
55
 
63
56
  function getValidUntil(uniformDocument: IVerifiableCredential | IVerifiablePresentation | SdJwtDecodedVerifiableCredentialPayload): Date | undefined {
64
- if ('expirationDate' in uniformDocument) {
57
+ if ('expirationDate' in uniformDocument && uniformDocument.expirationDate) {
65
58
  return new Date(uniformDocument.expirationDate)
66
- } else if ('validUntil' in uniformDocument) {
59
+ } else if ('validUntil' in uniformDocument && uniformDocument.validUntil) {
67
60
  return new Date(uniformDocument.validUntil)
68
- } else if ('exp' in uniformDocument) {
69
- return new Date(uniformDocument.exp)
61
+ } else if ('exp' in uniformDocument && uniformDocument.exp) {
62
+ return new Date(uniformDocument.exp * 1000)
70
63
  }
71
64
  return undefined
72
65
  }
73
66
 
74
67
  function getValidFrom(uniformDocument: IVerifiableCredential | IVerifiablePresentation | SdJwtDecodedVerifiableCredentialPayload): Date | undefined {
75
- if ('issuanceDate' in uniformDocument) {
68
+ if ('issuanceDate' in uniformDocument && uniformDocument.issuanceDate) {
76
69
  return new Date(uniformDocument.issuanceDate)
77
- } else if ('validFrom' in uniformDocument) {
70
+ } else if ('validFrom' in uniformDocument && uniformDocument.validFrom) {
78
71
  return new Date(uniformDocument['validFrom'])
79
- } else if ('nbf' in uniformDocument) {
72
+ } else if ('nbf' in uniformDocument && uniformDocument.nbf) {
80
73
  return new Date(uniformDocument['nbf'] * 1000)
81
- } else if ('iat' in uniformDocument) {
74
+ } else if ('iat' in uniformDocument && uniformDocument.iat) {
82
75
  return new Date(uniformDocument['iat'] * 1000)
83
76
  }
84
77
  return undefined
@@ -90,24 +83,24 @@ export const nonPersistedDigitalCredentialEntityFromAddArgs = (addCredentialArgs
90
83
  if (documentFormat === DocumentFormat.SD_JWT_VC && !addCredentialArgs.opts?.hasher) {
91
84
  throw new Error('No hasher function is provided for SD_JWT credential.')
92
85
  }
86
+ const hasher = addCredentialArgs.opts?.hasher
93
87
  const uniformDocument =
94
- documentFormat === DocumentFormat.SD_JWT_VC
95
- ? decodeSdJwtVc(addCredentialArgs.rawDocument, addCredentialArgs.opts!.hasher!).decodedPayload
96
- : documentType === DocumentType.VC || documentType === DocumentType.C
97
- ? CredentialMapper.toUniformCredential(addCredentialArgs.rawDocument)
98
- : CredentialMapper.toUniformPresentation(addCredentialArgs.rawDocument)
88
+ documentType === DocumentType.VC || documentType === DocumentType.C
89
+ ? CredentialMapper.toUniformCredential(addCredentialArgs.rawDocument, { hasher })
90
+ : CredentialMapper.toUniformPresentation(addCredentialArgs.rawDocument)
99
91
  const validFrom: Date | undefined = getValidFrom(uniformDocument)
100
92
  const validUntil: Date | undefined = getValidUntil(uniformDocument)
93
+ const hash = computeEntryHash(addCredentialArgs.rawDocument)
101
94
  return {
102
95
  ...addCredentialArgs,
103
96
  documentType,
104
97
  documentFormat: determineCredentialDocumentFormat(documentFormat),
105
98
  createdAt: new Date(),
106
- credentialId: uniformDocument.id as string | undefined, // uniformDocument.id is being inferred as JsonValue somehow
107
- hash: computeEntryHash(addCredentialArgs.rawDocument),
99
+ credentialId: uniformDocument.id ?? hash,
100
+ hash,
108
101
  uniformDocument: JSON.stringify(uniformDocument),
109
102
  validFrom,
110
- validUntil,
103
+ ...(validUntil && { validUntil }),
111
104
  lastUpdatedAt: new Date(),
112
105
  }
113
106
  }