@sphereon/ssi-sdk.data-store 0.34.1-feature.SSISDK.17.bitstring.sl.8 → 0.34.1-feature.disable.test.8

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sphereon/ssi-sdk.data-store",
3
- "version": "0.34.1-feature.SSISDK.17.bitstring.sl.8+82c2b7fe",
3
+ "version": "0.34.1-feature.disable.test.8+4f707ea5",
4
4
  "source": "src/index.ts",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -28,15 +28,15 @@
28
28
  "dependencies": {
29
29
  "@sphereon/kmp-mdoc-core": "0.2.0-SNAPSHOT.26",
30
30
  "@sphereon/pex": "5.0.0-unstable.28",
31
- "@sphereon/ssi-sdk-ext.did-utils": "0.29.0",
32
- "@sphereon/ssi-sdk-ext.identifier-resolution": "0.29.0",
33
- "@sphereon/ssi-sdk.agent-config": "0.34.1-feature.SSISDK.17.bitstring.sl.8+82c2b7fe",
34
- "@sphereon/ssi-sdk.core": "0.34.1-feature.SSISDK.17.bitstring.sl.8+82c2b7fe",
35
- "@sphereon/ssi-types": "0.34.1-feature.SSISDK.17.bitstring.sl.8+82c2b7fe",
31
+ "@sphereon/ssi-sdk-ext.did-utils": "0.29.1-next.3",
32
+ "@sphereon/ssi-sdk-ext.identifier-resolution": "0.29.1-next.3",
33
+ "@sphereon/ssi-sdk.agent-config": "0.34.1-feature.disable.test.8+4f707ea5",
34
+ "@sphereon/ssi-sdk.core": "0.34.1-feature.disable.test.8+4f707ea5",
35
+ "@sphereon/ssi-types": "0.34.1-feature.disable.test.8+4f707ea5",
36
36
  "@veramo/core": "4.2.0",
37
37
  "@veramo/utils": "4.2.0",
38
38
  "blakejs": "^1.2.1",
39
- "class-validator": "^0.14.1",
39
+ "class-validator": "0.14.1",
40
40
  "dcql": "0.2.19",
41
41
  "debug": "^4.3.5",
42
42
  "typeorm": "0.3.20"
@@ -65,5 +65,5 @@
65
65
  "PostgreSQL",
66
66
  "Contact Store"
67
67
  ],
68
- "gitHead": "82c2b7fe8231dde7046c617a95ea5b76da98a1b8"
68
+ "gitHead": "4f707ea55e0d84c474ed41e5b36a43658f71aa5a"
69
69
  }
@@ -1,6 +1,6 @@
1
1
  import { DataSource } from 'typeorm'
2
2
  import { DataSources } from '@sphereon/ssi-sdk.agent-config'
3
- import { BitstringStatusListEntity, BitstringStatusListEntryEntity, DataStoreStatusListEntities, StatusListEntryEntity } from '../index'
3
+ import { DataStoreStatusListEntities, StatusListEntryEntity } from '../index'
4
4
  import { DataStoreStatusListMigrations } from '../migrations'
5
5
  import { OAuthStatusListEntity, StatusList2021Entity } from '../entities/statusList/StatusListEntities'
6
6
  import { IIssuer, StatusListCredentialIdMode, StatusListDriverType } from '@sphereon/ssi-types'
@@ -18,8 +18,6 @@ describe('Status list entities tests', () => {
18
18
  migrations: DataStoreStatusListMigrations,
19
19
  synchronize: false,
20
20
  entities: [...DataStoreStatusListEntities],
21
- logger: 'advanced-console',
22
- logging: ['query', 'error', 'schema', 'warn', 'info', 'log', 'migration'],
23
21
  }).initialize()
24
22
  await dbConnection.runMigrations()
25
23
  expect(await dbConnection.showMigrations()).toBeFalsy()
@@ -216,59 +214,4 @@ describe('Status list entities tests', () => {
216
214
  })
217
215
  expect(foundEntry).toBeNull()
218
216
  })
219
-
220
- it('should save bitstring status list to database', async () => {
221
- const statusList = new BitstringStatusListEntity()
222
- statusList.id = 'bitstring-list-1'
223
- statusList.correlationId = 'correlation-bitstring-1'
224
- statusList.driverType = StatusListDriverType.AGENT_TYPEORM
225
- statusList.length = 131072
226
- statusList.credentialIdMode = StatusListCredentialIdMode.ISSUANCE
227
- statusList.proofFormat = 'lds'
228
- statusList.statusPurpose = 'revocation'
229
- statusList.bitsPerStatus = 1
230
- statusList.ttl = 3600000
231
- statusList.validFrom = new Date('2024-01-01T00:00:00Z')
232
- statusList.validUntil = new Date('2025-01-01T00:00:00Z')
233
- statusList.issuer = 'did:example:789'
234
-
235
- const fromDb = await dbConnection.getRepository(BitstringStatusListEntity).save(statusList)
236
- expect(fromDb).toBeDefined()
237
- expect(fromDb.id).toEqual(statusList.id)
238
- expect(fromDb.statusPurpose).toEqual(statusList.statusPurpose)
239
- expect(fromDb.bitsPerStatus).toEqual(statusList.bitsPerStatus)
240
- expect(fromDb.ttl).toEqual(statusList.ttl)
241
- expect(fromDb.validFrom).toEqual(statusList.validFrom)
242
- expect(fromDb.validUntil).toEqual(statusList.validUntil)
243
- })
244
-
245
- it('should save bitstring status list entry to database', async () => {
246
- const statusList = new BitstringStatusListEntity()
247
- statusList.id = 'bitstring-list-1'
248
- statusList.correlationId = 'correlation-bitstring-1'
249
- statusList.driverType = StatusListDriverType.AGENT_TYPEORM
250
- statusList.length = 131072
251
- statusList.credentialIdMode = StatusListCredentialIdMode.ISSUANCE
252
- statusList.proofFormat = 'lds'
253
- statusList.statusPurpose = 'revocation'
254
- statusList.issuer = 'did:example:789'
255
-
256
- await dbConnection.getRepository(BitstringStatusListEntity).save(statusList)
257
-
258
- const entry = new BitstringStatusListEntryEntity()
259
- entry.statusList = statusList
260
- entry.statusListIndex = 42
261
- entry.credentialId = 'bitstring-credential-1'
262
- entry.credentialHash = 'bitstring-hash-1'
263
- entry.statusPurpose = 'revocation'
264
- entry.bitsPerStatus = 1
265
- entry.statusReference = 'https://example.org/status-ref'
266
-
267
- const fromDb = await dbConnection.getRepository(BitstringStatusListEntryEntity).save(entry)
268
- expect(fromDb).toBeDefined()
269
- expect(fromDb.statusListIndex).toEqual(entry.statusListIndex)
270
- expect(fromDb.statusPurpose).toEqual(entry.statusPurpose)
271
- expect(fromDb.bitsPerStatus).toEqual(entry.bitsPerStatus)
272
- expect(fromDb.statusReference).toEqual(entry.statusReference)
273
- })
274
217
  })
@@ -1,6 +1,6 @@
1
1
  import { DataSource } from 'typeorm'
2
2
  import { DataSources } from '@sphereon/ssi-sdk.agent-config'
3
- import { DataStoreStatusListEntities, IBitstringStatusListEntity } from '../index'
3
+ import { DataStoreStatusListEntities } from '../index'
4
4
  import { DataStoreStatusListMigrations } from '../migrations'
5
5
  import { StatusListStore } from '../statusList/StatusListStore'
6
6
  import { IOAuthStatusListEntity, IStatusList2021Entity, IStatusListEntryEntity } from '../types'
@@ -230,66 +230,4 @@ describe('Status list store tests', () => {
230
230
 
231
231
  await expect(statusListStore.getStatusList({ id: statusList.id })).rejects.toThrow(`No status list found for id ${statusList.id}`)
232
232
  })
233
-
234
- it('should store bitstring status list', async () => {
235
- const statusList: IBitstringStatusListEntity = {
236
- id: 'bitstring-list-1',
237
- correlationId: 'correlation-bitstring-1',
238
- driverType: StatusListDriverType.AGENT_TYPEORM,
239
- length: 131072,
240
- credentialIdMode: StatusListCredentialIdMode.ISSUANCE,
241
- type: StatusListType.BitstringStatusList,
242
- proofFormat: 'lds',
243
- statusPurpose: 'revocation',
244
- bitsPerStatus: 1,
245
- ttl: 3600000,
246
- validFrom: new Date('2024-01-01T00:00:00Z'),
247
- validUntil: new Date('2025-01-01T00:00:00Z'),
248
- issuer: 'did:example:789',
249
- }
250
-
251
- const result = await statusListStore.addStatusList(statusList)
252
- expect(result).toBeDefined()
253
- expect(result.id).toEqual(statusList.id)
254
- expect((result as IBitstringStatusListEntity).statusPurpose).toEqual(statusList.statusPurpose)
255
- expect((result as IBitstringStatusListEntity).ttl).toEqual(statusList.ttl)
256
- })
257
-
258
- it('should store and retrieve all three types of status lists', async () => {
259
- const statusList2021: IStatusList2021Entity = {
260
- id: 'test-list-1',
261
- correlationId: 'correlation-1',
262
- driverType: StatusListDriverType.AGENT_TYPEORM,
263
- length: 100000,
264
- credentialIdMode: StatusListCredentialIdMode.ISSUANCE,
265
- type: StatusListType.StatusList2021,
266
- proofFormat: 'jwt',
267
- statusPurpose: 'revocation',
268
- indexingDirection: 'rightToLeft',
269
- issuer: 'did:example:123',
270
- }
271
-
272
- const bitstringStatusList: IBitstringStatusListEntity = {
273
- id: 'bitstring-list-1',
274
- correlationId: 'correlation-bitstring-1',
275
- driverType: StatusListDriverType.AGENT_TYPEORM,
276
- length: 131072,
277
- credentialIdMode: StatusListCredentialIdMode.ISSUANCE,
278
- type: StatusListType.BitstringStatusList,
279
- proofFormat: 'lds',
280
- statusPurpose: 'suspension',
281
- ttl: 3600000,
282
- issuer: 'did:example:789',
283
- }
284
-
285
- await statusListStore.addStatusList(statusList2021)
286
- await statusListStore.addStatusList(bitstringStatusList)
287
-
288
- const found2021 = await statusListStore.getStatusList({ id: statusList2021.id })
289
- const foundBitstring = await statusListStore.getStatusList({ id: bitstringStatusList.id })
290
-
291
- expect(found2021.type).toEqual(StatusListType.StatusList2021)
292
- expect(foundBitstring.type).toEqual(StatusListType.BitstringStatusList)
293
- expect((foundBitstring as IBitstringStatusListEntity).statusPurpose).toEqual('suspension')
294
- })
295
233
  })
@@ -1,7 +1,7 @@
1
1
  import { Validate } from 'class-validator'
2
2
  import { BaseEntity, Column, Entity, JoinColumn, ManyToOne, PrimaryColumn } from 'typeorm'
3
3
  import { IsNonEmptyStringConstraint } from '../validators'
4
- import { StatusList2021Entity, StatusListEntity } from './StatusListEntities'
4
+ import { StatusListEntity } from './StatusListEntities'
5
5
 
6
6
  @Entity('StatusListEntry')
7
7
  // @Unique('uq_credential_statuslist', ['statusList', 'credentialId']) // disabled because one prop can be null
@@ -15,7 +15,7 @@ export class StatusListEntryEntity extends BaseEntity {
15
15
  @Validate(IsNonEmptyStringConstraint, { message: 'Status list index is required' })
16
16
  statusListIndex!: number
17
17
 
18
- @ManyToOne(() => StatusList2021Entity, (statusList) => statusList.statusListEntries)
18
+ @ManyToOne(() => StatusListEntity, (statusList) => statusList.statusListEntries)
19
19
  @JoinColumn({ name: 'statusListId' })
20
20
  statusList!: StatusListEntity
21
21
 
@@ -1,5 +1,4 @@
1
1
  import {
2
- type CredentialProofFormat,
3
2
  type IIssuer,
4
3
  type StatusListCredential,
5
4
  StatusListCredentialIdMode,
@@ -7,14 +6,12 @@ import {
7
6
  type StatusListIndexingDirection,
8
7
  StatusListType,
9
8
  type StatusPurpose2021,
9
+ type CredentialProofFormat,
10
10
  } from '@sphereon/ssi-types'
11
-
12
11
  import typeorm from 'typeorm'
12
+ const { BaseEntity, ChildEntity, Column, Entity, OneToMany, PrimaryColumn, TableInheritance, Unique } = typeorm
13
13
  import { StatusListEntryEntity } from './StatusList2021EntryEntity'
14
14
  import { typeOrmDateTime } from '@sphereon/ssi-sdk.agent-config'
15
- import { BitstringStatusListEntryEntity } from './BitstringStatusListEntryEntity'
16
-
17
- const { BaseEntity, ChildEntity, Column, Entity, OneToMany, PrimaryColumn, TableInheritance, Unique } = typeorm
18
15
 
19
16
  @Entity('StatusList')
20
17
  @Unique('UQ_correlationId', ['correlationId'])
@@ -91,6 +88,9 @@ export abstract class StatusListEntity extends BaseEntity {
91
88
  },
92
89
  })
93
90
  statusListCredential?: StatusListCredential
91
+
92
+ @OneToMany((type) => StatusListEntryEntity, (entry) => entry.statusList)
93
+ statusListEntries!: StatusListEntryEntity[]
94
94
  }
95
95
 
96
96
  @ChildEntity(StatusListType.StatusList2021)
@@ -106,9 +106,6 @@ export class StatusList2021Entity extends StatusListEntity {
106
106
 
107
107
  @Column({ type: 'varchar', name: 'statusPurpose', nullable: false, default: 'revocation' })
108
108
  statusPurpose!: StatusPurpose2021
109
-
110
- @OneToMany((type) => StatusListEntryEntity, (entry) => entry.statusList)
111
- statusListEntries!: StatusListEntryEntity[]
112
109
  }
113
110
 
114
111
  @ChildEntity(StatusListType.OAuthStatusList)
@@ -118,42 +115,3 @@ export class OAuthStatusListEntity extends StatusListEntity {
118
115
  @Column({ name: 'expiresAt', nullable: true, type: typeOrmDateTime() })
119
116
  expiresAt?: Date
120
117
  }
121
-
122
- @ChildEntity(StatusListType.BitstringStatusList)
123
- export class BitstringStatusListEntity extends StatusListEntity {
124
- @Column({
125
- type: 'varchar',
126
- name: 'statusPurpose',
127
- nullable: false,
128
- transformer: {
129
- from(value: string): string | string[] {
130
- if (value?.includes(',')) {
131
- return value.split(',').map((v) => v.trim() as string)
132
- }
133
- return value as string
134
- },
135
- to(value: string | string[]): string {
136
- if (Array.isArray(value)) {
137
- return value.join(',')
138
- }
139
- return value
140
- },
141
- },
142
- })
143
- statusPurpose!: string | string[]
144
-
145
- @Column({ type: 'integer', name: 'bitsPerStatus', nullable: false })
146
- bitsPerStatus?: number
147
-
148
- @Column({ name: 'validFrom', nullable: true, type: typeOrmDateTime() })
149
- validFrom?: Date
150
-
151
- @Column({ name: 'validUntil', nullable: true, type: typeOrmDateTime() })
152
- validUntil?: Date
153
-
154
- @Column({ type: 'integer', name: 'ttl', nullable: true })
155
- ttl?: number
156
-
157
- @OneToMany((type) => BitstringStatusListEntryEntity, (entry) => entry.statusList)
158
- statusListEntries!: BitstringStatusListEntryEntity[]
159
- }
package/src/index.ts CHANGED
@@ -16,9 +16,8 @@ import { ImageDimensionsEntity } from './entities/issuanceBranding/ImageDimensio
16
16
  import { IssuerLocaleBrandingEntity } from './entities/issuanceBranding/IssuerLocaleBrandingEntity'
17
17
  import { IssuerBrandingEntity } from './entities/issuanceBranding/IssuerBrandingEntity'
18
18
  import { TextAttributesEntity } from './entities/issuanceBranding/TextAttributesEntity'
19
- import { BitstringStatusListEntity, OAuthStatusListEntity, StatusList2021Entity, StatusListEntity } from './entities/statusList/StatusListEntities'
19
+ import { OAuthStatusListEntity, StatusList2021Entity, StatusListEntity } from './entities/statusList/StatusListEntities'
20
20
  import { StatusListEntryEntity } from './entities/statusList/StatusList2021EntryEntity'
21
- import { BitstringStatusListEntryEntity } from './entities/statusList/BitstringStatusListEntryEntity'
22
21
  import { MachineStateInfoEntity } from './entities/machineState/MachineStateInfoEntity'
23
22
  // import { IStatusListEntity, IStatusListEntryEntity } from './types.'
24
23
  import { PartyRelationshipEntity } from './entities/contact/PartyRelationshipEntity'
@@ -101,14 +100,7 @@ export const DataStoreIssuanceBrandingEntities = [
101
100
 
102
101
  export const DataStorePresentationDefinitionEntities = [PresentationDefinitionItemEntity]
103
102
 
104
- export const DataStoreStatusListEntities = [
105
- StatusListEntity,
106
- StatusList2021Entity,
107
- OAuthStatusListEntity,
108
- BitstringStatusListEntity,
109
- BitstringStatusListEntryEntity,
110
- StatusListEntryEntity,
111
- ]
103
+ export const DataStoreStatusListEntities = [StatusListEntity, StatusList2021Entity, OAuthStatusListEntity, StatusListEntryEntity]
112
104
 
113
105
  export const DataStoreEventLoggerEntities = [AuditEventEntity]
114
106
 
@@ -151,10 +143,8 @@ export {
151
143
  PhysicalAddressEntity,
152
144
  StatusListEntity,
153
145
  StatusListEntryEntity,
154
- BitstringStatusListEntryEntity,
155
146
  OAuthStatusListEntity,
156
147
  StatusList2021Entity,
157
- BitstringStatusListEntity,
158
148
  AuditEventEntity,
159
149
  DigitalCredentialEntity,
160
150
  MachineStateInfoEntity,
@@ -9,7 +9,6 @@ import { CreateContacts1708525189000 } from './8-CreateContacts'
9
9
  import { CreateContacts1715761125000 } from './9-CreateContacts'
10
10
  import { CreatePresentationDefinitions1716533767523 } from './10-CreatePresentationDefinitions'
11
11
  import { FixCredentialClaimsReferencesUuid1741895822987 } from './11-FixCredentialClaimsReferenceUuid'
12
- import { CreateBitstringStatusList1741895823000 } from './12-CreateBitstringStatusList'
13
12
 
14
13
  /**
15
14
  * The migrations array that SHOULD be used when initializing a TypeORM database connection.
@@ -27,7 +26,7 @@ export const DataStoreContactMigrations = [
27
26
  CreateContacts1715761125000,
28
27
  ]
29
28
  export const DataStoreIssuanceBrandingMigrations = [CreateIssuanceBranding1659463079429, FixCredentialClaimsReferencesUuid1741895822987]
30
- export const DataStoreStatusListMigrations = [CreateStatusList1693866470000, CreateBitstringStatusList1741895823000]
29
+ export const DataStoreStatusListMigrations = [CreateStatusList1693866470000]
31
30
  export const DataStoreEventLoggerMigrations = [CreateAuditEvents1701635835330]
32
31
  export const DataStoreDigitalCredentialMigrations = [CreateDigitalCredential1708525189000]
33
32
  export const DataStoreMachineStateMigrations = [CreateMachineStateStore1708098041262]
@@ -1,7 +1,7 @@
1
1
  import { type OrPromise, StatusListType } from '@sphereon/ssi-types'
2
2
  import Debug from 'debug'
3
3
  import { DataSource, In, type Repository } from 'typeorm'
4
- import { BitstringStatusListEntity, OAuthStatusListEntity, StatusList2021Entity, StatusListEntity } from '../entities/statusList/StatusListEntities'
4
+ import { OAuthStatusListEntity, StatusList2021Entity, StatusListEntity } from '../entities/statusList/StatusListEntities'
5
5
  import { StatusListEntryEntity } from '../entities/statusList/StatusList2021EntryEntity'
6
6
  import type {
7
7
  IAddStatusListArgs,
@@ -45,7 +45,7 @@ export class StatusListStore implements IStatusListStore {
45
45
  const results = (
46
46
  await repo.find({
47
47
  where: {
48
- statusListId: statusList.id,
48
+ statusList,
49
49
  statusListIndex: In(statusListIndex),
50
50
  },
51
51
  })
@@ -268,8 +268,6 @@ export class StatusListStore implements IStatusListStore {
268
268
  return dataSource.getRepository(StatusList2021Entity)
269
269
  case StatusListType.OAuthStatusList:
270
270
  return dataSource.getRepository(OAuthStatusListEntity)
271
- case StatusListType.BitstringStatusList:
272
- return dataSource.getRepository(BitstringStatusListEntity)
273
271
  default:
274
272
  return dataSource.getRepository(StatusListEntity)
275
273
  }
@@ -6,7 +6,6 @@ export * from './presentationDefinition/presentationDefinition'
6
6
  export * from './presentationDefinition/IAbstractPDStore'
7
7
  export * from './validation/validation'
8
8
  export * from './statusList/statusList'
9
- export * from './statusList/bitstringTypes'
10
9
  export * from './statusList/IAbstractStatusListStore'
11
10
  export * from './eventLogger/IAbstractEventLoggerStore'
12
11
  export * from './eventLogger/eventLogger'
@@ -1,16 +1,15 @@
1
1
  import {
2
- type CredentialProofFormat,
3
2
  IIssuer,
4
- RequireOneOf,
5
3
  StatusListCredential,
6
4
  StatusListCredentialIdMode,
7
5
  StatusListDriverType,
8
6
  StatusListIndexingDirection,
9
7
  StatusListType,
10
8
  StatusPurpose2021,
9
+ type CredentialProofFormat,
10
+ RequireOneOf,
11
11
  } from '@sphereon/ssi-types'
12
12
  import { StatusListEntity } from '../../entities/statusList/StatusListEntities'
13
- import { BitstringStatusPurpose } from './bitstringTypes'
14
13
 
15
14
  export interface IStatusListEntity {
16
15
  id: string
@@ -22,7 +21,6 @@ export interface IStatusListEntity {
22
21
  type: StatusListType
23
22
  proofFormat: CredentialProofFormat
24
23
  statusListCredential?: StatusListCredential
25
- bitsPerStatus?: number
26
24
  }
27
25
 
28
26
  export interface IStatusList2021Entity extends IStatusListEntity {
@@ -35,14 +33,6 @@ export interface IOAuthStatusListEntity extends IStatusListEntity {
35
33
  expiresAt?: Date
36
34
  }
37
35
 
38
- export interface IBitstringStatusListEntity extends IStatusListEntity {
39
- statusPurpose: BitstringStatusPurpose | BitstringStatusPurpose[]
40
- bitsPerStatus?: number
41
- validFrom?: Date
42
- validUntil?: Date
43
- ttl?: number
44
- }
45
-
46
36
  export type IStatusListEntryEntity = RequireOneOf<
47
37
  {
48
38
  statusList: StatusListEntity
@@ -1,10 +1,5 @@
1
- import { IBitstringStatusListEntity, IOAuthStatusListEntity, IStatusList2021Entity, IStatusListEntity } from '../../types'
2
- import {
3
- BitstringStatusListEntity,
4
- OAuthStatusListEntity,
5
- StatusList2021Entity,
6
- StatusListEntity,
7
- } from '../../entities/statusList/StatusListEntities'
1
+ import { IOAuthStatusListEntity, IStatusList2021Entity, IStatusListEntity } from '../../types'
2
+ import { OAuthStatusListEntity, StatusList2021Entity, StatusListEntity } from '../../entities/statusList/StatusListEntities'
8
3
  import { StatusListType } from '@sphereon/ssi-types'
9
4
  import { replaceNullWithUndefined } from '../FormattingUtils'
10
5
 
@@ -37,27 +32,6 @@ export const statusListEntityFrom = (args: IStatusListEntity): StatusListEntity
37
32
  return entity
38
33
  }
39
34
 
40
- if (args.type === StatusListType.BitstringStatusList) {
41
- const entity = new BitstringStatusListEntity()
42
- const bitstringsl = args as IBitstringStatusListEntity
43
- if (!bitstringsl.bitsPerStatus) {
44
- throw Error('bitsPerStatus must be set for BitstringStatusList')
45
- }
46
-
47
- entity.statusPurpose = bitstringsl.statusPurpose
48
- entity.bitsPerStatus = bitstringsl.bitsPerStatus
49
- entity.validFrom = bitstringsl.validFrom
50
- entity.validUntil = bitstringsl.validUntil
51
- entity.ttl = bitstringsl.ttl
52
- setBaseFields(entity, args)
53
- Object.defineProperty(entity, 'type', {
54
- value: StatusListType.BitstringStatusList,
55
- enumerable: true,
56
- configurable: true,
57
- })
58
- return entity
59
- }
60
-
61
35
  throw new Error(`Invalid status list type ${args.type}`)
62
36
  }
63
37
 
@@ -82,18 +56,6 @@ export const statusListFrom = (entity: StatusListEntity): IStatusListEntity => {
82
56
  return replaceNullWithUndefined(result)
83
57
  }
84
58
 
85
- if (entity instanceof BitstringStatusListEntity) {
86
- const result: IBitstringStatusListEntity = {
87
- ...getBaseFields(entity),
88
- type: StatusListType.BitstringStatusList,
89
- statusPurpose: entity.statusPurpose,
90
- bitsPerStatus: entity.bitsPerStatus,
91
- validFrom: entity.validFrom,
92
- validUntil: entity.validUntil,
93
- ttl: entity.ttl,
94
- }
95
- return replaceNullWithUndefined(result)
96
- }
97
59
  throw new Error(`Invalid status list type ${typeof entity}`)
98
60
  }
99
61
 
@@ -1,82 +0,0 @@
1
- import { Validate } from 'class-validator'
2
- import { BaseEntity, Column, Entity, JoinColumn, ManyToOne, PrimaryColumn } from 'typeorm'
3
- import { IsNonEmptyStringConstraint } from '../validators'
4
- import { BitstringStatusListEntity } from './StatusListEntities'
5
- import { BitstringStatus } from '../../types/statusList/bitstringTypes'
6
-
7
- @Entity('BitstringStatusListEntry')
8
- export class BitstringStatusListEntryEntity extends BaseEntity {
9
- @PrimaryColumn({ name: 'statusListId', type: 'varchar', nullable: false, unique: false })
10
- @Validate(IsNonEmptyStringConstraint, { message: 'Status list id is required' })
11
- statusListId!: string
12
-
13
- @PrimaryColumn({ name: 'statusListIndex', type: 'integer', nullable: false, unique: false })
14
- statusListIndex!: number
15
-
16
- @ManyToOne(() => BitstringStatusListEntity, (statusList) => statusList.statusListEntries)
17
- @JoinColumn({ name: 'statusListId' })
18
- statusList!: BitstringStatusListEntity
19
-
20
- @Column({ name: 'credentialId', type: 'text', nullable: true })
21
- credentialId?: string
22
-
23
- @Column({ name: 'credentialHash', length: 128, type: 'varchar', nullable: true, unique: false })
24
- credentialHash?: string
25
-
26
- @Column({ name: 'correlationId', length: 255, type: 'varchar', nullable: true, unique: false })
27
- entryCorrelationId?: string
28
-
29
- @Column({ type: 'varchar', name: 'statusPurpose', nullable: false })
30
- statusPurpose!: string
31
-
32
- @Column({ type: 'integer', name: 'bitsPerStatus', nullable: true, default: 1 })
33
- bitsPerStatus?: number
34
-
35
- @Column({
36
- type: 'text',
37
- name: 'statusMessage',
38
- nullable: true,
39
- transformer: {
40
- from(value: string): Array<BitstringStatus> | undefined {
41
- if (!value) {
42
- return undefined
43
- }
44
- return JSON.parse(value)
45
- },
46
- to(value: Array<BitstringStatus> | undefined): string | undefined {
47
- if (!value) {
48
- return undefined
49
- }
50
- return JSON.stringify(value)
51
- },
52
- },
53
- })
54
- statusMessage?: Array<BitstringStatus>
55
-
56
- @Column({
57
- type: 'text',
58
- name: 'statusReference',
59
- nullable: true,
60
- transformer: {
61
- from(value: string): string | string[] | undefined {
62
- if (!value) {
63
- return undefined
64
- }
65
- if (value.startsWith('[')) {
66
- return JSON.parse(value)
67
- }
68
- return value
69
- },
70
- to(value: string | string[] | undefined): string | undefined {
71
- if (!value) {
72
- return undefined
73
- }
74
- if (Array.isArray(value)) {
75
- return JSON.stringify(value)
76
- }
77
- return value
78
- },
79
- },
80
- })
81
- statusReference?: string | string[]
82
- }
@@ -1,52 +0,0 @@
1
- import { DatabaseType, MigrationInterface, QueryRunner } from 'typeorm'
2
- import Debug from 'debug'
3
- import { CreateBitstringStatusListPG1741895823000 } from '../postgres/1741895823000-CreateBitstringStatusList'
4
- import { CreateBitstringStatusListSqlite1741895823001 } from '../sqlite/1741895823001-CreateBitstringStatusList'
5
-
6
- const debug: Debug.Debugger = Debug('sphereon:ssi-sdk:migrations')
7
-
8
- export class CreateBitstringStatusList1741895823000 implements MigrationInterface {
9
- name = 'CreateBitstringStatusList1741895823000'
10
-
11
- public async up(queryRunner: QueryRunner): Promise<void> {
12
- debug('migration: creating bitstring status list tables')
13
- const dbType: DatabaseType = queryRunner.connection.driver.options.type
14
- switch (dbType) {
15
- case 'postgres': {
16
- const mig = new CreateBitstringStatusListPG1741895823000()
17
- await mig.up(queryRunner)
18
- return
19
- }
20
- case 'sqlite':
21
- case 'expo':
22
- case 'react-native': {
23
- const mig = new CreateBitstringStatusListSqlite1741895823001()
24
- await mig.up(queryRunner)
25
- return
26
- }
27
- default:
28
- return Promise.reject(`Migrations only supported for sqlite and postgres. Was ${dbType}`)
29
- }
30
- }
31
-
32
- public async down(queryRunner: QueryRunner): Promise<void> {
33
- debug('migration: dropping bitstring status list tables')
34
- const dbType: DatabaseType = queryRunner.connection.driver.options.type
35
- switch (dbType) {
36
- case 'postgres': {
37
- const mig = new CreateBitstringStatusListPG1741895823000()
38
- await mig.down(queryRunner)
39
- return
40
- }
41
- case 'sqlite':
42
- case 'expo':
43
- case 'react-native': {
44
- const mig = new CreateBitstringStatusListSqlite1741895823001()
45
- await mig.down(queryRunner)
46
- return
47
- }
48
- default:
49
- return Promise.reject(`Migrations only supported for sqlite and postgres. Was ${dbType}`)
50
- }
51
- }
52
- }