@sphereon/ssi-sdk.data-store 0.18.2-next.9 → 0.18.2-next.92

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 (55) hide show
  1. package/dist/contact/AbstractContactStore.d.ts +11 -1
  2. package/dist/contact/AbstractContactStore.d.ts.map +1 -1
  3. package/dist/contact/AbstractContactStore.js.map +1 -1
  4. package/dist/contact/ContactStore.d.ts +27 -15
  5. package/dist/contact/ContactStore.d.ts.map +1 -1
  6. package/dist/contact/ContactStore.js +201 -32
  7. package/dist/contact/ContactStore.js.map +1 -1
  8. package/dist/entities/contact/ElectronicAddressEntity.d.ts +1 -0
  9. package/dist/entities/contact/ElectronicAddressEntity.d.ts.map +1 -1
  10. package/dist/entities/contact/ElectronicAddressEntity.js +4 -0
  11. package/dist/entities/contact/ElectronicAddressEntity.js.map +1 -1
  12. package/dist/entities/contact/IdentityEntity.d.ts +1 -1
  13. package/dist/entities/contact/IdentityEntity.d.ts.map +1 -1
  14. package/dist/entities/contact/PartyEntity.d.ts +2 -0
  15. package/dist/entities/contact/PartyEntity.d.ts.map +1 -1
  16. package/dist/entities/contact/PartyEntity.js +12 -1
  17. package/dist/entities/contact/PartyEntity.js.map +1 -1
  18. package/dist/entities/contact/PhysicalAddressEntity.d.ts +21 -0
  19. package/dist/entities/contact/PhysicalAddressEntity.d.ts.map +1 -0
  20. package/dist/entities/contact/PhysicalAddressEntity.js +126 -0
  21. package/dist/entities/contact/PhysicalAddressEntity.js.map +1 -0
  22. package/dist/index.d.ts +2 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +4 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/issuanceBranding/IssuanceBrandingStore.d.ts.map +1 -1
  27. package/dist/issuanceBranding/IssuanceBrandingStore.js +76 -60
  28. package/dist/issuanceBranding/IssuanceBrandingStore.js.map +1 -1
  29. package/dist/migrations/sqlite/1690925872693-CreateContacts.d.ts.map +1 -1
  30. package/dist/migrations/sqlite/1690925872693-CreateContacts.js +3 -6
  31. package/dist/migrations/sqlite/1690925872693-CreateContacts.js.map +1 -1
  32. package/dist/types/contact/IAbstractContactStore.d.ts +36 -1
  33. package/dist/types/contact/IAbstractContactStore.d.ts.map +1 -1
  34. package/dist/types/contact/contact.d.ts +27 -4
  35. package/dist/types/contact/contact.d.ts.map +1 -1
  36. package/dist/types/contact/contact.js.map +1 -1
  37. package/dist/utils/contact/MappingUtils.d.ts +4 -1
  38. package/dist/utils/contact/MappingUtils.d.ts.map +1 -1
  39. package/dist/utils/contact/MappingUtils.js +37 -1
  40. package/dist/utils/contact/MappingUtils.js.map +1 -1
  41. package/package.json +4 -4
  42. package/src/__tests__/contact.entities.test.ts +340 -23
  43. package/src/__tests__/contact.store.test.ts +629 -10
  44. package/src/contact/AbstractContactStore.ts +38 -16
  45. package/src/contact/ContactStore.ts +278 -58
  46. package/src/entities/contact/ElectronicAddressEntity.ts +3 -0
  47. package/src/entities/contact/IdentityEntity.ts +1 -1
  48. package/src/entities/contact/PartyEntity.ts +11 -1
  49. package/src/entities/contact/PhysicalAddressEntity.ts +87 -0
  50. package/src/index.ts +3 -0
  51. package/src/issuanceBranding/IssuanceBrandingStore.ts +83 -69
  52. package/src/migrations/sqlite/1690925872693-CreateContacts.ts +3 -8
  53. package/src/types/contact/IAbstractContactStore.ts +58 -8
  54. package/src/types/contact/contact.ts +40 -4
  55. package/src/utils/contact/MappingUtils.ts +39 -0
@@ -6,6 +6,7 @@ export type Party = {
6
6
  roles: Array<IdentityRoleEnum>
7
7
  identities: Array<Identity>
8
8
  electronicAddresses: Array<ElectronicAddress>
9
+ physicalAddresses: Array<PhysicalAddress>
9
10
  contact: Contact
10
11
  partyType: PartyType
11
12
  relationships: Array<PartyRelationship>
@@ -14,17 +15,30 @@ export type Party = {
14
15
  }
15
16
  export type NonPersistedParty = Omit<
16
17
  Party,
17
- 'id' | 'identities' | 'electronicAddresses' | 'contact' | 'roles' | 'partyType' | 'relationships' | 'createdAt' | 'lastUpdatedAt'
18
+ | 'id'
19
+ | 'identities'
20
+ | 'electronicAddresses'
21
+ | 'physicalAddresses'
22
+ | 'contact'
23
+ | 'roles'
24
+ | 'partyType'
25
+ | 'relationships'
26
+ | 'createdAt'
27
+ | 'lastUpdatedAt'
18
28
  > & {
19
29
  identities?: Array<NonPersistedIdentity>
20
30
  electronicAddresses?: Array<NonPersistedElectronicAddress>
31
+ physicalAddresses?: Array<NonPersistedPhysicalAddress>
21
32
  contact: NonPersistedContact
22
33
  partyType: NonPersistedPartyType
23
34
  relationships?: Array<NonPersistedPartyRelationship>
24
35
  }
25
- export type PartialParty = Partial<Omit<Party, 'identities' | 'electronicAddresses' | 'contact' | 'partyType' | 'relationships'>> & {
36
+ export type PartialParty = Partial<
37
+ Omit<Party, 'identities' | 'electronicAddresses' | 'physicalAddresses' | 'contact' | 'partyType' | 'relationships'>
38
+ > & {
26
39
  identities?: PartialIdentity
27
40
  electronicAddresses?: PartialElectronicAddress
41
+ physicalAddresses?: PartialPhysicalAddress
28
42
  contact?: PartialContact
29
43
  partyType?: PartialPartyType
30
44
  relationships?: PartialPartyRelationship
@@ -168,9 +182,31 @@ export type ElectronicAddress = {
168
182
  lastUpdatedAt: Date
169
183
  }
170
184
  export type NonPersistedElectronicAddress = Omit<ElectronicAddress, 'id' | 'createdAt' | 'lastUpdatedAt'>
171
- export type PartialElectronicAddress = Partial<ElectronicAddress>
185
+ export type PartialElectronicAddress = Partial<ElectronicAddress> & {
186
+ partyId?: string
187
+ }
188
+
189
+ export type PhysicalAddress = {
190
+ id: string
191
+ type: PhysicalAddressType
192
+ streetName: string
193
+ streetNumber: string
194
+ postalCode: string
195
+ cityName: string
196
+ provinceName: string
197
+ countryCode: string
198
+ buildingName?: string
199
+ createdAt: Date
200
+ lastUpdatedAt: Date
201
+ }
202
+ export type NonPersistedPhysicalAddress = Omit<PhysicalAddress, 'id' | 'createdAt' | 'lastUpdatedAt'>
203
+ export type PartialPhysicalAddress = Partial<PhysicalAddress> & {
204
+ partyId?: string
205
+ }
206
+
207
+ export type ElectronicAddressType = 'email' | 'phone'
172
208
 
173
- export type ElectronicAddressType = 'email'
209
+ export type PhysicalAddressType = 'home' | 'visit' | 'postal'
174
210
 
175
211
  export enum IdentityRoleEnum {
176
212
  ISSUER = 'issuer',
@@ -22,11 +22,13 @@ import {
22
22
  NonPersistedParty,
23
23
  NonPersistedPartyRelationship,
24
24
  NonPersistedPartyType,
25
+ NonPersistedPhysicalAddress,
25
26
  OpenIdConfig,
26
27
  Organization,
27
28
  Party,
28
29
  PartyRelationship,
29
30
  PartyType,
31
+ PhysicalAddress,
30
32
  } from '../../types'
31
33
  import { PartyEntity } from '../../entities/contact/PartyEntity'
32
34
  import { IdentityEntity } from '../../entities/contact/IdentityEntity'
@@ -42,6 +44,7 @@ import { DidAuthConfigEntity } from '../../entities/contact/DidAuthConfigEntity'
42
44
  import { IdentityMetadataItemEntity } from '../../entities/contact/IdentityMetadataItemEntity'
43
45
  import { OpenIdConfigEntity } from '../../entities/contact/OpenIdConfigEntity'
44
46
  import { PartyTypeEntity } from '../../entities/contact/PartyTypeEntity'
47
+ import { PhysicalAddressEntity } from '../../entities/contact/PhysicalAddressEntity'
45
48
 
46
49
  export const partyEntityFrom = (party: NonPersistedParty): PartyEntity => {
47
50
  const partyEntity: PartyEntity = new PartyEntity()
@@ -50,6 +53,9 @@ export const partyEntityFrom = (party: NonPersistedParty): PartyEntity => {
50
53
  partyEntity.electronicAddresses = party.electronicAddresses
51
54
  ? party.electronicAddresses.map((electronicAddress: NonPersistedElectronicAddress) => electronicAddressEntityFrom(electronicAddress))
52
55
  : []
56
+ partyEntity.physicalAddresses = party.physicalAddresses
57
+ ? party.physicalAddresses.map((physicalAddress: NonPersistedPhysicalAddress) => physicalAddressEntityFrom(physicalAddress))
58
+ : []
53
59
  partyEntity.partyType = partyTypeEntityFrom(party.partyType)
54
60
  partyEntity.contact = contactEntityFrom(party.contact)
55
61
 
@@ -65,6 +71,9 @@ export const partyFrom = (party: PartyEntity): Party => {
65
71
  electronicAddresses: party.electronicAddresses
66
72
  ? party.electronicAddresses.map((electronicAddress: ElectronicAddressEntity) => electronicAddressFrom(electronicAddress))
67
73
  : [],
74
+ physicalAddresses: party.physicalAddresses
75
+ ? party.physicalAddresses.map((physicalAddress: PhysicalAddressEntity) => physicalAddressFrom(physicalAddress))
76
+ : [],
68
77
  relationships: party.relationships ? party.relationships.map((relationship: PartyRelationshipEntity) => partyRelationshipFrom(relationship)) : [],
69
78
  partyType: partyTypeFrom(party.partyType),
70
79
  contact: contactFrom(party.contact),
@@ -168,6 +177,36 @@ export const electronicAddressFrom = (electronicAddress: ElectronicAddressEntity
168
177
  }
169
178
  }
170
179
 
180
+ export const physicalAddressEntityFrom = (physicalAddress: NonPersistedPhysicalAddress): PhysicalAddressEntity => {
181
+ const physicalAddressEntity: PhysicalAddressEntity = new PhysicalAddressEntity()
182
+ physicalAddressEntity.type = physicalAddress.type
183
+ physicalAddressEntity.streetName = physicalAddress.streetName
184
+ physicalAddressEntity.streetNumber = physicalAddress.streetNumber
185
+ physicalAddressEntity.postalCode = physicalAddress.postalCode
186
+ physicalAddressEntity.cityName = physicalAddress.cityName
187
+ physicalAddressEntity.provinceName = physicalAddress.provinceName
188
+ physicalAddressEntity.countryCode = physicalAddress.countryCode
189
+ physicalAddressEntity.buildingName = physicalAddress.buildingName
190
+
191
+ return physicalAddressEntity
192
+ }
193
+
194
+ export const physicalAddressFrom = (physicalAddress: PhysicalAddressEntity): PhysicalAddress => {
195
+ return {
196
+ id: physicalAddress.id,
197
+ type: physicalAddress.type,
198
+ streetName: physicalAddress.streetName,
199
+ streetNumber: physicalAddress.streetNumber,
200
+ postalCode: physicalAddress.postalCode,
201
+ cityName: physicalAddress.cityName,
202
+ provinceName: physicalAddress.provinceName,
203
+ countryCode: physicalAddress.countryCode,
204
+ buildingName: physicalAddress.buildingName,
205
+ createdAt: physicalAddress.createdAt,
206
+ lastUpdatedAt: physicalAddress.lastUpdatedAt,
207
+ }
208
+ }
209
+
171
210
  export const identityEntityFrom = (args: NonPersistedIdentity): IdentityEntity => {
172
211
  const identityEntity: IdentityEntity = new IdentityEntity()
173
212
  identityEntity.alias = args.alias