@sphereon/ssi-sdk.data-store 0.28.1-next.6 → 0.28.1-next.60
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/dist/contact/ContactStore.d.ts.map +1 -1
- package/dist/contact/ContactStore.js.map +1 -1
- package/dist/digitalCredential/AbstractDigitalCredentialStore.d.ts +4 -5
- package/dist/digitalCredential/AbstractDigitalCredentialStore.d.ts.map +1 -1
- package/dist/digitalCredential/AbstractDigitalCredentialStore.js.map +1 -1
- package/dist/digitalCredential/DigitalCredentialStore.d.ts +4 -5
- package/dist/digitalCredential/DigitalCredentialStore.d.ts.map +1 -1
- package/dist/digitalCredential/DigitalCredentialStore.js +10 -10
- package/dist/digitalCredential/DigitalCredentialStore.js.map +1 -1
- package/dist/entities/contact/BaseContactEntity.d.ts.map +1 -1
- package/dist/entities/contact/BaseContactEntity.js +3 -2
- package/dist/entities/contact/BaseContactEntity.js.map +1 -1
- package/dist/entities/contact/ConnectionEntity.js +2 -2
- package/dist/entities/contact/ConnectionEntity.js.map +1 -1
- package/dist/entities/contact/ContactMetadataItemEntity.d.ts +1 -0
- package/dist/entities/contact/ContactMetadataItemEntity.d.ts.map +1 -1
- package/dist/entities/contact/ContactMetadataItemEntity.js +7 -6
- package/dist/entities/contact/ContactMetadataItemEntity.js.map +1 -1
- package/dist/entities/contact/CorrelationIdentifierEntity.js +2 -2
- package/dist/entities/contact/CorrelationIdentifierEntity.js.map +1 -1
- package/dist/entities/contact/DidAuthConfigEntity.js +5 -5
- package/dist/entities/contact/DidAuthConfigEntity.js.map +1 -1
- package/dist/entities/contact/ElectronicAddressEntity.d.ts.map +1 -1
- package/dist/entities/contact/ElectronicAddressEntity.js +8 -7
- package/dist/entities/contact/ElectronicAddressEntity.js.map +1 -1
- package/dist/entities/contact/IdentityEntity.d.ts.map +1 -1
- package/dist/entities/contact/IdentityEntity.js +7 -6
- package/dist/entities/contact/IdentityEntity.js.map +1 -1
- package/dist/entities/contact/IdentityMetadataItemEntity.d.ts +1 -0
- package/dist/entities/contact/IdentityMetadataItemEntity.d.ts.map +1 -1
- package/dist/entities/contact/IdentityMetadataItemEntity.js +7 -6
- package/dist/entities/contact/IdentityMetadataItemEntity.js.map +1 -1
- package/dist/entities/contact/NaturalPersonEntity.js +6 -6
- package/dist/entities/contact/NaturalPersonEntity.js.map +1 -1
- package/dist/entities/contact/OpenIdConfigEntity.js +5 -5
- package/dist/entities/contact/OpenIdConfigEntity.js.map +1 -1
- package/dist/entities/contact/OrganizationEntity.d.ts +0 -2
- package/dist/entities/contact/OrganizationEntity.d.ts.map +1 -1
- package/dist/entities/contact/OrganizationEntity.js +6 -12
- package/dist/entities/contact/OrganizationEntity.js.map +1 -1
- package/dist/entities/contact/PartyEntity.d.ts.map +1 -1
- package/dist/entities/contact/PartyEntity.js +6 -5
- package/dist/entities/contact/PartyEntity.js.map +1 -1
- package/dist/entities/contact/PartyRelationshipEntity.d.ts.map +1 -1
- package/dist/entities/contact/PartyRelationshipEntity.js +7 -6
- package/dist/entities/contact/PartyRelationshipEntity.js.map +1 -1
- package/dist/entities/contact/PartyTypeEntity.d.ts.map +1 -1
- package/dist/entities/contact/PartyTypeEntity.js +6 -5
- package/dist/entities/contact/PartyTypeEntity.js.map +1 -1
- package/dist/entities/contact/PhysicalAddressEntity.d.ts.map +1 -1
- package/dist/entities/contact/PhysicalAddressEntity.js +14 -13
- package/dist/entities/contact/PhysicalAddressEntity.js.map +1 -1
- package/dist/entities/digitalCredential/DigitalCredentialEntity.d.ts +3 -1
- package/dist/entities/digitalCredential/DigitalCredentialEntity.d.ts.map +1 -1
- package/dist/entities/digitalCredential/DigitalCredentialEntity.js +21 -12
- package/dist/entities/digitalCredential/DigitalCredentialEntity.js.map +1 -1
- package/dist/entities/eventLogger/AuditEventEntity.d.ts.map +1 -1
- package/dist/entities/eventLogger/AuditEventEntity.js +13 -12
- package/dist/entities/eventLogger/AuditEventEntity.js.map +1 -1
- package/dist/entities/issuanceBranding/BackgroundAttributesEntity.js +1 -1
- package/dist/entities/issuanceBranding/BackgroundAttributesEntity.js.map +1 -1
- package/dist/entities/issuanceBranding/BaseLocaleBrandingEntity.d.ts.map +1 -1
- package/dist/entities/issuanceBranding/BaseLocaleBrandingEntity.js +6 -5
- package/dist/entities/issuanceBranding/BaseLocaleBrandingEntity.js.map +1 -1
- package/dist/entities/issuanceBranding/CredentialBrandingEntity.d.ts.map +1 -1
- package/dist/entities/issuanceBranding/CredentialBrandingEntity.js +5 -4
- package/dist/entities/issuanceBranding/CredentialBrandingEntity.js.map +1 -1
- package/dist/entities/issuanceBranding/CredentialLocaleBrandingEntity.js +1 -1
- package/dist/entities/issuanceBranding/CredentialLocaleBrandingEntity.js.map +1 -1
- package/dist/entities/issuanceBranding/ImageAttributesEntity.js +4 -4
- package/dist/entities/issuanceBranding/ImageAttributesEntity.js.map +1 -1
- package/dist/entities/issuanceBranding/ImageDimensionsEntity.js +2 -2
- package/dist/entities/issuanceBranding/ImageDimensionsEntity.js.map +1 -1
- package/dist/entities/issuanceBranding/IssuerBrandingEntity.d.ts.map +1 -1
- package/dist/entities/issuanceBranding/IssuerBrandingEntity.js +4 -3
- package/dist/entities/issuanceBranding/IssuerBrandingEntity.js.map +1 -1
- package/dist/entities/issuanceBranding/IssuerLocaleBrandingEntity.js +1 -1
- package/dist/entities/issuanceBranding/IssuerLocaleBrandingEntity.js.map +1 -1
- package/dist/entities/issuanceBranding/TextAttributesEntity.js +1 -1
- package/dist/entities/issuanceBranding/TextAttributesEntity.js.map +1 -1
- package/dist/entities/machineState/MachineStateInfoEntity.d.ts.map +1 -1
- package/dist/entities/machineState/MachineStateInfoEntity.js +5 -4
- package/dist/entities/machineState/MachineStateInfoEntity.js.map +1 -1
- package/dist/entities/presentationDefinition/PresentationDefinitionItemEntity.d.ts.map +1 -1
- package/dist/entities/presentationDefinition/PresentationDefinitionItemEntity.js +8 -7
- package/dist/entities/presentationDefinition/PresentationDefinitionItemEntity.js.map +1 -1
- package/dist/entities/statusList2021/StatusList2021Entity.js +1 -1
- package/dist/entities/statusList2021/StatusList2021Entity.js.map +1 -1
- package/dist/entities/statusList2021/StatusList2021EntryEntity.js +5 -5
- package/dist/entities/statusList2021/StatusList2021EntryEntity.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/migrations/postgres/1708525189001-CreateDigitalCredential.d.ts.map +1 -1
- package/dist/migrations/postgres/1708525189001-CreateDigitalCredential.js +4 -0
- package/dist/migrations/postgres/1708525189001-CreateDigitalCredential.js.map +1 -1
- package/dist/migrations/sqlite/1708525189002-CreateDigitalCredential.d.ts.map +1 -1
- package/dist/migrations/sqlite/1708525189002-CreateDigitalCredential.js +2 -0
- package/dist/migrations/sqlite/1708525189002-CreateDigitalCredential.js.map +1 -1
- package/dist/types/contact/contact.d.ts +8 -5
- package/dist/types/contact/contact.d.ts.map +1 -1
- package/dist/types/contact/contact.js +1 -7
- package/dist/types/contact/contact.js.map +1 -1
- package/dist/types/digitalCredential/IAbstractDigitalCredentialStore.d.ts +2 -1
- package/dist/types/digitalCredential/IAbstractDigitalCredentialStore.d.ts.map +1 -1
- package/dist/types/digitalCredential/digitalCredential.d.ts +7 -0
- package/dist/types/digitalCredential/digitalCredential.d.ts.map +1 -1
- package/dist/types/digitalCredential/digitalCredential.js +7 -1
- package/dist/types/digitalCredential/digitalCredential.js.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/utils/digitalCredential/MappingUtils.d.ts.map +1 -1
- package/dist/utils/digitalCredential/MappingUtils.js +1 -1
- package/dist/utils/digitalCredential/MappingUtils.js.map +1 -1
- package/package.json +6 -5
- package/src/__tests__/contact.entities.test.ts +3 -0
- package/src/__tests__/contact.store.test.ts +2 -0
- package/src/__tests__/digitalCredential.entities.test.ts +9 -1
- package/src/__tests__/digitalCredential.store.test.ts +16 -2
- package/src/__tests__/eventLogger.entities.test.ts +2 -0
- package/src/__tests__/eventLogger.store.test.ts +3 -1
- package/src/__tests__/issuanceBranding.entities.test.ts +2 -0
- package/src/__tests__/issuanceBranding.store.test.ts +2 -0
- package/src/__tests__/machineState.entities.test.ts +2 -0
- package/src/__tests__/machineState.store.test.ts +2 -0
- package/src/__tests__/pd-manager.entities.test.ts +2 -0
- package/src/__tests__/pd-manager.store.test.ts +2 -0
- package/src/contact/ContactStore.ts +1 -0
- package/src/digitalCredential/AbstractDigitalCredentialStore.ts +9 -5
- package/src/digitalCredential/DigitalCredentialStore.ts +18 -12
- package/src/entities/contact/BaseContactEntity.ts +3 -2
- package/src/entities/contact/ConnectionEntity.ts +2 -2
- package/src/entities/contact/ContactMetadataItemEntity.ts +8 -7
- package/src/entities/contact/CorrelationIdentifierEntity.ts +2 -2
- package/src/entities/contact/DidAuthConfigEntity.ts +5 -5
- package/src/entities/contact/ElectronicAddressEntity.ts +8 -7
- package/src/entities/contact/IdentityEntity.ts +7 -6
- package/src/entities/contact/IdentityMetadataItemEntity.ts +8 -7
- package/src/entities/contact/NaturalPersonEntity.ts +6 -6
- package/src/entities/contact/OpenIdConfigEntity.ts +5 -5
- package/src/entities/contact/OrganizationEntity.ts +9 -14
- package/src/entities/contact/PartyEntity.ts +6 -5
- package/src/entities/contact/PartyRelationshipEntity.ts +7 -6
- package/src/entities/contact/PartyTypeEntity.ts +6 -5
- package/src/entities/contact/PhysicalAddressEntity.ts +14 -13
- package/src/entities/digitalCredential/DigitalCredentialEntity.ts +14 -12
- package/src/entities/eventLogger/AuditEventEntity.ts +13 -12
- package/src/entities/issuanceBranding/BackgroundAttributesEntity.ts +1 -1
- package/src/entities/issuanceBranding/BaseLocaleBrandingEntity.ts +6 -5
- package/src/entities/issuanceBranding/CredentialBrandingEntity.ts +5 -4
- package/src/entities/issuanceBranding/CredentialLocaleBrandingEntity.ts +1 -1
- package/src/entities/issuanceBranding/ImageAttributesEntity.ts +4 -4
- package/src/entities/issuanceBranding/ImageDimensionsEntity.ts +2 -2
- package/src/entities/issuanceBranding/IssuerBrandingEntity.ts +4 -3
- package/src/entities/issuanceBranding/IssuerLocaleBrandingEntity.ts +1 -1
- package/src/entities/issuanceBranding/TextAttributesEntity.ts +1 -1
- package/src/entities/machineState/MachineStateInfoEntity.ts +5 -4
- package/src/entities/presentationDefinition/PresentationDefinitionItemEntity.ts +8 -7
- package/src/entities/statusList2021/StatusList2021Entity.ts +1 -1
- package/src/entities/statusList2021/StatusList2021EntryEntity.ts +5 -5
- package/src/index.ts +4 -0
- package/src/migrations/postgres/1708525189001-CreateDigitalCredential.ts +4 -0
- package/src/migrations/sqlite/1708525189002-CreateDigitalCredential.ts +2 -0
- package/src/types/contact/contact.ts +10 -6
- package/src/types/digitalCredential/IAbstractDigitalCredentialStore.ts +2 -1
- package/src/types/digitalCredential/digitalCredential.ts +8 -0
- package/src/types/index.ts +2 -0
- package/src/utils/digitalCredential/MappingUtils.ts +1 -0
- package/dist/entities/contact/IMetadataEntity.d.ts +0 -8
- package/dist/entities/contact/IMetadataEntity.d.ts.map +0 -1
- package/dist/entities/contact/IMetadataEntity.js +0 -2
- package/dist/entities/contact/IMetadataEntity.js.map +0 -1
- package/src/entities/contact/IMetadataEntity.ts +0 -8
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
TableInheritance,
|
|
12
12
|
UpdateDateColumn,
|
|
13
13
|
} from 'typeorm'
|
|
14
|
+
import {TYPEORM_DATE_TIME_TYPE} from "@sphereon/ssi-sdk.agent-config";
|
|
14
15
|
import { ImageAttributesEntity } from './ImageAttributesEntity'
|
|
15
16
|
import { BackgroundAttributesEntity } from './BackgroundAttributesEntity'
|
|
16
17
|
import { TextAttributesEntity } from './TextAttributesEntity'
|
|
@@ -23,11 +24,11 @@ export class BaseLocaleBrandingEntity extends BaseEntity {
|
|
|
23
24
|
@PrimaryGeneratedColumn('uuid')
|
|
24
25
|
id!: string
|
|
25
26
|
|
|
26
|
-
@Column({ name: 'alias', length: 255, nullable: true, unique: false })
|
|
27
|
+
@Column('varchar', { name: 'alias', length: 255, nullable: true, unique: false })
|
|
27
28
|
@Validate(IsNonEmptyStringConstraint, { message: 'Blank aliases are not allowed' })
|
|
28
29
|
alias?: string
|
|
29
30
|
|
|
30
|
-
@Column({ name: 'locale', length: 255, nullable: false, unique: false })
|
|
31
|
+
@Column('varchar', { name: 'locale', length: 255, nullable: false, unique: false })
|
|
31
32
|
locale?: string
|
|
32
33
|
|
|
33
34
|
@OneToOne(() => ImageAttributesEntity, {
|
|
@@ -39,7 +40,7 @@ export class BaseLocaleBrandingEntity extends BaseEntity {
|
|
|
39
40
|
@JoinColumn({ name: 'logoId' })
|
|
40
41
|
logo?: ImageAttributesEntity
|
|
41
42
|
|
|
42
|
-
@Column({ name: 'description', length: 255, nullable: true, unique: false })
|
|
43
|
+
@Column('varchar', { name: 'description', length: 255, nullable: true, unique: false })
|
|
43
44
|
@Validate(IsNonEmptyStringConstraint, { message: 'Blank descriptions are not allowed' })
|
|
44
45
|
description?: string
|
|
45
46
|
|
|
@@ -61,10 +62,10 @@ export class BaseLocaleBrandingEntity extends BaseEntity {
|
|
|
61
62
|
@JoinColumn({ name: 'textId' })
|
|
62
63
|
text?: TextAttributesEntity
|
|
63
64
|
|
|
64
|
-
@CreateDateColumn({ name: 'created_at', nullable: false })
|
|
65
|
+
@CreateDateColumn({ name: 'created_at', nullable: false, type: TYPEORM_DATE_TIME_TYPE })
|
|
65
66
|
createdAt!: Date
|
|
66
67
|
|
|
67
|
-
@UpdateDateColumn({ name: 'last_updated_at', nullable: false })
|
|
68
|
+
@UpdateDateColumn({ name: 'last_updated_at', nullable: false, type: TYPEORM_DATE_TIME_TYPE })
|
|
68
69
|
lastUpdatedAt!: Date
|
|
69
70
|
|
|
70
71
|
// By default, @UpdateDateColumn in TypeORM updates the timestamp only when the entity's top-level properties change.
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
UpdateDateColumn,
|
|
12
12
|
} from 'typeorm'
|
|
13
13
|
import { ArrayMinSize, IsNotEmpty, validate, ValidationError } from 'class-validator'
|
|
14
|
+
import {TYPEORM_DATE_TIME_TYPE} from "@sphereon/ssi-sdk.agent-config";
|
|
14
15
|
import { CredentialLocaleBrandingEntity, credentialLocaleBrandingEntityFrom } from './CredentialLocaleBrandingEntity'
|
|
15
16
|
import { IBasicCredentialBranding, IBasicCredentialLocaleBranding } from '../../types'
|
|
16
17
|
|
|
@@ -21,11 +22,11 @@ export class CredentialBrandingEntity extends BaseEntity {
|
|
|
21
22
|
@PrimaryGeneratedColumn('uuid')
|
|
22
23
|
id!: string
|
|
23
24
|
|
|
24
|
-
@Column({ name: 'vcHash', length: 255, nullable: false, unique: true })
|
|
25
|
+
@Column('varchar', { name: 'vcHash', length: 255, nullable: false, unique: true })
|
|
25
26
|
@IsNotEmpty({ message: 'Blank vcHashes are not allowed' })
|
|
26
27
|
vcHash!: string
|
|
27
28
|
|
|
28
|
-
@Column({ name: 'issuerCorrelationId', length: 255, nullable: false, unique: false })
|
|
29
|
+
@Column('varchar', { name: 'issuerCorrelationId', length: 255, nullable: false, unique: false })
|
|
29
30
|
@IsNotEmpty({ message: 'Blank issuerCorrelationIds are not allowed' })
|
|
30
31
|
issuerCorrelationId!: string
|
|
31
32
|
|
|
@@ -42,10 +43,10 @@ export class CredentialBrandingEntity extends BaseEntity {
|
|
|
42
43
|
@ArrayMinSize(1, { message: 'localeBranding cannot be empty' })
|
|
43
44
|
localeBranding!: Array<CredentialLocaleBrandingEntity>
|
|
44
45
|
|
|
45
|
-
@CreateDateColumn({ name: 'created_at', nullable: false })
|
|
46
|
+
@CreateDateColumn({ name: 'created_at', nullable: false, type: TYPEORM_DATE_TIME_TYPE })
|
|
46
47
|
createdAt!: Date
|
|
47
48
|
|
|
48
|
-
@UpdateDateColumn({ name: 'last_updated_at', nullable: false })
|
|
49
|
+
@UpdateDateColumn({ name: 'last_updated_at', nullable: false, type: TYPEORM_DATE_TIME_TYPE })
|
|
49
50
|
lastUpdatedAt!: Date
|
|
50
51
|
|
|
51
52
|
// By default, @UpdateDateColumn in TypeORM updates the timestamp only when the entity's top-level properties change.
|
|
@@ -16,7 +16,7 @@ export class CredentialLocaleBrandingEntity extends BaseLocaleBrandingEntity {
|
|
|
16
16
|
@JoinColumn({ name: 'credentialBrandingId' })
|
|
17
17
|
credentialBranding!: CredentialBrandingEntity
|
|
18
18
|
|
|
19
|
-
@Column({ name: 'credentialBrandingId', nullable: false })
|
|
19
|
+
@Column('text', { name: 'credentialBrandingId', nullable: false })
|
|
20
20
|
credentialBrandingId!: string
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -9,19 +9,19 @@ export class ImageAttributesEntity extends BaseEntity {
|
|
|
9
9
|
@PrimaryGeneratedColumn('uuid')
|
|
10
10
|
id!: string
|
|
11
11
|
|
|
12
|
-
@Column({ name: 'uri', nullable: true, unique: false })
|
|
12
|
+
@Column('text', { name: 'uri', nullable: true, unique: false })
|
|
13
13
|
@Validate(IsNonEmptyStringConstraint, { message: 'Blank image uri are not allowed' })
|
|
14
14
|
uri?: string
|
|
15
15
|
|
|
16
|
-
@Column({ name: 'dataUri', nullable: true, unique: false })
|
|
16
|
+
@Column('text', { name: 'dataUri', nullable: true, unique: false })
|
|
17
17
|
@Validate(IsNonEmptyStringConstraint, { message: 'Blank image data uri are not allowed' })
|
|
18
18
|
dataUri?: string
|
|
19
19
|
|
|
20
|
-
@Column({ name: 'mediaType', length: 255, nullable: true, unique: false })
|
|
20
|
+
@Column('varchar', { name: 'mediaType', length: 255, nullable: true, unique: false })
|
|
21
21
|
@Validate(IsNonEmptyStringConstraint, { message: 'Blank image types are not allowed' })
|
|
22
22
|
mediaType?: string
|
|
23
23
|
|
|
24
|
-
@Column({ name: 'alt', length: 255, nullable: true, unique: false })
|
|
24
|
+
@Column('varchar', { name: 'alt', length: 255, nullable: true, unique: false })
|
|
25
25
|
@Validate(IsNonEmptyStringConstraint, { message: 'Blank image alts are not allowed' })
|
|
26
26
|
alt?: string
|
|
27
27
|
|
|
@@ -6,10 +6,10 @@ export class ImageDimensionsEntity extends BaseEntity {
|
|
|
6
6
|
@PrimaryGeneratedColumn('uuid')
|
|
7
7
|
id!: string
|
|
8
8
|
|
|
9
|
-
@Column({ name: 'width', nullable: false, unique: false })
|
|
9
|
+
@Column('integer', { name: 'width', nullable: false, unique: false })
|
|
10
10
|
width!: number
|
|
11
11
|
|
|
12
|
-
@Column({ name: 'height', nullable: false, unique: false })
|
|
12
|
+
@Column('integer', { name: 'height', nullable: false, unique: false })
|
|
13
13
|
height!: number
|
|
14
14
|
}
|
|
15
15
|
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
UpdateDateColumn,
|
|
12
12
|
} from 'typeorm'
|
|
13
13
|
import { ArrayMinSize, IsNotEmpty, validate, ValidationError } from 'class-validator'
|
|
14
|
+
import {TYPEORM_DATE_TIME_TYPE} from "@sphereon/ssi-sdk.agent-config";
|
|
14
15
|
import { IssuerLocaleBrandingEntity, issuerLocaleBrandingEntityFrom } from './IssuerLocaleBrandingEntity'
|
|
15
16
|
import { IBasicIssuerBranding, IBasicIssuerLocaleBranding } from '../../types'
|
|
16
17
|
|
|
@@ -20,7 +21,7 @@ export class IssuerBrandingEntity extends BaseEntity {
|
|
|
20
21
|
@PrimaryGeneratedColumn('uuid')
|
|
21
22
|
id!: string
|
|
22
23
|
|
|
23
|
-
@Column({ name: 'issuerCorrelationId', length: 255, nullable: false, unique: true })
|
|
24
|
+
@Column('varchar', { name: 'issuerCorrelationId', length: 255, nullable: false, unique: true })
|
|
24
25
|
@IsNotEmpty({ message: 'Blank issuerCorrelationIds are not allowed' })
|
|
25
26
|
issuerCorrelationId!: string
|
|
26
27
|
|
|
@@ -37,10 +38,10 @@ export class IssuerBrandingEntity extends BaseEntity {
|
|
|
37
38
|
@ArrayMinSize(1, { message: 'localeBranding cannot be empty' })
|
|
38
39
|
localeBranding!: Array<IssuerLocaleBrandingEntity>
|
|
39
40
|
|
|
40
|
-
@CreateDateColumn({ name: 'created_at', nullable: false })
|
|
41
|
+
@CreateDateColumn({ name: 'created_at', nullable: false, type: TYPEORM_DATE_TIME_TYPE })
|
|
41
42
|
createdAt!: Date
|
|
42
43
|
|
|
43
|
-
@UpdateDateColumn({ name: 'last_updated_at', nullable: false })
|
|
44
|
+
@UpdateDateColumn({ name: 'last_updated_at', nullable: false, type: TYPEORM_DATE_TIME_TYPE })
|
|
44
45
|
lastUpdatedAt!: Date
|
|
45
46
|
|
|
46
47
|
// By default, @UpdateDateColumn in TypeORM updates the timestamp only when the entity's top-level properties change.
|
|
@@ -16,7 +16,7 @@ export class IssuerLocaleBrandingEntity extends BaseLocaleBrandingEntity {
|
|
|
16
16
|
@JoinColumn({ name: 'issuerBrandingId' })
|
|
17
17
|
issuerBranding!: IssuerBrandingEntity
|
|
18
18
|
|
|
19
|
-
@Column({ name: 'issuerBrandingId', nullable: false })
|
|
19
|
+
@Column('text', { name: 'issuerBrandingId', nullable: false })
|
|
20
20
|
issuerBrandingId!: string
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -8,7 +8,7 @@ export class TextAttributesEntity extends BaseEntity {
|
|
|
8
8
|
@PrimaryGeneratedColumn('uuid')
|
|
9
9
|
id!: string
|
|
10
10
|
|
|
11
|
-
@Column({ name: 'color', length: 255, nullable: true, unique: false })
|
|
11
|
+
@Column('varchar', { name: 'color', length: 255, nullable: true, unique: false })
|
|
12
12
|
@Validate(IsNonEmptyStringConstraint, { message: 'Blank text colors are not allowed' })
|
|
13
13
|
color?: string
|
|
14
14
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BaseEntity, Column, CreateDateColumn, Entity, PrimaryColumn, UpdateDateColumn } from 'typeorm'
|
|
2
|
+
import {TYPEORM_DATE_TIME_TYPE} from "@sphereon/ssi-sdk.agent-config";
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* @class MachineStateInfoEntity
|
|
@@ -38,19 +39,19 @@ export class MachineStateInfoEntity extends BaseEntity {
|
|
|
38
39
|
@Column({ name: 'state', type: 'text', nullable: false })
|
|
39
40
|
state!: string
|
|
40
41
|
|
|
41
|
-
@CreateDateColumn({ name: 'created_at',
|
|
42
|
+
@CreateDateColumn({ name: 'created_at', nullable: false, type: TYPEORM_DATE_TIME_TYPE })
|
|
42
43
|
createdAt!: Date
|
|
43
44
|
|
|
44
|
-
@UpdateDateColumn({ name: 'updated_at',
|
|
45
|
+
@UpdateDateColumn({ name: 'updated_at', nullable: false, type: TYPEORM_DATE_TIME_TYPE })
|
|
45
46
|
updatedAt!: Date
|
|
46
47
|
|
|
47
48
|
@Column({ name: 'updated_count', type: 'integer', nullable: false })
|
|
48
49
|
updatedCount!: number
|
|
49
50
|
|
|
50
|
-
@Column({ name: 'expires_at',
|
|
51
|
+
@Column({ name: 'expires_at', nullable: true , type: TYPEORM_DATE_TIME_TYPE})
|
|
51
52
|
expiresAt?: Date
|
|
52
53
|
|
|
53
|
-
@Column({ name: 'completed_at',
|
|
54
|
+
@Column({ name: 'completed_at', nullable: true, type: TYPEORM_DATE_TIME_TYPE })
|
|
54
55
|
completedAt?: Date
|
|
55
56
|
|
|
56
57
|
@Column({ name: 'tenant_id', type: 'varchar', nullable: true })
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BaseEntity, BeforeInsert, BeforeUpdate, Column, CreateDateColumn, Entity, Index, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm'
|
|
2
2
|
import { IsNotEmpty } from 'class-validator'
|
|
3
|
+
import {TYPEORM_DATE_TIME_TYPE} from "@sphereon/ssi-sdk.agent-config";
|
|
3
4
|
|
|
4
5
|
@Entity('PresentationDefinitionItem')
|
|
5
6
|
@Index(['version'], { unique: false })
|
|
@@ -7,31 +8,31 @@ export class PresentationDefinitionItemEntity extends BaseEntity {
|
|
|
7
8
|
@PrimaryGeneratedColumn('uuid')
|
|
8
9
|
id!: string
|
|
9
10
|
|
|
10
|
-
@Column({ name: 'definition_id', length: 255, nullable: false, unique: false })
|
|
11
|
+
@Column({ name: 'definition_id', length: 255, type: 'varchar', nullable: false, unique: false })
|
|
11
12
|
@IsNotEmpty({ message: 'A blank definition id field is not allowed' })
|
|
12
13
|
definitionId!: string
|
|
13
14
|
|
|
14
|
-
@Column({ name: 'version', length: 255, nullable: false, unique: false })
|
|
15
|
+
@Column({ name: 'version', length: 255, type: 'varchar', nullable: false, unique: false })
|
|
15
16
|
@IsNotEmpty({ message: 'A blank version field is not allowed' })
|
|
16
17
|
version!: string
|
|
17
18
|
|
|
18
|
-
@Column({ name: 'tenant_id', length: 255, nullable: true, unique: false })
|
|
19
|
+
@Column({ name: 'tenant_id', length: 255, type: 'varchar', nullable: true, unique: false })
|
|
19
20
|
tenantId?: string
|
|
20
21
|
|
|
21
|
-
@Column({ name: 'purpose', length: 255, nullable: true, unique: false })
|
|
22
|
+
@Column({ name: 'purpose', length: 255, type: 'varchar', nullable: true, unique: false })
|
|
22
23
|
purpose?: string
|
|
23
24
|
|
|
24
|
-
@Column({ name: 'name', length: 255, nullable: true, unique: false })
|
|
25
|
+
@Column({ name: 'name', length: 255, type: 'varchar', nullable: true, unique: false })
|
|
25
26
|
name?: string
|
|
26
27
|
|
|
27
28
|
@Column({ name: 'definition_payload', type: 'text', nullable: false, unique: false })
|
|
28
29
|
@IsNotEmpty({ message: 'A blank definition payload field is not allowed' })
|
|
29
30
|
definitionPayload!: string
|
|
30
31
|
|
|
31
|
-
@CreateDateColumn({ name: 'created_at', nullable: false })
|
|
32
|
+
@CreateDateColumn({ name: 'created_at', nullable: false, type: TYPEORM_DATE_TIME_TYPE })
|
|
32
33
|
createdAt!: Date
|
|
33
34
|
|
|
34
|
-
@UpdateDateColumn({ name: 'last_updated_at', nullable: false })
|
|
35
|
+
@UpdateDateColumn({ name: 'last_updated_at', nullable: false, type: TYPEORM_DATE_TIME_TYPE })
|
|
35
36
|
lastUpdatedAt!: Date
|
|
36
37
|
|
|
37
38
|
// By default, @UpdateDateColumn in TypeORM updates the timestamp only when the entity's top-level properties change.
|
|
@@ -21,7 +21,7 @@ export class StatusListEntity extends BaseEntity {
|
|
|
21
21
|
@Column({ name: 'correlationId', type: 'varchar', nullable: false })
|
|
22
22
|
correlationId!: string
|
|
23
23
|
|
|
24
|
-
@Column({ name: 'length', nullable: false, unique: false })
|
|
24
|
+
@Column({ name: 'length', type: 'integer', nullable: false, unique: false })
|
|
25
25
|
length!: number
|
|
26
26
|
|
|
27
27
|
@Column({
|
|
@@ -11,19 +11,19 @@ export class StatusListEntryEntity extends BaseEntity {
|
|
|
11
11
|
@ManyToOne(() => StatusListEntity, (statusList) => statusList.statusListEntries)
|
|
12
12
|
statusList!: StatusListEntity
|
|
13
13
|
|
|
14
|
-
@PrimaryColumn({ name: 'statusListIndex', nullable: false, unique: false })
|
|
14
|
+
@PrimaryColumn({ name: 'statusListIndex', type: 'integer', nullable: false, unique: false })
|
|
15
15
|
@Validate(IsNonEmptyStringConstraint, { message: 'Status list index is required' })
|
|
16
16
|
statusListIndex!: number
|
|
17
17
|
|
|
18
|
-
@Column({ name: 'credentialId', nullable: true })
|
|
18
|
+
@Column({ name: 'credentialId', type: 'text', nullable: true })
|
|
19
19
|
credentialId?: string
|
|
20
20
|
|
|
21
|
-
@Column({ name: 'credentialHash', length: 128, nullable: true, unique: false })
|
|
21
|
+
@Column({ name: 'credentialHash', length: 128, type: 'varchar', nullable: true, unique: false })
|
|
22
22
|
credentialHash?: string
|
|
23
23
|
|
|
24
|
-
@Column({ name: 'correlationId', length: 255, nullable: true, unique: false })
|
|
24
|
+
@Column({ name: 'correlationId', length: 255, type: 'varchar', nullable: true, unique: false })
|
|
25
25
|
correlationId?: string
|
|
26
26
|
|
|
27
|
-
@Column({ name: 'value', length: 50, nullable: true, unique: false })
|
|
27
|
+
@Column({ name: 'value', length: 50, type: 'varchar', nullable: true, unique: false })
|
|
28
28
|
value?: string
|
|
29
29
|
}
|
package/src/index.ts
CHANGED
|
@@ -28,6 +28,8 @@ import { ElectronicAddressEntity } from './entities/contact/ElectronicAddressEnt
|
|
|
28
28
|
import { PhysicalAddressEntity } from './entities/contact/PhysicalAddressEntity'
|
|
29
29
|
export { ContactStore } from './contact/ContactStore'
|
|
30
30
|
export { AbstractContactStore } from './contact/AbstractContactStore'
|
|
31
|
+
export { AbstractDigitalCredentialStore } from './digitalCredential/AbstractDigitalCredentialStore'
|
|
32
|
+
export { DigitalCredentialStore } from './digitalCredential/DigitalCredentialStore'
|
|
31
33
|
export { AbstractIssuanceBrandingStore } from './issuanceBranding/AbstractIssuanceBrandingStore'
|
|
32
34
|
export { IssuanceBrandingStore } from './issuanceBranding/IssuanceBrandingStore'
|
|
33
35
|
export { StatusListStore } from './statusList/StatusListStore'
|
|
@@ -48,6 +50,7 @@ export {
|
|
|
48
50
|
DataStoreMigrations,
|
|
49
51
|
DataStoreEventLoggerMigrations,
|
|
50
52
|
DataStoreContactMigrations,
|
|
53
|
+
DataStoreDigitalCredentialMigrations,
|
|
51
54
|
DataStoreIssuanceBrandingMigrations,
|
|
52
55
|
DataStoreStatusListMigrations,
|
|
53
56
|
DataStoreMachineStateMigrations,
|
|
@@ -55,6 +58,7 @@ export {
|
|
|
55
58
|
} from './migrations'
|
|
56
59
|
export * from './types'
|
|
57
60
|
export * from './utils/contact/MappingUtils'
|
|
61
|
+
export * from './utils/digitalCredential/MappingUtils'
|
|
58
62
|
|
|
59
63
|
export const DataStoreContactEntities = [
|
|
60
64
|
BaseConfigEntity,
|
|
@@ -6,6 +6,7 @@ export class CreateDigitalCredential1708525189001 implements MigrationInterface
|
|
|
6
6
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
7
7
|
await queryRunner.query(`CREATE TYPE "digital_document_type" AS ENUM('VC', 'VP', 'C', 'P')`)
|
|
8
8
|
await queryRunner.query(`CREATE TYPE "digital_credential_document_format" AS ENUM('JSON_LD', 'JWT', 'SD_JWT', 'MDOC')`)
|
|
9
|
+
await queryRunner.query(`CREATE TYPE "digital_credential_credential_role" AS ENUM('ISSUER', 'VERIFIER', 'HOLDER')`)
|
|
9
10
|
await queryRunner.query(`CREATE TYPE "digital_credential_correlation_type" AS ENUM('DID')`)
|
|
10
11
|
await queryRunner.query(`CREATE TYPE "digital_credential_state_type" AS ENUM('REVOKED', 'VERIFIED', 'EXPIRED')`)
|
|
11
12
|
|
|
@@ -14,8 +15,10 @@ export class CreateDigitalCredential1708525189001 implements MigrationInterface
|
|
|
14
15
|
"id" uuid NOT NULL DEFAULT uuid_generate_v4(),
|
|
15
16
|
"document_type" "digital_document_type" NOT NULL,
|
|
16
17
|
"document_format" "digital_credential_document_format" NOT NULL,
|
|
18
|
+
"credential_role" "digital_credential_credential_role" NOT NULL,
|
|
17
19
|
"raw_document" text NOT NULL,
|
|
18
20
|
"uniform_document" text NOT NULL,
|
|
21
|
+
"credential_id" text,
|
|
19
22
|
"hash" text NOT NULL UNIQUE,
|
|
20
23
|
"issuer_correlation_type" "digital_credential_correlation_type" NOT NULL,
|
|
21
24
|
"subject_correlation_type" "digital_credential_correlation_type",
|
|
@@ -39,6 +42,7 @@ export class CreateDigitalCredential1708525189001 implements MigrationInterface
|
|
|
39
42
|
await queryRunner.query(`DROP TYPE "digital_credential_state_type"`)
|
|
40
43
|
await queryRunner.query(`DROP TYPE "digital_credential_correlation_type"`)
|
|
41
44
|
await queryRunner.query(`DROP TYPE "digital_credential_document_format"`)
|
|
45
|
+
await queryRunner.query(`DROP TYPE "digital_credential_credential_role"`)
|
|
42
46
|
await queryRunner.query(`DROP TYPE "digital_document_type"`)
|
|
43
47
|
}
|
|
44
48
|
}
|
|
@@ -9,8 +9,10 @@ export class CreateDigitalCredential1708525189002 implements MigrationInterface
|
|
|
9
9
|
"id" varchar PRIMARY KEY NOT NULL,
|
|
10
10
|
"document_type" varchar CHECK( "document_type" IN ('VC', 'VP', 'C', 'P') ) NOT NULL,
|
|
11
11
|
"document_format" varchar CHECK( "document_format" IN ('JSON_LD', 'JWT', 'SD_JWT', 'MDOC') ) NOT NULL,
|
|
12
|
+
"credential_role" varchar CHECK( "credential_role" IN ('ISSUER', 'VERIFIER', 'HOLDER') ) NOT NULL,
|
|
12
13
|
"raw_document" text NOT NULL,
|
|
13
14
|
"uniform_document" text NOT NULL,
|
|
15
|
+
"credential_id" text,
|
|
14
16
|
"hash" text NOT NULL UNIQUE,
|
|
15
17
|
"issuer_correlation_type" varchar CHECK( "issuer_correlation_type" IN ('DID') ) NOT NULL,
|
|
16
18
|
"subject_correlation_type" varchar CHECK( "subject_correlation_type" IN ('DID') ),
|
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
import { IIdentifierOpts } from '@sphereon/ssi-sdk-ext.did-utils'
|
|
2
2
|
import { IIdentifier } from '@veramo/core'
|
|
3
3
|
import { ILocaleBranding } from '../issuanceBranding/issuanceBranding'
|
|
4
|
+
import { CredentialRole } from '../digitalCredential/digitalCredential'
|
|
4
5
|
|
|
5
6
|
export type MetadataTypes = string | number | Date | boolean | undefined
|
|
6
7
|
|
|
8
|
+
export interface IMetadataEntity {
|
|
9
|
+
// TODO move to types
|
|
10
|
+
label: string
|
|
11
|
+
stringValue?: string
|
|
12
|
+
numberValue?: number
|
|
13
|
+
dateValue?: Date
|
|
14
|
+
boolValue?: boolean
|
|
15
|
+
}
|
|
16
|
+
|
|
7
17
|
export type Party = {
|
|
8
18
|
id: string
|
|
9
19
|
uri?: string
|
|
@@ -258,12 +268,6 @@ export type ElectronicAddressType = 'email' | 'phone'
|
|
|
258
268
|
|
|
259
269
|
export type PhysicalAddressType = 'home' | 'visit' | 'postal'
|
|
260
270
|
|
|
261
|
-
export enum CredentialRole {
|
|
262
|
-
ISSUER = 'issuer',
|
|
263
|
-
VERIFIER = 'verifier',
|
|
264
|
-
HOLDER = 'holder',
|
|
265
|
-
}
|
|
266
|
-
|
|
267
271
|
export enum ConnectionType {
|
|
268
272
|
OPENID_CONNECT = 'OIDC',
|
|
269
273
|
SIOPv2 = 'SIOPv2',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CredentialCorrelationType, CredentialStateType, DigitalCredential } from './digitalCredential'
|
|
1
|
+
import { CredentialCorrelationType, CredentialRole, CredentialStateType, DigitalCredential } from './digitalCredential'
|
|
2
2
|
import { Hasher } from '@sphereon/ssi-types'
|
|
3
3
|
import { FindOptionsOrder } from 'typeorm'
|
|
4
4
|
import { DigitalCredentialEntity } from '../../entities/digitalCredential/DigitalCredentialEntity'
|
|
@@ -25,6 +25,7 @@ export type AddCredentialArgs = {
|
|
|
25
25
|
subjectCorrelationType?: CredentialCorrelationType
|
|
26
26
|
issuerCorrelationId: string
|
|
27
27
|
subjectCorrelationId?: string
|
|
28
|
+
credentialRole: CredentialRole
|
|
28
29
|
tenantId?: string
|
|
29
30
|
state?: CredentialStateType
|
|
30
31
|
verifiedAt?: Date
|
|
@@ -4,8 +4,10 @@ export type DigitalCredential = {
|
|
|
4
4
|
id: string
|
|
5
5
|
documentType: DocumentType
|
|
6
6
|
documentFormat: CredentialDocumentFormat
|
|
7
|
+
credentialRole: CredentialRole
|
|
7
8
|
rawDocument: string
|
|
8
9
|
uniformDocument: string
|
|
10
|
+
credentialId?: string
|
|
9
11
|
hash: string
|
|
10
12
|
issuerCorrelationType: CredentialCorrelationType
|
|
11
13
|
subjectCorrelationType?: CredentialCorrelationType
|
|
@@ -39,6 +41,12 @@ export enum CredentialCorrelationType {
|
|
|
39
41
|
DID = 'DID',
|
|
40
42
|
}
|
|
41
43
|
|
|
44
|
+
export enum CredentialRole {
|
|
45
|
+
ISSUER = 'ISSUER',
|
|
46
|
+
VERIFIER = 'VERIFIER',
|
|
47
|
+
HOLDER = 'HOLDER',
|
|
48
|
+
}
|
|
49
|
+
|
|
42
50
|
export enum CredentialStateType {
|
|
43
51
|
REVOKED = 'REVOKED',
|
|
44
52
|
VERIFIED = 'VERIFIED',
|
package/src/types/index.ts
CHANGED
|
@@ -10,3 +10,5 @@ export * from './statusList/IAbstractStatusListStore'
|
|
|
10
10
|
export * from './eventLogger/IAbstractEventLoggerStore'
|
|
11
11
|
export * from './eventLogger/eventLogger'
|
|
12
12
|
export * from './machineState/IAbstractMachineStateStore'
|
|
13
|
+
export * from './digitalCredential/digitalCredential'
|
|
14
|
+
export * from './digitalCredential/IAbstractDigitalCredentialStore'
|
|
@@ -103,6 +103,7 @@ export const nonPersistedDigitalCredentialEntityFromAddArgs = (addCredentialArgs
|
|
|
103
103
|
documentType,
|
|
104
104
|
documentFormat: determineCredentialDocumentFormat(documentFormat),
|
|
105
105
|
createdAt: new Date(),
|
|
106
|
+
credentialId: uniformDocument.id as string | undefined, // uniformDocument.id is being inferred as JsonValue somehow
|
|
106
107
|
hash: computeEntryHash(addCredentialArgs.rawDocument),
|
|
107
108
|
uniformDocument: JSON.stringify(uniformDocument),
|
|
108
109
|
validFrom,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IMetadataEntity.d.ts","sourceRoot":"","sources":["../../../src/entities/contact/IMetadataEntity.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IAEvB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IMetadataEntity.js","sourceRoot":"","sources":["../../../src/entities/contact/IMetadataEntity.ts"],"names":[],"mappings":""}
|