@sphereon/ssi-sdk.data-store 0.30.1-unstable.4 → 0.30.1

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 (136) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +77 -77
  3. package/dist/contact/ContactStore.d.ts.map +1 -1
  4. package/dist/digitalCredential/DigitalCredentialStore.d.ts.map +1 -1
  5. package/dist/eventLogger/EventLoggerStore.d.ts.map +1 -1
  6. package/dist/issuanceBranding/IssuanceBrandingStore.d.ts.map +1 -1
  7. package/dist/migrations/internal-migrations-ormconfig.d.ts.map +1 -1
  8. package/dist/migrations/postgres/1708525189001-CreateDigitalCredential.js +33 -33
  9. package/dist/migrations/postgres/1708797018115-CreateMachineStateStore.js +16 -16
  10. package/dist/migrations/postgres/1715761125001-CreateContacts.js +33 -33
  11. package/dist/migrations/postgres/1716475165345-CreatePresentationDefinitions.js +12 -12
  12. package/dist/migrations/sqlite/1708525189002-CreateDigitalCredential.js +32 -32
  13. package/dist/migrations/sqlite/1708796002272-CreateMachineStateStore.js +15 -15
  14. package/dist/migrations/sqlite/1710438363002-CreateContacts.js +13 -13
  15. package/dist/migrations/sqlite/1715761125002-CreateContacts.js +32 -32
  16. package/dist/migrations/sqlite/1716475165344-CreatePresentationDefinitions.js +9 -9
  17. package/dist/presentationDefinition/PDStore.d.ts.map +1 -1
  18. package/dist/utils/SortingUtils.d.ts.map +1 -1
  19. package/dist/utils/contact/MappingUtils.d.ts.map +1 -1
  20. package/dist/utils/digitalCredential/MappingUtils.d.ts.map +1 -1
  21. package/dist/utils/digitalCredential/MappingUtils.js +4 -4
  22. package/dist/utils/digitalCredential/MappingUtils.js.map +1 -1
  23. package/dist/utils/presentationDefinition/MappingUtils.js +2 -2
  24. package/dist/utils/presentationDefinition/MappingUtils.js.map +1 -1
  25. package/package.json +8 -8
  26. package/src/__tests__/contact.entities.test.ts +2642 -2642
  27. package/src/__tests__/contact.store.test.ts +2649 -2649
  28. package/src/__tests__/digitalCredential.entities.test.ts +274 -274
  29. package/src/__tests__/digitalCredential.store.test.ts +330 -330
  30. package/src/__tests__/eventLogger.entities.test.ts +76 -76
  31. package/src/__tests__/eventLogger.store.test.ts +130 -130
  32. package/src/__tests__/issuanceBranding.entities.test.ts +846 -846
  33. package/src/__tests__/issuanceBranding.store.test.ts +1886 -1886
  34. package/src/__tests__/machineState.entities.test.ts +53 -53
  35. package/src/__tests__/machineState.store.test.ts +176 -176
  36. package/src/__tests__/pd-manager.entities.test.ts +73 -73
  37. package/src/__tests__/pd-manager.store.test.ts +193 -193
  38. package/src/contact/AbstractContactStore.ts +71 -71
  39. package/src/contact/ContactStore.ts +768 -768
  40. package/src/digitalCredential/AbstractDigitalCredentialStore.ts +21 -21
  41. package/src/digitalCredential/DigitalCredentialStore.ts +189 -189
  42. package/src/entities/contact/BaseContactEntity.ts +51 -51
  43. package/src/entities/contact/ConnectionEntity.ts +35 -35
  44. package/src/entities/contact/ContactMetadataItemEntity.ts +51 -51
  45. package/src/entities/contact/CorrelationIdentifierEntity.ts +43 -43
  46. package/src/entities/contact/DidAuthConfigEntity.ts +20 -20
  47. package/src/entities/contact/ElectronicAddressEntity.ts +70 -70
  48. package/src/entities/contact/IdentityEntity.ts +107 -107
  49. package/src/entities/contact/IdentityMetadataItemEntity.ts +48 -48
  50. package/src/entities/contact/NaturalPersonEntity.ts +44 -44
  51. package/src/entities/contact/OpenIdConfigEntity.ts +32 -32
  52. package/src/entities/contact/OrganizationEntity.ts +35 -35
  53. package/src/entities/contact/PartyEntity.ts +117 -117
  54. package/src/entities/contact/PartyRelationshipEntity.ts +68 -68
  55. package/src/entities/contact/PartyTypeEntity.ts +63 -63
  56. package/src/entities/contact/PhysicalAddressEntity.ts +95 -95
  57. package/src/entities/digitalCredential/DigitalCredentialEntity.ts +98 -98
  58. package/src/entities/eventLogger/AuditEventEntity.ts +92 -92
  59. package/src/entities/issuanceBranding/BackgroundAttributesEntity.ts +42 -42
  60. package/src/entities/issuanceBranding/BaseLocaleBrandingEntity.ts +87 -87
  61. package/src/entities/issuanceBranding/CredentialBrandingEntity.ts +79 -79
  62. package/src/entities/issuanceBranding/CredentialLocaleBrandingEntity.ts +33 -33
  63. package/src/entities/issuanceBranding/ImageAttributesEntity.ts +57 -57
  64. package/src/entities/issuanceBranding/ImageDimensionsEntity.ts +22 -22
  65. package/src/entities/issuanceBranding/IssuerBrandingEntity.ts +73 -73
  66. package/src/entities/issuanceBranding/IssuerLocaleBrandingEntity.ts +33 -33
  67. package/src/entities/issuanceBranding/TextAttributesEntity.ts +31 -31
  68. package/src/entities/machineState/MachineStateInfoEntity.ts +59 -59
  69. package/src/entities/presentationDefinition/PresentationDefinitionItemEntity.ts +44 -44
  70. package/src/entities/statusList2021/StatusList2021Entity.ts +96 -96
  71. package/src/entities/statusList2021/StatusList2021EntryEntity.ts +29 -29
  72. package/src/eventLogger/AbstractEventLoggerStore.ts +7 -7
  73. package/src/eventLogger/EventLoggerStore.ts +62 -62
  74. package/src/index.ts +160 -160
  75. package/src/issuanceBranding/IssuanceBrandingStore.ts +559 -559
  76. package/src/machineState/IAbstractMachineStateStore.ts +65 -65
  77. package/src/machineState/MachineStateStore.ts +149 -149
  78. package/src/migrations/generic/1-CreateContacts.ts +66 -66
  79. package/src/migrations/generic/10-CreatePresentationDefinitions.ts +66 -66
  80. package/src/migrations/generic/2-CreateIssuanceBranding.ts +64 -64
  81. package/src/migrations/generic/3-CreateContacts.ts +66 -66
  82. package/src/migrations/generic/4-CreateStatusList.ts +54 -54
  83. package/src/migrations/generic/5-CreateAuditEvents.ts +66 -66
  84. package/src/migrations/generic/6-CreateDigitalCredential.ts +66 -66
  85. package/src/migrations/generic/7-CreateMachineStateStore.ts +66 -66
  86. package/src/migrations/generic/8-CreateContacts.ts +66 -66
  87. package/src/migrations/generic/9-CreateContacts.ts +66 -66
  88. package/src/migrations/generic/index.ts +43 -43
  89. package/src/migrations/index.ts +10 -10
  90. package/src/migrations/postgres/1659463079428-CreateContacts.ts +63 -63
  91. package/src/migrations/postgres/1685628974232-CreateIssuanceBranding.ts +85 -85
  92. package/src/migrations/postgres/1690925872592-CreateContacts.ts +158 -158
  93. package/src/migrations/postgres/1693866470001-CreateStatusList.ts +24 -24
  94. package/src/migrations/postgres/1701634812183-CreateAuditEvents.ts +33 -33
  95. package/src/migrations/postgres/1708525189001-CreateDigitalCredential.ts +61 -61
  96. package/src/migrations/postgres/1708797018115-CreateMachineStateStore.ts +29 -29
  97. package/src/migrations/postgres/1710438363001-CreateContacts.ts +63 -63
  98. package/src/migrations/postgres/1715761125001-CreateContacts.ts +60 -60
  99. package/src/migrations/postgres/1716475165345-CreatePresentationDefinitions.ts +25 -25
  100. package/src/migrations/sqlite/1659463069549-CreateContacts.ts +110 -110
  101. package/src/migrations/sqlite/1685628973231-CreateIssuanceBranding.ts +119 -119
  102. package/src/migrations/sqlite/1690925872693-CreateContacts.ts +228 -228
  103. package/src/migrations/sqlite/1693866470000-CreateStatusList.ts +24 -24
  104. package/src/migrations/sqlite/1701634819487-CreateAuditEvents.ts +15 -15
  105. package/src/migrations/sqlite/1708525189002-CreateDigitalCredential.ts +46 -46
  106. package/src/migrations/sqlite/1708796002272-CreateMachineStateStore.ts +28 -28
  107. package/src/migrations/sqlite/1710438363002-CreateContacts.ts +83 -83
  108. package/src/migrations/sqlite/1715761125002-CreateContacts.ts +59 -59
  109. package/src/migrations/sqlite/1716475165344-CreatePresentationDefinitions.ts +24 -24
  110. package/src/presentationDefinition/AbstractPDStore.ts +20 -20
  111. package/src/presentationDefinition/PDStore.ts +185 -185
  112. package/src/statusList/IStatusListStore.ts +44 -44
  113. package/src/statusList/StatusListStore.ts +236 -236
  114. package/src/types/contact/IAbstractContactStore.ts +161 -161
  115. package/src/types/contact/contact.ts +295 -295
  116. package/src/types/digitalCredential/IAbstractDigitalCredentialStore.ts +42 -42
  117. package/src/types/digitalCredential/digitalCredential.ts +102 -102
  118. package/src/types/eventLogger/IAbstractEventLoggerStore.ts +12 -12
  119. package/src/types/eventLogger/eventLogger.ts +3 -3
  120. package/src/types/index.ts +14 -14
  121. package/src/types/machineState/IAbstractMachineStateStore.ts +68 -68
  122. package/src/types/presentationDefinition/IAbstractPDStore.ts +25 -25
  123. package/src/types/presentationDefinition/presentationDefinition.ts +17 -17
  124. package/src/utils/SortingUtils.ts +16 -16
  125. package/src/utils/contact/MappingUtils.ts +506 -506
  126. package/src/utils/digitalCredential/MappingUtils.ts +160 -160
  127. package/src/utils/hasher.ts +19 -19
  128. package/src/utils/presentationDefinition/MappingUtils.ts +52 -52
  129. package/dist/entities/contact/IMetadataEntity.d.ts +0 -8
  130. package/dist/entities/contact/IMetadataEntity.d.ts.map +0 -1
  131. package/dist/entities/contact/IMetadataEntity.js +0 -2
  132. package/dist/entities/contact/IMetadataEntity.js.map +0 -1
  133. package/dist/migrations/generic/8-CreatePresentationDefinitions.d.ts +0 -7
  134. package/dist/migrations/generic/8-CreatePresentationDefinitions.d.ts.map +0 -1
  135. package/dist/migrations/generic/8-CreatePresentationDefinitions.js +0 -78
  136. package/dist/migrations/generic/8-CreatePresentationDefinitions.js.map +0 -1
@@ -1,193 +1,193 @@
1
- import { DataSources } from '@sphereon/ssi-sdk.agent-config'
2
- import { DataSource } from 'typeorm'
3
- import { DataStorePresentationDefinitionEntities, DataStorePresentationDefinitionMigrations, PDStore } from '../index'
4
- import { GetDefinitionsArgs, NonPersistedPresentationDefinitionItem, PresentationDefinitionItem } from '../types'
5
-
6
- describe('PDStore tests', (): void => {
7
- let dbConnection: DataSource
8
- let pdStore: PDStore
9
-
10
- beforeEach(async (): Promise<void> => {
11
- DataSources.singleInstance().defaultDbType = 'sqlite'
12
- dbConnection = await new DataSource({
13
- type: 'sqlite',
14
- database: ':memory:',
15
- logging: ['info'],
16
- synchronize: false,
17
- migrationsRun: false,
18
- migrations: DataStorePresentationDefinitionMigrations,
19
- entities: DataStorePresentationDefinitionEntities,
20
- }).initialize()
21
- await dbConnection.runMigrations()
22
- expect(await dbConnection.showMigrations()).toBeFalsy()
23
- pdStore = new PDStore(dbConnection)
24
- })
25
-
26
- afterEach(async (): Promise<void> => {
27
- await dbConnection.destroy()
28
- })
29
-
30
- it('should check if definition exists', async (): Promise<void> => {
31
- const definition: NonPersistedPresentationDefinitionItem = {
32
- definitionId: 'definition1',
33
- version: '1.0',
34
- definitionPayload: { id: 'definition1', input_descriptors: [] },
35
- }
36
- const savedDefinition: PresentationDefinitionItem = await pdStore.addDefinition(definition)
37
- expect(savedDefinition).toBeDefined()
38
-
39
- const exists: boolean = await pdStore.hasDefinition({ itemId: savedDefinition.id })
40
-
41
- expect(exists).toBeTruthy()
42
- })
43
-
44
- it('should check if definitions exist by filter', async (): Promise<void> => {
45
- const definition: NonPersistedPresentationDefinitionItem = {
46
- definitionId: 'definition1',
47
- version: '1.0',
48
- definitionPayload: { id: 'definition1', input_descriptors: [] },
49
- }
50
- const savedDefinition: PresentationDefinitionItem = await pdStore.addDefinition(definition)
51
- expect(savedDefinition).toBeDefined()
52
-
53
- const exists: boolean = await pdStore.hasDefinitions({ filter: [{ definitionId: 'definition1' }] })
54
-
55
- expect(exists).toBeTruthy()
56
- })
57
-
58
- it('should get definition by id', async (): Promise<void> => {
59
- const definition: NonPersistedPresentationDefinitionItem = {
60
- definitionId: 'definition1',
61
- version: '1.0',
62
- definitionPayload: { id: 'definition1', input_descriptors: [] },
63
- }
64
-
65
- const savedDefinition: PresentationDefinitionItem = await pdStore.addDefinition(definition)
66
- expect(savedDefinition).toBeDefined()
67
-
68
- const result: PresentationDefinitionItem = await pdStore.getDefinition({ itemId: savedDefinition.id })
69
-
70
- expect(result).toBeDefined()
71
- })
72
-
73
- it('should throw error when getting definition with unknown id', async (): Promise<void> => {
74
- const itemId = 'unknownDefinitionId'
75
-
76
- await expect(pdStore.getDefinition({ itemId })).rejects.toThrow(`No presentation definition item found for id: ${itemId}`)
77
- })
78
-
79
- it('should get all definitions', async (): Promise<void> => {
80
- const definition1: NonPersistedPresentationDefinitionItem = {
81
- definitionId: 'definition1',
82
- version: '1.0',
83
- definitionPayload: { id: 'definition1', input_descriptors: [] },
84
- }
85
- const savedDefinition1: PresentationDefinitionItem = await pdStore.addDefinition(definition1)
86
- expect(savedDefinition1).toBeDefined()
87
-
88
- const definition2: NonPersistedPresentationDefinitionItem = {
89
- definitionId: 'definition2',
90
- version: '1.0',
91
- definitionPayload: { id: 'definition2', input_descriptors: [] },
92
- }
93
- const savedDefinition2: PresentationDefinitionItem = await pdStore.addDefinition(definition2)
94
- expect(savedDefinition2).toBeDefined()
95
-
96
- const result: Array<PresentationDefinitionItem> = await pdStore.getDefinitions({})
97
-
98
- expect(result).toBeDefined()
99
- expect(result.length).toEqual(2)
100
- })
101
-
102
- it('should get definitions by filter', async (): Promise<void> => {
103
- const definition: NonPersistedPresentationDefinitionItem = {
104
- definitionId: 'definition1',
105
- version: '1.0',
106
- definitionPayload: { id: 'definition1', input_descriptors: [] },
107
- }
108
- const savedDefinition: PresentationDefinitionItem = await pdStore.addDefinition(definition)
109
- expect(savedDefinition).toBeDefined()
110
-
111
- const args: GetDefinitionsArgs = {
112
- filter: [{ definitionId: 'definition1' }],
113
- }
114
- const result: Array<PresentationDefinitionItem> = await pdStore.getDefinitions(args)
115
-
116
- expect(result.length).toEqual(1)
117
- })
118
-
119
- it('should add definition', async (): Promise<void> => {
120
- const definition: NonPersistedPresentationDefinitionItem = {
121
- definitionId: 'definition1',
122
- version: '1.0',
123
- definitionPayload: { id: 'definition1', input_descriptors: [] },
124
- }
125
-
126
- const result: PresentationDefinitionItem = await pdStore.addDefinition(definition)
127
-
128
- expect(result).toBeDefined()
129
- expect(result.definitionId).toEqual(definition.definitionId)
130
- })
131
-
132
- it('should update definition', async (): Promise<void> => {
133
- const definition: NonPersistedPresentationDefinitionItem = {
134
- definitionId: 'definition1',
135
- version: '1.0',
136
- definitionPayload: { id: 'definition1', input_descriptors: [] },
137
- }
138
- const savedDefinition: PresentationDefinitionItem = await pdStore.addDefinition(definition)
139
- expect(savedDefinition).toBeDefined()
140
-
141
- const updatedDefinition: PresentationDefinitionItem = {
142
- ...savedDefinition,
143
- version: '1.1',
144
- }
145
-
146
- await pdStore.updateDefinition(updatedDefinition)
147
- const result: PresentationDefinitionItem = await pdStore.getDefinition({ itemId: savedDefinition.id })
148
-
149
- expect(result).toBeDefined()
150
- expect(result.version).toEqual('1.1')
151
- })
152
-
153
- it('should delete definition', async (): Promise<void> => {
154
- const definition: NonPersistedPresentationDefinitionItem = {
155
- definitionId: 'definition1',
156
- version: '1.0',
157
- definitionPayload: { id: 'definition1', input_descriptors: [] },
158
- }
159
- const savedDefinition: PresentationDefinitionItem = await pdStore.addDefinition(definition)
160
- expect(savedDefinition).toBeDefined()
161
-
162
- await pdStore.deleteDefinition({ itemId: savedDefinition.id })
163
-
164
- await expect(pdStore.getDefinition({ itemId: savedDefinition.id })).rejects.toThrow(
165
- `No presentation definition item found for id: ${savedDefinition.id}`,
166
- )
167
- })
168
-
169
- it('should delete definitions by filter', async (): Promise<void> => {
170
- const definition1: NonPersistedPresentationDefinitionItem = {
171
- definitionId: 'definition1',
172
- version: '1.0',
173
- definitionPayload: { id: 'definition1', input_descriptors: [] },
174
- }
175
- const savedDefinition1: PresentationDefinitionItem = await pdStore.addDefinition(definition1)
176
- expect(savedDefinition1).toBeDefined()
177
-
178
- const definition2: NonPersistedPresentationDefinitionItem = {
179
- definitionId: 'definition2',
180
- version: '1.0',
181
- definitionPayload: { id: 'definition2', input_descriptors: [] },
182
- }
183
- const savedDefinition2: PresentationDefinitionItem = await pdStore.addDefinition(definition2)
184
- expect(savedDefinition2).toBeDefined()
185
-
186
- const filter = { filter: [{ definitionId: 'definition1' }] }
187
- await pdStore.deleteDefinitions(filter)
188
-
189
- const remainingDefinitions: Array<PresentationDefinitionItem> = await pdStore.getDefinitions({})
190
- expect(remainingDefinitions.length).toEqual(1)
191
- expect(remainingDefinitions[0].definitionId).toEqual('definition2')
192
- })
193
- })
1
+ import { DataSources } from '@sphereon/ssi-sdk.agent-config'
2
+ import { DataSource } from 'typeorm'
3
+ import { DataStorePresentationDefinitionEntities, DataStorePresentationDefinitionMigrations, PDStore } from '../index'
4
+ import { GetDefinitionsArgs, NonPersistedPresentationDefinitionItem, PresentationDefinitionItem } from '../types'
5
+
6
+ describe('PDStore tests', (): void => {
7
+ let dbConnection: DataSource
8
+ let pdStore: PDStore
9
+
10
+ beforeEach(async (): Promise<void> => {
11
+ DataSources.singleInstance().defaultDbType = 'sqlite'
12
+ dbConnection = await new DataSource({
13
+ type: 'sqlite',
14
+ database: ':memory:',
15
+ logging: ['info'],
16
+ synchronize: false,
17
+ migrationsRun: false,
18
+ migrations: DataStorePresentationDefinitionMigrations,
19
+ entities: DataStorePresentationDefinitionEntities,
20
+ }).initialize()
21
+ await dbConnection.runMigrations()
22
+ expect(await dbConnection.showMigrations()).toBeFalsy()
23
+ pdStore = new PDStore(dbConnection)
24
+ })
25
+
26
+ afterEach(async (): Promise<void> => {
27
+ await dbConnection.destroy()
28
+ })
29
+
30
+ it('should check if definition exists', async (): Promise<void> => {
31
+ const definition: NonPersistedPresentationDefinitionItem = {
32
+ definitionId: 'definition1',
33
+ version: '1.0',
34
+ definitionPayload: { id: 'definition1', input_descriptors: [] },
35
+ }
36
+ const savedDefinition: PresentationDefinitionItem = await pdStore.addDefinition(definition)
37
+ expect(savedDefinition).toBeDefined()
38
+
39
+ const exists: boolean = await pdStore.hasDefinition({ itemId: savedDefinition.id })
40
+
41
+ expect(exists).toBeTruthy()
42
+ })
43
+
44
+ it('should check if definitions exist by filter', async (): Promise<void> => {
45
+ const definition: NonPersistedPresentationDefinitionItem = {
46
+ definitionId: 'definition1',
47
+ version: '1.0',
48
+ definitionPayload: { id: 'definition1', input_descriptors: [] },
49
+ }
50
+ const savedDefinition: PresentationDefinitionItem = await pdStore.addDefinition(definition)
51
+ expect(savedDefinition).toBeDefined()
52
+
53
+ const exists: boolean = await pdStore.hasDefinitions({ filter: [{ definitionId: 'definition1' }] })
54
+
55
+ expect(exists).toBeTruthy()
56
+ })
57
+
58
+ it('should get definition by id', async (): Promise<void> => {
59
+ const definition: NonPersistedPresentationDefinitionItem = {
60
+ definitionId: 'definition1',
61
+ version: '1.0',
62
+ definitionPayload: { id: 'definition1', input_descriptors: [] },
63
+ }
64
+
65
+ const savedDefinition: PresentationDefinitionItem = await pdStore.addDefinition(definition)
66
+ expect(savedDefinition).toBeDefined()
67
+
68
+ const result: PresentationDefinitionItem = await pdStore.getDefinition({ itemId: savedDefinition.id })
69
+
70
+ expect(result).toBeDefined()
71
+ })
72
+
73
+ it('should throw error when getting definition with unknown id', async (): Promise<void> => {
74
+ const itemId = 'unknownDefinitionId'
75
+
76
+ await expect(pdStore.getDefinition({ itemId })).rejects.toThrow(`No presentation definition item found for id: ${itemId}`)
77
+ })
78
+
79
+ it('should get all definitions', async (): Promise<void> => {
80
+ const definition1: NonPersistedPresentationDefinitionItem = {
81
+ definitionId: 'definition1',
82
+ version: '1.0',
83
+ definitionPayload: { id: 'definition1', input_descriptors: [] },
84
+ }
85
+ const savedDefinition1: PresentationDefinitionItem = await pdStore.addDefinition(definition1)
86
+ expect(savedDefinition1).toBeDefined()
87
+
88
+ const definition2: NonPersistedPresentationDefinitionItem = {
89
+ definitionId: 'definition2',
90
+ version: '1.0',
91
+ definitionPayload: { id: 'definition2', input_descriptors: [] },
92
+ }
93
+ const savedDefinition2: PresentationDefinitionItem = await pdStore.addDefinition(definition2)
94
+ expect(savedDefinition2).toBeDefined()
95
+
96
+ const result: Array<PresentationDefinitionItem> = await pdStore.getDefinitions({})
97
+
98
+ expect(result).toBeDefined()
99
+ expect(result.length).toEqual(2)
100
+ })
101
+
102
+ it('should get definitions by filter', async (): Promise<void> => {
103
+ const definition: NonPersistedPresentationDefinitionItem = {
104
+ definitionId: 'definition1',
105
+ version: '1.0',
106
+ definitionPayload: { id: 'definition1', input_descriptors: [] },
107
+ }
108
+ const savedDefinition: PresentationDefinitionItem = await pdStore.addDefinition(definition)
109
+ expect(savedDefinition).toBeDefined()
110
+
111
+ const args: GetDefinitionsArgs = {
112
+ filter: [{ definitionId: 'definition1' }],
113
+ }
114
+ const result: Array<PresentationDefinitionItem> = await pdStore.getDefinitions(args)
115
+
116
+ expect(result.length).toEqual(1)
117
+ })
118
+
119
+ it('should add definition', async (): Promise<void> => {
120
+ const definition: NonPersistedPresentationDefinitionItem = {
121
+ definitionId: 'definition1',
122
+ version: '1.0',
123
+ definitionPayload: { id: 'definition1', input_descriptors: [] },
124
+ }
125
+
126
+ const result: PresentationDefinitionItem = await pdStore.addDefinition(definition)
127
+
128
+ expect(result).toBeDefined()
129
+ expect(result.definitionId).toEqual(definition.definitionId)
130
+ })
131
+
132
+ it('should update definition', async (): Promise<void> => {
133
+ const definition: NonPersistedPresentationDefinitionItem = {
134
+ definitionId: 'definition1',
135
+ version: '1.0',
136
+ definitionPayload: { id: 'definition1', input_descriptors: [] },
137
+ }
138
+ const savedDefinition: PresentationDefinitionItem = await pdStore.addDefinition(definition)
139
+ expect(savedDefinition).toBeDefined()
140
+
141
+ const updatedDefinition: PresentationDefinitionItem = {
142
+ ...savedDefinition,
143
+ version: '1.1',
144
+ }
145
+
146
+ await pdStore.updateDefinition(updatedDefinition)
147
+ const result: PresentationDefinitionItem = await pdStore.getDefinition({ itemId: savedDefinition.id })
148
+
149
+ expect(result).toBeDefined()
150
+ expect(result.version).toEqual('1.1')
151
+ })
152
+
153
+ it('should delete definition', async (): Promise<void> => {
154
+ const definition: NonPersistedPresentationDefinitionItem = {
155
+ definitionId: 'definition1',
156
+ version: '1.0',
157
+ definitionPayload: { id: 'definition1', input_descriptors: [] },
158
+ }
159
+ const savedDefinition: PresentationDefinitionItem = await pdStore.addDefinition(definition)
160
+ expect(savedDefinition).toBeDefined()
161
+
162
+ await pdStore.deleteDefinition({ itemId: savedDefinition.id })
163
+
164
+ await expect(pdStore.getDefinition({ itemId: savedDefinition.id })).rejects.toThrow(
165
+ `No presentation definition item found for id: ${savedDefinition.id}`,
166
+ )
167
+ })
168
+
169
+ it('should delete definitions by filter', async (): Promise<void> => {
170
+ const definition1: NonPersistedPresentationDefinitionItem = {
171
+ definitionId: 'definition1',
172
+ version: '1.0',
173
+ definitionPayload: { id: 'definition1', input_descriptors: [] },
174
+ }
175
+ const savedDefinition1: PresentationDefinitionItem = await pdStore.addDefinition(definition1)
176
+ expect(savedDefinition1).toBeDefined()
177
+
178
+ const definition2: NonPersistedPresentationDefinitionItem = {
179
+ definitionId: 'definition2',
180
+ version: '1.0',
181
+ definitionPayload: { id: 'definition2', input_descriptors: [] },
182
+ }
183
+ const savedDefinition2: PresentationDefinitionItem = await pdStore.addDefinition(definition2)
184
+ expect(savedDefinition2).toBeDefined()
185
+
186
+ const filter = { filter: [{ definitionId: 'definition1' }] }
187
+ await pdStore.deleteDefinitions(filter)
188
+
189
+ const remainingDefinitions: Array<PresentationDefinitionItem> = await pdStore.getDefinitions({})
190
+ expect(remainingDefinitions.length).toEqual(1)
191
+ expect(remainingDefinitions[0].definitionId).toEqual('definition2')
192
+ })
193
+ })
@@ -1,71 +1,71 @@
1
- import {
2
- AddElectronicAddressArgs,
3
- AddIdentityArgs,
4
- AddPartyArgs,
5
- AddPartyTypeArgs,
6
- AddPhysicalAddressArgs,
7
- AddRelationshipArgs,
8
- ElectronicAddress,
9
- GetElectronicAddressArgs,
10
- GetElectronicAddressesArgs,
11
- GetIdentitiesArgs,
12
- GetIdentityArgs,
13
- GetPartiesArgs,
14
- GetPartyArgs,
15
- GetPartyTypeArgs,
16
- GetPartyTypesArgs,
17
- GetPhysicalAddressArgs,
18
- GetPhysicalAddressesArgs,
19
- GetRelationshipArgs,
20
- GetRelationshipsArgs,
21
- Identity,
22
- Party,
23
- PartyRelationship,
24
- PartyType,
25
- PhysicalAddress,
26
- RemoveElectronicAddressArgs,
27
- RemoveIdentityArgs,
28
- RemovePartyArgs,
29
- RemovePartyTypeArgs,
30
- RemovePhysicalAddressArgs,
31
- RemoveRelationshipArgs,
32
- UpdateElectronicAddressArgs,
33
- UpdateIdentityArgs,
34
- UpdatePartyArgs,
35
- UpdatePartyTypeArgs,
36
- UpdatePhysicalAddressArgs,
37
- UpdateRelationshipArgs,
38
- } from '../types'
39
-
40
- export abstract class AbstractContactStore {
41
- abstract getParty(args: GetPartyArgs): Promise<Party>
42
- abstract getParties(args?: GetPartiesArgs): Promise<Array<Party>>
43
- abstract addParty(args: AddPartyArgs): Promise<Party>
44
- abstract updateParty(args: UpdatePartyArgs): Promise<Party>
45
- abstract removeParty(args: RemovePartyArgs): Promise<void>
46
- abstract getIdentity(args: GetIdentityArgs): Promise<Identity>
47
- abstract getIdentities(args?: GetIdentitiesArgs): Promise<Array<Identity>>
48
- abstract addIdentity(args: AddIdentityArgs): Promise<Identity>
49
- abstract updateIdentity(args: UpdateIdentityArgs): Promise<Identity>
50
- abstract removeIdentity(args: RemoveIdentityArgs): Promise<void>
51
- abstract getRelationship(args: GetRelationshipArgs): Promise<PartyRelationship>
52
- abstract getRelationships(args?: GetRelationshipsArgs): Promise<Array<PartyRelationship>>
53
- abstract addRelationship(args: AddRelationshipArgs): Promise<PartyRelationship>
54
- abstract updateRelationship(args: UpdateRelationshipArgs): Promise<PartyRelationship>
55
- abstract removeRelationship(args: RemoveRelationshipArgs): Promise<void>
56
- abstract getPartyType(args: GetPartyTypeArgs): Promise<PartyType>
57
- abstract getPartyTypes(args?: GetPartyTypesArgs): Promise<Array<PartyType>>
58
- abstract addPartyType(args: AddPartyTypeArgs): Promise<PartyType>
59
- abstract updatePartyType(args: UpdatePartyTypeArgs): Promise<PartyType>
60
- abstract removePartyType(args: RemovePartyTypeArgs): Promise<void>
61
- abstract getElectronicAddress(args: GetElectronicAddressArgs): Promise<ElectronicAddress>
62
- abstract getElectronicAddresses(args?: GetElectronicAddressesArgs): Promise<Array<ElectronicAddress>>
63
- abstract addElectronicAddress(args: AddElectronicAddressArgs): Promise<ElectronicAddress>
64
- abstract updateElectronicAddress(args: UpdateElectronicAddressArgs): Promise<ElectronicAddress>
65
- abstract removeElectronicAddress(args: RemoveElectronicAddressArgs): Promise<void>
66
- abstract getPhysicalAddress(args: GetPhysicalAddressArgs): Promise<PhysicalAddress>
67
- abstract getPhysicalAddresses(args?: GetPhysicalAddressesArgs): Promise<Array<PhysicalAddress>>
68
- abstract addPhysicalAddress(args: AddPhysicalAddressArgs): Promise<PhysicalAddress>
69
- abstract updatePhysicalAddress(args: UpdatePhysicalAddressArgs): Promise<PhysicalAddress>
70
- abstract removePhysicalAddress(args: RemovePhysicalAddressArgs): Promise<void>
71
- }
1
+ import {
2
+ AddElectronicAddressArgs,
3
+ AddIdentityArgs,
4
+ AddPartyArgs,
5
+ AddPartyTypeArgs,
6
+ AddPhysicalAddressArgs,
7
+ AddRelationshipArgs,
8
+ ElectronicAddress,
9
+ GetElectronicAddressArgs,
10
+ GetElectronicAddressesArgs,
11
+ GetIdentitiesArgs,
12
+ GetIdentityArgs,
13
+ GetPartiesArgs,
14
+ GetPartyArgs,
15
+ GetPartyTypeArgs,
16
+ GetPartyTypesArgs,
17
+ GetPhysicalAddressArgs,
18
+ GetPhysicalAddressesArgs,
19
+ GetRelationshipArgs,
20
+ GetRelationshipsArgs,
21
+ Identity,
22
+ Party,
23
+ PartyRelationship,
24
+ PartyType,
25
+ PhysicalAddress,
26
+ RemoveElectronicAddressArgs,
27
+ RemoveIdentityArgs,
28
+ RemovePartyArgs,
29
+ RemovePartyTypeArgs,
30
+ RemovePhysicalAddressArgs,
31
+ RemoveRelationshipArgs,
32
+ UpdateElectronicAddressArgs,
33
+ UpdateIdentityArgs,
34
+ UpdatePartyArgs,
35
+ UpdatePartyTypeArgs,
36
+ UpdatePhysicalAddressArgs,
37
+ UpdateRelationshipArgs,
38
+ } from '../types'
39
+
40
+ export abstract class AbstractContactStore {
41
+ abstract getParty(args: GetPartyArgs): Promise<Party>
42
+ abstract getParties(args?: GetPartiesArgs): Promise<Array<Party>>
43
+ abstract addParty(args: AddPartyArgs): Promise<Party>
44
+ abstract updateParty(args: UpdatePartyArgs): Promise<Party>
45
+ abstract removeParty(args: RemovePartyArgs): Promise<void>
46
+ abstract getIdentity(args: GetIdentityArgs): Promise<Identity>
47
+ abstract getIdentities(args?: GetIdentitiesArgs): Promise<Array<Identity>>
48
+ abstract addIdentity(args: AddIdentityArgs): Promise<Identity>
49
+ abstract updateIdentity(args: UpdateIdentityArgs): Promise<Identity>
50
+ abstract removeIdentity(args: RemoveIdentityArgs): Promise<void>
51
+ abstract getRelationship(args: GetRelationshipArgs): Promise<PartyRelationship>
52
+ abstract getRelationships(args?: GetRelationshipsArgs): Promise<Array<PartyRelationship>>
53
+ abstract addRelationship(args: AddRelationshipArgs): Promise<PartyRelationship>
54
+ abstract updateRelationship(args: UpdateRelationshipArgs): Promise<PartyRelationship>
55
+ abstract removeRelationship(args: RemoveRelationshipArgs): Promise<void>
56
+ abstract getPartyType(args: GetPartyTypeArgs): Promise<PartyType>
57
+ abstract getPartyTypes(args?: GetPartyTypesArgs): Promise<Array<PartyType>>
58
+ abstract addPartyType(args: AddPartyTypeArgs): Promise<PartyType>
59
+ abstract updatePartyType(args: UpdatePartyTypeArgs): Promise<PartyType>
60
+ abstract removePartyType(args: RemovePartyTypeArgs): Promise<void>
61
+ abstract getElectronicAddress(args: GetElectronicAddressArgs): Promise<ElectronicAddress>
62
+ abstract getElectronicAddresses(args?: GetElectronicAddressesArgs): Promise<Array<ElectronicAddress>>
63
+ abstract addElectronicAddress(args: AddElectronicAddressArgs): Promise<ElectronicAddress>
64
+ abstract updateElectronicAddress(args: UpdateElectronicAddressArgs): Promise<ElectronicAddress>
65
+ abstract removeElectronicAddress(args: RemoveElectronicAddressArgs): Promise<void>
66
+ abstract getPhysicalAddress(args: GetPhysicalAddressArgs): Promise<PhysicalAddress>
67
+ abstract getPhysicalAddresses(args?: GetPhysicalAddressesArgs): Promise<Array<PhysicalAddress>>
68
+ abstract addPhysicalAddress(args: AddPhysicalAddressArgs): Promise<PhysicalAddress>
69
+ abstract updatePhysicalAddress(args: UpdatePhysicalAddressArgs): Promise<PhysicalAddress>
70
+ abstract removePhysicalAddress(args: RemovePhysicalAddressArgs): Promise<void>
71
+ }