@sphereon/ssi-sdk.data-store 0.15.2-next.6 → 0.15.2-next.77

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 (213) hide show
  1. package/dist/contact/AbstractContactStore.d.ts +21 -11
  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 +25 -21
  5. package/dist/contact/ContactStore.d.ts.map +1 -1
  6. package/dist/contact/ContactStore.js +216 -136
  7. package/dist/contact/ContactStore.js.map +1 -1
  8. package/dist/entities/contact/BaseConfigEntity.d.ts +2 -0
  9. package/dist/entities/contact/BaseConfigEntity.d.ts.map +1 -1
  10. package/dist/entities/contact/BaseConfigEntity.js +10 -2
  11. package/dist/entities/contact/BaseConfigEntity.js.map +1 -1
  12. package/dist/entities/contact/BaseContactEntity.d.ts +10 -0
  13. package/dist/entities/contact/BaseContactEntity.d.ts.map +1 -0
  14. package/dist/entities/contact/BaseContactEntity.js +54 -0
  15. package/dist/entities/contact/BaseContactEntity.js.map +1 -0
  16. package/dist/entities/contact/ConnectionEntity.d.ts +1 -2
  17. package/dist/entities/contact/ConnectionEntity.d.ts.map +1 -1
  18. package/dist/entities/contact/ConnectionEntity.js +2 -21
  19. package/dist/entities/contact/ConnectionEntity.js.map +1 -1
  20. package/dist/entities/contact/CorrelationIdentifierEntity.d.ts +2 -3
  21. package/dist/entities/contact/CorrelationIdentifierEntity.d.ts.map +1 -1
  22. package/dist/entities/contact/CorrelationIdentifierEntity.js +8 -11
  23. package/dist/entities/contact/CorrelationIdentifierEntity.js.map +1 -1
  24. package/dist/entities/contact/DidAuthConfigEntity.d.ts +0 -4
  25. package/dist/entities/contact/DidAuthConfigEntity.d.ts.map +1 -1
  26. package/dist/entities/contact/DidAuthConfigEntity.js +1 -17
  27. package/dist/entities/contact/DidAuthConfigEntity.js.map +1 -1
  28. package/dist/entities/contact/ElectronicAddressEntity.d.ts +14 -0
  29. package/dist/entities/contact/ElectronicAddressEntity.d.ts.map +1 -0
  30. package/dist/entities/contact/ElectronicAddressEntity.js +92 -0
  31. package/dist/entities/contact/ElectronicAddressEntity.js.map +1 -0
  32. package/dist/entities/contact/IdentityEntity.d.ts +5 -6
  33. package/dist/entities/contact/IdentityEntity.d.ts.map +1 -1
  34. package/dist/entities/contact/IdentityEntity.js +15 -20
  35. package/dist/entities/contact/IdentityEntity.js.map +1 -1
  36. package/dist/entities/contact/IdentityMetadataItemEntity.d.ts +1 -3
  37. package/dist/entities/contact/IdentityMetadataItemEntity.d.ts.map +1 -1
  38. package/dist/entities/contact/IdentityMetadataItemEntity.js +7 -10
  39. package/dist/entities/contact/IdentityMetadataItemEntity.js.map +1 -1
  40. package/dist/entities/contact/NaturalPersonEntity.d.ts +9 -0
  41. package/dist/entities/contact/NaturalPersonEntity.d.ts.map +1 -0
  42. package/dist/entities/contact/NaturalPersonEntity.js +72 -0
  43. package/dist/entities/contact/NaturalPersonEntity.js.map +1 -0
  44. package/dist/entities/contact/OpenIdConfigEntity.d.ts +0 -4
  45. package/dist/entities/contact/OpenIdConfigEntity.d.ts.map +1 -1
  46. package/dist/entities/contact/OpenIdConfigEntity.js +1 -22
  47. package/dist/entities/contact/OpenIdConfigEntity.js.map +1 -1
  48. package/dist/entities/contact/OrganizationEntity.d.ts +9 -0
  49. package/dist/entities/contact/OrganizationEntity.d.ts.map +1 -0
  50. package/dist/entities/contact/OrganizationEntity.js +67 -0
  51. package/dist/entities/contact/OrganizationEntity.js.map +1 -0
  52. package/dist/entities/contact/PartyEntity.d.ts +21 -0
  53. package/dist/entities/contact/PartyEntity.d.ts.map +1 -0
  54. package/dist/entities/contact/PartyEntity.js +155 -0
  55. package/dist/entities/contact/PartyEntity.js.map +1 -0
  56. package/dist/entities/contact/PartyRelationshipEntity.d.ts +13 -0
  57. package/dist/entities/contact/PartyRelationshipEntity.d.ts.map +1 -0
  58. package/dist/entities/contact/PartyRelationshipEntity.js +95 -0
  59. package/dist/entities/contact/PartyRelationshipEntity.js.map +1 -0
  60. package/dist/entities/contact/PartyTypeEntity.d.ts +15 -0
  61. package/dist/entities/contact/PartyTypeEntity.d.ts.map +1 -0
  62. package/dist/entities/contact/{ContactEntity.js → PartyTypeEntity.js} +35 -36
  63. package/dist/entities/contact/PartyTypeEntity.js.map +1 -0
  64. package/dist/entities/statusList2021/StatusList2021Entity.d.ts +19 -0
  65. package/dist/entities/statusList2021/StatusList2021Entity.d.ts.map +1 -0
  66. package/dist/entities/statusList2021/StatusList2021Entity.js +115 -0
  67. package/dist/entities/statusList2021/StatusList2021Entity.js.map +1 -0
  68. package/dist/entities/statusList2021/StatusList2021EntryEntity.d.ts +11 -0
  69. package/dist/entities/statusList2021/StatusList2021EntryEntity.d.ts.map +1 -0
  70. package/dist/entities/statusList2021/StatusList2021EntryEntity.js +51 -0
  71. package/dist/entities/statusList2021/StatusList2021EntryEntity.js.map +1 -0
  72. package/dist/index.d.ts +20 -9
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +27 -11
  75. package/dist/index.js.map +1 -1
  76. package/dist/migrations/generic/1-CreateContacts.d.ts.map +1 -1
  77. package/dist/migrations/generic/1-CreateContacts.js +36 -32
  78. package/dist/migrations/generic/1-CreateContacts.js.map +1 -1
  79. package/dist/migrations/generic/2-CreateContacts.d.ts +7 -0
  80. package/dist/migrations/generic/2-CreateContacts.d.ts.map +1 -0
  81. package/dist/migrations/generic/2-CreateContacts.js +76 -0
  82. package/dist/migrations/generic/2-CreateContacts.js.map +1 -0
  83. package/dist/migrations/generic/{1-CreateIssuanceBranding.d.ts → 2-CreateIssuanceBranding.d.ts} +1 -1
  84. package/dist/migrations/generic/2-CreateIssuanceBranding.d.ts.map +1 -0
  85. package/dist/migrations/generic/2-CreateIssuanceBranding.js +76 -0
  86. package/dist/migrations/generic/2-CreateIssuanceBranding.js.map +1 -0
  87. package/dist/migrations/generic/3-CreateStatusList.d.ts +7 -0
  88. package/dist/migrations/generic/3-CreateStatusList.d.ts.map +1 -0
  89. package/dist/migrations/generic/{1-CreateIssuanceBranding.js → 3-CreateStatusList.js} +11 -11
  90. package/dist/migrations/generic/3-CreateStatusList.js.map +1 -0
  91. package/dist/migrations/generic/index.d.ts +5 -0
  92. package/dist/migrations/generic/index.d.ts.map +1 -1
  93. package/dist/migrations/generic/index.js +10 -3
  94. package/dist/migrations/generic/index.js.map +1 -1
  95. package/dist/migrations/internal-migrations-ormconfig.d.ts +2 -1
  96. package/dist/migrations/internal-migrations-ormconfig.d.ts.map +1 -1
  97. package/dist/migrations/internal-migrations-ormconfig.js +0 -2
  98. package/dist/migrations/internal-migrations-ormconfig.js.map +1 -1
  99. package/dist/migrations/postgres/1659463079428-CreateContacts.d.ts.map +1 -1
  100. package/dist/migrations/postgres/1659463079428-CreateContacts.js +4 -2
  101. package/dist/migrations/postgres/1659463079428-CreateContacts.js.map +1 -1
  102. package/dist/migrations/postgres/1685628974232-CreateIssuanceBranding.d.ts.map +1 -1
  103. package/dist/migrations/postgres/1685628974232-CreateIssuanceBranding.js +2 -0
  104. package/dist/migrations/postgres/1685628974232-CreateIssuanceBranding.js.map +1 -1
  105. package/dist/migrations/postgres/1690925872592-CreateContacts.d.ts +7 -0
  106. package/dist/migrations/postgres/1690925872592-CreateContacts.d.ts.map +1 -0
  107. package/dist/migrations/postgres/1690925872592-CreateContacts.js +69 -0
  108. package/dist/migrations/postgres/1690925872592-CreateContacts.js.map +1 -0
  109. package/dist/migrations/postgres/CreateStatusList1693866470001-CreateStatusList.d.ts +7 -0
  110. package/dist/migrations/postgres/CreateStatusList1693866470001-CreateStatusList.d.ts.map +1 -0
  111. package/dist/migrations/postgres/CreateStatusList1693866470001-CreateStatusList.js +32 -0
  112. package/dist/migrations/postgres/CreateStatusList1693866470001-CreateStatusList.js.map +1 -0
  113. package/dist/migrations/postgres/uuid.d.ts +3 -0
  114. package/dist/migrations/postgres/uuid.d.ts.map +1 -0
  115. package/dist/migrations/postgres/uuid.js +25 -0
  116. package/dist/migrations/postgres/uuid.js.map +1 -0
  117. package/dist/migrations/sqlite/1690925872693-CreateContacts.d.ts +7 -0
  118. package/dist/migrations/sqlite/1690925872693-CreateContacts.d.ts.map +1 -0
  119. package/dist/migrations/sqlite/1690925872693-CreateContacts.js +108 -0
  120. package/dist/migrations/sqlite/1690925872693-CreateContacts.js.map +1 -0
  121. package/dist/migrations/sqlite/1693866470000-CreateStatusList.d.ts +7 -0
  122. package/dist/migrations/sqlite/1693866470000-CreateStatusList.d.ts.map +1 -0
  123. package/dist/migrations/sqlite/1693866470000-CreateStatusList.js +32 -0
  124. package/dist/migrations/sqlite/1693866470000-CreateStatusList.js.map +1 -0
  125. package/dist/statusList/IStatusListStore.d.ts +20 -0
  126. package/dist/statusList/IStatusListStore.d.ts.map +1 -0
  127. package/dist/statusList/IStatusListStore.js +3 -0
  128. package/dist/statusList/IStatusListStore.js.map +1 -0
  129. package/dist/statusList/StatusListStore.d.ts +36 -0
  130. package/dist/statusList/StatusListStore.d.ts.map +1 -0
  131. package/dist/statusList/StatusListStore.js +213 -0
  132. package/dist/statusList/StatusListStore.js.map +1 -0
  133. package/dist/types/contact/IAbstractContactStore.d.ts +70 -36
  134. package/dist/types/contact/IAbstractContactStore.d.ts.map +1 -1
  135. package/dist/types/contact/contact.d.ts +139 -56
  136. package/dist/types/contact/contact.d.ts.map +1 -1
  137. package/dist/types/contact/contact.js +6 -1
  138. package/dist/types/contact/contact.js.map +1 -1
  139. package/dist/types/index.d.ts +3 -0
  140. package/dist/types/index.d.ts.map +1 -1
  141. package/dist/types/index.js +3 -0
  142. package/dist/types/index.js.map +1 -1
  143. package/dist/types/statusList/IAbstractStatusListStore.d.ts +38 -0
  144. package/dist/types/statusList/IAbstractStatusListStore.d.ts.map +1 -0
  145. package/dist/types/statusList/IAbstractStatusListStore.js +3 -0
  146. package/dist/types/statusList/IAbstractStatusListStore.js.map +1 -0
  147. package/dist/types/statusList/statusList.d.ts +25 -0
  148. package/dist/types/statusList/statusList.d.ts.map +1 -0
  149. package/dist/types/statusList/statusList.js +3 -0
  150. package/dist/types/statusList/statusList.js.map +1 -0
  151. package/dist/types/validation/validation.d.ts +4 -0
  152. package/dist/types/validation/validation.d.ts.map +1 -0
  153. package/dist/types/validation/validation.js +3 -0
  154. package/dist/types/validation/validation.js.map +1 -0
  155. package/dist/utils/ValidatorUtils.d.ts +4 -0
  156. package/dist/utils/ValidatorUtils.d.ts.map +1 -0
  157. package/dist/utils/ValidatorUtils.js +13 -0
  158. package/dist/utils/ValidatorUtils.js.map +1 -0
  159. package/dist/utils/contact/MappingUtils.d.ts +47 -0
  160. package/dist/utils/contact/MappingUtils.d.ts.map +1 -0
  161. package/dist/utils/contact/MappingUtils.js +291 -0
  162. package/dist/utils/contact/MappingUtils.js.map +1 -0
  163. package/package.json +5 -4
  164. package/src/__tests__/contact.entities.test.ts +1457 -195
  165. package/src/__tests__/contact.store.test.ts +1302 -266
  166. package/src/contact/AbstractContactStore.ts +44 -22
  167. package/src/contact/ContactStore.ts +328 -204
  168. package/src/entities/contact/BaseConfigEntity.ts +10 -2
  169. package/src/entities/contact/BaseContactEntity.ts +30 -0
  170. package/src/entities/contact/ConnectionEntity.ts +4 -23
  171. package/src/entities/contact/CorrelationIdentifierEntity.ts +9 -13
  172. package/src/entities/contact/DidAuthConfigEntity.ts +1 -18
  173. package/src/entities/contact/ElectronicAddressEntity.ts +60 -0
  174. package/src/entities/contact/IdentityEntity.ts +18 -25
  175. package/src/entities/contact/IdentityMetadataItemEntity.ts +8 -12
  176. package/src/entities/contact/NaturalPersonEntity.ts +38 -0
  177. package/src/entities/contact/OpenIdConfigEntity.ts +1 -23
  178. package/src/entities/contact/OrganizationEntity.ts +34 -0
  179. package/src/entities/contact/PartyEntity.ts +118 -0
  180. package/src/entities/contact/PartyRelationshipEntity.ts +61 -0
  181. package/src/entities/contact/PartyTypeEntity.ts +59 -0
  182. package/src/entities/statusList2021/StatusList2021Entity.ts +95 -0
  183. package/src/entities/statusList2021/StatusList2021EntryEntity.ts +29 -0
  184. package/src/index.ts +36 -17
  185. package/src/migrations/generic/1-CreateContacts.ts +46 -36
  186. package/src/migrations/generic/2-CreateContacts.ts +64 -0
  187. package/src/migrations/generic/2-CreateIssuanceBranding.ts +62 -0
  188. package/src/migrations/generic/{1-CreateIssuanceBranding.ts → 3-CreateStatusList.ts} +9 -9
  189. package/src/migrations/generic/index.ts +11 -2
  190. package/src/migrations/internal-migrations-ormconfig.ts +2 -4
  191. package/src/migrations/postgres/1659463079428-CreateContacts.ts +4 -2
  192. package/src/migrations/postgres/1685628974232-CreateIssuanceBranding.ts +2 -0
  193. package/src/migrations/postgres/1690925872592-CreateContacts.ts +94 -0
  194. package/src/migrations/postgres/CreateStatusList1693866470001-CreateStatusList.ts +24 -0
  195. package/src/migrations/postgres/uuid.ts +12 -0
  196. package/src/migrations/sqlite/1690925872693-CreateContacts.ts +163 -0
  197. package/src/migrations/sqlite/1693866470000-CreateStatusList.ts +24 -0
  198. package/src/statusList/IStatusListStore.ts +44 -0
  199. package/src/statusList/StatusListStore.ts +237 -0
  200. package/src/types/contact/IAbstractContactStore.ts +84 -27
  201. package/src/types/contact/contact.ts +144 -50
  202. package/src/types/index.ts +4 -0
  203. package/src/types/statusList/IAbstractStatusListStore.ts +47 -0
  204. package/src/types/statusList/statusList.ts +39 -0
  205. package/src/types/validation/validation.ts +3 -0
  206. package/src/utils/ValidatorUtils.ts +10 -0
  207. package/src/utils/contact/MappingUtils.ts +344 -0
  208. package/dist/entities/contact/ContactEntity.d.ts +0 -16
  209. package/dist/entities/contact/ContactEntity.d.ts.map +0 -1
  210. package/dist/entities/contact/ContactEntity.js.map +0 -1
  211. package/dist/migrations/generic/1-CreateIssuanceBranding.d.ts.map +0 -1
  212. package/dist/migrations/generic/1-CreateIssuanceBranding.js.map +0 -1
  213. package/src/entities/contact/ContactEntity.ts +0 -74
@@ -0,0 +1,344 @@
1
+ import {
2
+ Connection,
3
+ ConnectionConfig,
4
+ Contact,
5
+ CorrelationIdentifier,
6
+ DidAuthConfig,
7
+ ElectronicAddress,
8
+ Identity,
9
+ MetadataItem,
10
+ NaturalPerson,
11
+ NonPersistedConnection,
12
+ NonPersistedConnectionConfig,
13
+ NonPersistedContact,
14
+ NonPersistedCorrelationIdentifier,
15
+ NonPersistedDidAuthConfig,
16
+ NonPersistedElectronicAddress,
17
+ NonPersistedIdentity,
18
+ NonPersistedMetadataItem,
19
+ NonPersistedNaturalPerson,
20
+ NonPersistedOpenIdConfig,
21
+ NonPersistedOrganization,
22
+ NonPersistedParty,
23
+ NonPersistedPartyRelationship,
24
+ NonPersistedPartyType,
25
+ OpenIdConfig,
26
+ Organization,
27
+ Party,
28
+ PartyRelationship,
29
+ PartyType,
30
+ } from '../../types'
31
+ import { PartyEntity } from '../../entities/contact/PartyEntity'
32
+ import { IdentityEntity } from '../../entities/contact/IdentityEntity'
33
+ import { ElectronicAddressEntity } from '../../entities/contact/ElectronicAddressEntity'
34
+ import { PartyRelationshipEntity } from '../../entities/contact/PartyRelationshipEntity'
35
+ import { BaseContactEntity } from '../../entities/contact/BaseContactEntity'
36
+ import { NaturalPersonEntity } from '../../entities/contact/NaturalPersonEntity'
37
+ import { OrganizationEntity } from '../../entities/contact/OrganizationEntity'
38
+ import { ConnectionEntity } from '../../entities/contact/ConnectionEntity'
39
+ import { BaseConfigEntity } from '../../entities/contact/BaseConfigEntity'
40
+ import { CorrelationIdentifierEntity } from '../../entities/contact/CorrelationIdentifierEntity'
41
+ import { DidAuthConfigEntity } from '../../entities/contact/DidAuthConfigEntity'
42
+ import { IdentityMetadataItemEntity } from '../../entities/contact/IdentityMetadataItemEntity'
43
+ import { OpenIdConfigEntity } from '../../entities/contact/OpenIdConfigEntity'
44
+ import { PartyTypeEntity } from '../../entities/contact/PartyTypeEntity'
45
+
46
+ export const partyEntityFrom = (party: NonPersistedParty): PartyEntity => {
47
+ const partyEntity: PartyEntity = new PartyEntity()
48
+ partyEntity.uri = party.uri
49
+ partyEntity.identities = party.identities ? party.identities.map((identity: NonPersistedIdentity) => identityEntityFrom(identity)) : []
50
+ partyEntity.electronicAddresses = party.electronicAddresses
51
+ ? party.electronicAddresses.map((electronicAddress: NonPersistedElectronicAddress) => electronicAddressEntityFrom(electronicAddress))
52
+ : []
53
+ partyEntity.partyType = partyTypeEntityFrom(party.partyType)
54
+ partyEntity.contact = contactEntityFrom(party.contact)
55
+
56
+ return partyEntity
57
+ }
58
+
59
+ export const partyFrom = (party: PartyEntity): Party => {
60
+ return {
61
+ id: party.id,
62
+ uri: party.uri,
63
+ roles: [...new Set(party.identities?.flatMap((identity: IdentityEntity) => identity.roles))] ?? [],
64
+ identities: party.identities ? party.identities.map((identity: IdentityEntity) => identityFrom(identity)) : [],
65
+ electronicAddresses: party.electronicAddresses
66
+ ? party.electronicAddresses.map((electronicAddress: ElectronicAddressEntity) => electronicAddressFrom(electronicAddress))
67
+ : [],
68
+ relationships: party.relationships ? party.relationships.map((relationship: PartyRelationshipEntity) => partyRelationshipFrom(relationship)) : [],
69
+ partyType: partyTypeFrom(party.partyType),
70
+ contact: contactFrom(party.contact),
71
+ createdAt: party.createdAt,
72
+ lastUpdatedAt: party.lastUpdatedAt,
73
+ }
74
+ }
75
+
76
+ export const contactEntityFrom = (contact: NonPersistedContact): BaseContactEntity => {
77
+ if (isNaturalPerson(contact)) {
78
+ return naturalPersonEntityFrom(<NonPersistedNaturalPerson>contact)
79
+ } else if (isOrganization(contact)) {
80
+ return organizationEntityFrom(<NonPersistedOrganization>contact)
81
+ }
82
+
83
+ throw new Error('Contact not supported')
84
+ }
85
+
86
+ export const contactFrom = (contact: BaseContactEntity): Contact => {
87
+ if (isNaturalPerson(contact)) {
88
+ return naturalPersonFrom(<NaturalPersonEntity>contact)
89
+ } else if (isOrganization(contact)) {
90
+ return organizationFrom(<OrganizationEntity>contact)
91
+ }
92
+
93
+ throw new Error('Contact not supported')
94
+ }
95
+
96
+ export const isNaturalPerson = (contact: NonPersistedContact | BaseContactEntity): contact is NonPersistedNaturalPerson | NaturalPersonEntity =>
97
+ 'firstName' in contact && 'lastName' in contact
98
+
99
+ export const isOrganization = (contact: NonPersistedContact | BaseContactEntity): contact is NonPersistedOrganization | OrganizationEntity =>
100
+ 'legalName' in contact
101
+
102
+ export const connectionEntityFrom = (connection: NonPersistedConnection): ConnectionEntity => {
103
+ const connectionEntity: ConnectionEntity = new ConnectionEntity()
104
+ connectionEntity.type = connection.type
105
+ connectionEntity.config = configEntityFrom(connection.config)
106
+
107
+ return connectionEntity
108
+ }
109
+
110
+ export const connectionFrom = (connection: ConnectionEntity): Connection => {
111
+ return {
112
+ id: connection.id,
113
+ type: connection.type,
114
+ config: configFrom(connection.config),
115
+ }
116
+ }
117
+
118
+ const configEntityFrom = (config: NonPersistedConnectionConfig): BaseConfigEntity => {
119
+ if (isOpenIdConfig(config)) {
120
+ return openIdConfigEntityFrom(<NonPersistedOpenIdConfig>config)
121
+ } else if (isDidAuthConfig(config)) {
122
+ return didAuthConfigEntityFrom(<NonPersistedDidAuthConfig>config)
123
+ }
124
+
125
+ throw new Error('config type not supported')
126
+ }
127
+
128
+ export const correlationIdentifierEntityFrom = (identifier: NonPersistedCorrelationIdentifier): CorrelationIdentifierEntity => {
129
+ const identifierEntity: CorrelationIdentifierEntity = new CorrelationIdentifierEntity()
130
+ identifierEntity.type = identifier.type
131
+ identifierEntity.correlationId = identifier.correlationId
132
+
133
+ return identifierEntity
134
+ }
135
+
136
+ export const correlationIdentifierFrom = (identifier: CorrelationIdentifierEntity): CorrelationIdentifier => {
137
+ return {
138
+ id: identifier.id,
139
+ type: identifier.type,
140
+ correlationId: identifier.correlationId,
141
+ }
142
+ }
143
+
144
+ export const didAuthConfigEntityFrom = (config: NonPersistedDidAuthConfig): DidAuthConfigEntity => {
145
+ const didAuthConfig: DidAuthConfigEntity = new DidAuthConfigEntity()
146
+ didAuthConfig.identifier = config.identifier.did
147
+ didAuthConfig.redirectUrl = config.redirectUrl
148
+ didAuthConfig.sessionId = config.sessionId
149
+
150
+ return didAuthConfig
151
+ }
152
+
153
+ export const electronicAddressEntityFrom = (electronicAddress: NonPersistedElectronicAddress): ElectronicAddressEntity => {
154
+ const electronicAddressEntity: ElectronicAddressEntity = new ElectronicAddressEntity()
155
+ electronicAddressEntity.type = electronicAddress.type
156
+ electronicAddressEntity.electronicAddress = electronicAddress.electronicAddress
157
+
158
+ return electronicAddressEntity
159
+ }
160
+
161
+ export const electronicAddressFrom = (electronicAddress: ElectronicAddressEntity): ElectronicAddress => {
162
+ return {
163
+ id: electronicAddress.id,
164
+ type: electronicAddress.type,
165
+ electronicAddress: electronicAddress.electronicAddress,
166
+ createdAt: electronicAddress.createdAt,
167
+ lastUpdatedAt: electronicAddress.lastUpdatedAt,
168
+ }
169
+ }
170
+
171
+ export const identityEntityFrom = (args: NonPersistedIdentity): IdentityEntity => {
172
+ const identityEntity: IdentityEntity = new IdentityEntity()
173
+ identityEntity.alias = args.alias
174
+ identityEntity.roles = args.roles
175
+ identityEntity.identifier = correlationIdentifierEntityFrom(args.identifier)
176
+ identityEntity.connection = args.connection ? connectionEntityFrom(args.connection) : undefined
177
+ identityEntity.metadata = args.metadata ? args.metadata.map((item: NonPersistedMetadataItem) => metadataItemEntityFrom(item)) : []
178
+
179
+ return identityEntity
180
+ }
181
+
182
+ export const identityFrom = (identity: IdentityEntity): Identity => {
183
+ return {
184
+ id: identity.id,
185
+ alias: identity.alias,
186
+ roles: identity.roles,
187
+ identifier: correlationIdentifierFrom(identity.identifier),
188
+ ...(identity.connection && { connection: connectionFrom(identity.connection) }),
189
+ metadata: identity.metadata ? identity.metadata.map((item: IdentityMetadataItemEntity) => metadataItemFrom(item)) : [],
190
+ createdAt: identity.createdAt,
191
+ lastUpdatedAt: identity.createdAt,
192
+ }
193
+ }
194
+
195
+ export const metadataItemEntityFrom = (item: NonPersistedMetadataItem): IdentityMetadataItemEntity => {
196
+ const metadataItemEntity: IdentityMetadataItemEntity = new IdentityMetadataItemEntity()
197
+ metadataItemEntity.label = item.label
198
+ metadataItemEntity.value = item.value
199
+
200
+ return metadataItemEntity
201
+ }
202
+
203
+ export const metadataItemFrom = (item: IdentityMetadataItemEntity): MetadataItem => {
204
+ return {
205
+ id: item.id,
206
+ label: item.label,
207
+ value: item.value,
208
+ }
209
+ }
210
+
211
+ export const naturalPersonEntityFrom = (naturalPerson: NonPersistedNaturalPerson): NaturalPersonEntity => {
212
+ const naturalPersonEntity: NaturalPersonEntity = new NaturalPersonEntity()
213
+ naturalPersonEntity.firstName = naturalPerson.firstName
214
+ naturalPersonEntity.middleName = naturalPerson.middleName
215
+ naturalPersonEntity.lastName = naturalPerson.lastName
216
+ naturalPersonEntity.displayName = naturalPerson.displayName
217
+
218
+ return naturalPersonEntity
219
+ }
220
+
221
+ export const naturalPersonFrom = (naturalPerson: NaturalPersonEntity): NaturalPerson => {
222
+ return {
223
+ id: naturalPerson.id,
224
+ firstName: naturalPerson.firstName,
225
+ middleName: naturalPerson.middleName,
226
+ lastName: naturalPerson.lastName,
227
+ displayName: naturalPerson.displayName,
228
+ createdAt: naturalPerson.createdAt,
229
+ lastUpdatedAt: naturalPerson.lastUpdatedAt,
230
+ }
231
+ }
232
+
233
+ export const openIdConfigEntityFrom = (config: NonPersistedOpenIdConfig): OpenIdConfigEntity => {
234
+ const openIdConfig: OpenIdConfigEntity = new OpenIdConfigEntity()
235
+ openIdConfig.clientId = config.clientId
236
+ openIdConfig.clientSecret = config.clientSecret
237
+ openIdConfig.scopes = config.scopes
238
+ openIdConfig.issuer = config.issuer
239
+ openIdConfig.redirectUrl = config.redirectUrl
240
+ openIdConfig.dangerouslyAllowInsecureHttpRequests = config.dangerouslyAllowInsecureHttpRequests
241
+ openIdConfig.clientAuthMethod = config.clientAuthMethod
242
+
243
+ return openIdConfig
244
+ }
245
+
246
+ export const organizationEntityFrom = (organization: NonPersistedOrganization): OrganizationEntity => {
247
+ const organizationEntity: OrganizationEntity = new OrganizationEntity()
248
+ organizationEntity.legalName = organization.legalName
249
+ organizationEntity.displayName = organization.displayName
250
+
251
+ return organizationEntity
252
+ }
253
+
254
+ export const organizationFrom = (organization: OrganizationEntity): Organization => {
255
+ return {
256
+ id: organization.id,
257
+ legalName: organization.legalName,
258
+ displayName: organization.displayName,
259
+ createdAt: organization.createdAt,
260
+ lastUpdatedAt: organization.lastUpdatedAt,
261
+ }
262
+ }
263
+
264
+ export const partyRelationshipEntityFrom = (relationship: NonPersistedPartyRelationship): PartyRelationshipEntity => {
265
+ const partyRelationshipEntity: PartyRelationshipEntity = new PartyRelationshipEntity()
266
+ partyRelationshipEntity.leftId = relationship.leftId
267
+ partyRelationshipEntity.rightId = relationship.rightId
268
+
269
+ return partyRelationshipEntity
270
+ }
271
+
272
+ export const partyRelationshipFrom = (relationship: PartyRelationshipEntity): PartyRelationship => {
273
+ return {
274
+ id: relationship.id,
275
+ leftId: relationship.leftId,
276
+ rightId: relationship.rightId,
277
+ createdAt: relationship.createdAt,
278
+ lastUpdatedAt: relationship.lastUpdatedAt,
279
+ }
280
+ }
281
+
282
+ export const partyTypeEntityFrom = (args: NonPersistedPartyType): PartyTypeEntity => {
283
+ const partyTypeEntity: PartyTypeEntity = new PartyTypeEntity()
284
+ if (args.id) {
285
+ partyTypeEntity.id = args.id
286
+ }
287
+ partyTypeEntity.type = args.type
288
+ partyTypeEntity.name = args.name
289
+ partyTypeEntity.description = args.description
290
+ partyTypeEntity.tenantId = args.tenantId
291
+
292
+ return partyTypeEntity
293
+ }
294
+
295
+ export const partyTypeFrom = (partyType: PartyTypeEntity): PartyType => {
296
+ return {
297
+ id: partyType.id,
298
+ type: partyType.type,
299
+ name: partyType.name,
300
+ tenantId: partyType.tenantId,
301
+ description: partyType.description,
302
+ createdAt: partyType.createdAt,
303
+ lastUpdatedAt: partyType.lastUpdatedAt,
304
+ }
305
+ }
306
+
307
+ export const configFrom = (config: BaseConfigEntity): ConnectionConfig => {
308
+ if (isOpenIdConfig(config)) {
309
+ return openIdConfigFrom(<OpenIdConfigEntity>config)
310
+ } else if (isDidAuthConfig(config)) {
311
+ return didAuthConfigFrom(<DidAuthConfigEntity>config)
312
+ }
313
+
314
+ throw new Error('config type not supported')
315
+ }
316
+
317
+ export const openIdConfigFrom = (config: OpenIdConfigEntity): OpenIdConfig => {
318
+ return {
319
+ id: config.id,
320
+ clientId: config.clientId,
321
+ clientSecret: config.clientSecret,
322
+ scopes: config.scopes,
323
+ issuer: config.issuer,
324
+ redirectUrl: config.redirectUrl,
325
+ dangerouslyAllowInsecureHttpRequests: config.dangerouslyAllowInsecureHttpRequests,
326
+ clientAuthMethod: config.clientAuthMethod,
327
+ }
328
+ }
329
+
330
+ export const didAuthConfigFrom = (config: DidAuthConfigEntity): DidAuthConfig => {
331
+ return {
332
+ id: config.id,
333
+ identifier: { did: config.identifier, provider: '', keys: [], services: [] },
334
+ stateId: '', // FIXME
335
+ redirectUrl: config.redirectUrl,
336
+ sessionId: config.sessionId,
337
+ }
338
+ }
339
+
340
+ export const isOpenIdConfig = (config: NonPersistedConnectionConfig | BaseConfigEntity): config is OpenIdConfig | OpenIdConfigEntity =>
341
+ 'clientSecret' in config && 'issuer' in config && 'redirectUrl' in config
342
+
343
+ export const isDidAuthConfig = (config: NonPersistedConnectionConfig | BaseConfigEntity): config is DidAuthConfig | DidAuthConfigEntity =>
344
+ 'identifier' in config && 'redirectUrl' in config && 'sessionId' in config
@@ -1,16 +0,0 @@
1
- import { BaseEntity } from 'typeorm';
2
- import { IBasicContact } from '../../types';
3
- import { IdentityEntity } from './IdentityEntity';
4
- export declare class ContactEntity extends BaseEntity {
5
- id: string;
6
- name: string;
7
- alias: string;
8
- uri?: string;
9
- identities: Array<IdentityEntity>;
10
- createdAt: Date;
11
- lastUpdatedAt: Date;
12
- updateUpdatedDate(): void;
13
- validate(): Promise<undefined>;
14
- }
15
- export declare const contactEntityFrom: (args: IBasicContact) => ContactEntity;
16
- //# sourceMappingURL=ContactEntity.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContactEntity.d.ts","sourceRoot":"","sources":["../../../src/entities/contact/ContactEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAUX,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,aAAa,EAAkB,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAsB,MAAM,kBAAkB,CAAA;AAGrE,qBACa,aAAc,SAAQ,UAAU;IAE3C,EAAE,EAAG,MAAM,CAAA;IAIX,IAAI,EAAG,MAAM,CAAA;IAIb,KAAK,EAAG,MAAM,CAAA;IAGd,GAAG,CAAC,EAAE,MAAM,CAAA;IASZ,UAAU,EAAG,KAAK,CAAC,cAAc,CAAC,CAAA;IAGlC,SAAS,EAAG,IAAI,CAAA;IAGhB,aAAa,EAAG,IAAI,CAAA;IAKpB,iBAAiB;IAMX,QAAQ;CAOf;AAED,eAAO,MAAM,iBAAiB,SAAU,aAAa,KAAG,aAQvD,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContactEntity.js","sourceRoot":"","sources":["../../../src/entities/contact/ContactEntity.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"1-CreateIssuanceBranding.d.ts","sourceRoot":"","sources":["../../../src/migrations/generic/1-CreateIssuanceBranding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAOzD,qBAAa,mCAAoC,YAAW,kBAAkB;IAC5E,IAAI,SAAwC;IAE/B,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAqB3D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"1-CreateIssuanceBranding.js","sourceRoot":"","sources":["../../../src/migrations/generic/1-CreateIssuanceBranding.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,kDAAyB;AACzB,4GAAsG;AACtG,0GAAoG;AAEpG,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,6BAA6B,CAAC,CAAA;AAElD,MAAa,mCAAmC;IAAhD;QACE,SAAI,GAAG,qCAAqC,CAAA;IA6C9C,CAAC;IA3Cc,EAAE,CAAC,WAAwB;;YACtC,KAAK,CAAC,8CAA8C,CAAC,CAAA;YACrD,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAA;YACzD,IAAI,MAAM,KAAK,UAAU,EAAE;gBACzB,KAAK,CAAC,+BAA+B,CAAC,CAAA;gBACtC,MAAM,GAAG,GAAG,IAAI,2EAAmC,EAAE,CAAA;gBACrD,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA;gBACpC,KAAK,CAAC,+BAA+B,CAAC,CAAA;gBACtC,OAAO,EAAE,CAAA;aACV;iBAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,cAAc,EAAE;gBAChD,KAAK,CAAC,0CAA0C,CAAC,CAAA;gBACjD,MAAM,GAAG,GAAG,IAAI,2EAAmC,EAAE,CAAA;gBACrD,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA;gBACpC,KAAK,CAAC,+BAA+B,CAAC,CAAA;gBACtC,OAAO,EAAE,CAAA;aACV;iBAAM;gBACL,OAAO,OAAO,CAAC,MAAM,CACnB,4LAA4L,CAC7L,CAAA;aACF;QACH,CAAC;KAAA;IAEY,IAAI,CAAC,WAAwB;;YACxC,KAAK,CAAC,+CAA+C,CAAC,CAAA;YACtD,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAA;YACzD,IAAI,MAAM,KAAK,UAAU,EAAE;gBACzB,KAAK,CAAC,+BAA+B,CAAC,CAAA;gBACtC,MAAM,GAAG,GAAG,IAAI,2EAAmC,EAAE,CAAA;gBACrD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBACxC,KAAK,CAAC,+BAA+B,CAAC,CAAA;gBACtC,OAAO,IAAI,CAAA;aACZ;iBAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,cAAc,EAAE;gBAChD,KAAK,CAAC,0CAA0C,CAAC,CAAA;gBACjD,MAAM,GAAG,GAAG,IAAI,2EAAmC,EAAE,CAAA;gBACrD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBACxC,KAAK,CAAC,+BAA+B,CAAC,CAAA;gBACtC,OAAO,IAAI,CAAA;aACZ;iBAAM;gBACL,OAAO,OAAO,CAAC,MAAM,CACnB,4LAA4L,CAC7L,CAAA;aACF;QACH,CAAC;KAAA;CACF;AA9CD,kFA8CC"}
@@ -1,74 +0,0 @@
1
- import {
2
- BaseEntity,
3
- BeforeInsert,
4
- BeforeUpdate,
5
- Column,
6
- CreateDateColumn,
7
- Entity,
8
- JoinColumn,
9
- OneToMany,
10
- PrimaryGeneratedColumn,
11
- UpdateDateColumn,
12
- } from 'typeorm'
13
- import { IBasicContact, IBasicIdentity } from '../../types'
14
- import { IdentityEntity, identityEntityFrom } from './IdentityEntity'
15
- import { IsNotEmpty, validate, ValidationError } from 'class-validator'
16
-
17
- @Entity('Contact')
18
- export class ContactEntity extends BaseEntity {
19
- @PrimaryGeneratedColumn('uuid')
20
- id!: string
21
-
22
- @Column({ name: 'name', length: 255, nullable: false, unique: true })
23
- @IsNotEmpty({ message: 'Blank names are not allowed' })
24
- name!: string
25
-
26
- @Column({ name: 'alias', length: 255, nullable: false, unique: true })
27
- @IsNotEmpty({ message: 'Blank aliases are not allowed' })
28
- alias!: string
29
-
30
- @Column({ name: 'uri', length: 255 })
31
- uri?: string
32
-
33
- @OneToMany(() => IdentityEntity, (identity: IdentityEntity) => identity.contact, {
34
- cascade: true,
35
- onDelete: 'CASCADE',
36
- eager: true,
37
- nullable: false,
38
- })
39
- @JoinColumn({ name: 'identityId' })
40
- identities!: Array<IdentityEntity>
41
-
42
- @CreateDateColumn({ name: 'created_at', nullable: false })
43
- createdAt!: Date
44
-
45
- @UpdateDateColumn({ name: 'last_updated_at', nullable: false })
46
- lastUpdatedAt!: Date
47
-
48
- // By default, @UpdateDateColumn in TypeORM updates the timestamp only when the entity's top-level properties change.
49
- @BeforeInsert()
50
- @BeforeUpdate()
51
- updateUpdatedDate() {
52
- this.lastUpdatedAt = new Date()
53
- }
54
-
55
- @BeforeInsert()
56
- @BeforeUpdate()
57
- async validate() {
58
- const validation: Array<ValidationError> = await validate(this)
59
- if (validation.length > 0) {
60
- return Promise.reject(Error(Object.values(validation[0].constraints!)[0]))
61
- }
62
- return
63
- }
64
- }
65
-
66
- export const contactEntityFrom = (args: IBasicContact): ContactEntity => {
67
- const contactEntity = new ContactEntity()
68
- contactEntity.name = args.name
69
- contactEntity.alias = args.alias
70
- contactEntity.uri = args.uri
71
- contactEntity.identities = args.identities ? args.identities.map((identity: IBasicIdentity) => identityEntityFrom(identity)) : []
72
-
73
- return contactEntity
74
- }