@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,92 +1,92 @@
1
- import { ActionSubType, ActionType, InitiatorType, LogLevel, SubSystem, System, SystemCorrelationIdType } from '@sphereon/ssi-types'
2
- import { BaseEntity, Column, CreateDateColumn, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm'
3
- import { PartyCorrelationType } from '@sphereon/ssi-sdk.core'
4
- import { NonPersistedAuditLoggingEvent } from '../../types'
5
- import { typeOrmDateTime } from '@sphereon/ssi-sdk.agent-config'
6
-
7
- @Entity('AuditEvents')
8
- export class AuditEventEntity extends BaseEntity {
9
- @PrimaryGeneratedColumn('uuid')
10
- id!: string
11
-
12
- @Column({ name: 'timestamp', nullable: false, unique: false, type: typeOrmDateTime() })
13
- timestamp!: Date
14
-
15
- @Column('simple-enum', { name: 'level', enum: LogLevel, nullable: false, unique: false })
16
- level!: LogLevel
17
-
18
- @Column('text', { name: 'correlationId', nullable: false, unique: false })
19
- correlationId!: string
20
-
21
- @Column('simple-enum', { name: 'system', enum: System, nullable: false, unique: false })
22
- system!: System
23
-
24
- @Column('simple-enum', { name: 'subSystemType', enum: SubSystem, nullable: false, unique: false })
25
- subSystemType!: SubSystem
26
-
27
- @Column('simple-enum', { name: 'actionType', enum: ActionType, nullable: false, unique: false })
28
- actionType!: ActionType
29
-
30
- @Column({ name: 'actionSubType', type: 'varchar', nullable: false, unique: false })
31
- actionSubType!: ActionSubType
32
-
33
- @Column('simple-enum', { name: 'initiatorType', enum: InitiatorType, nullable: false, unique: false })
34
- initiatorType!: InitiatorType
35
-
36
- @Column('simple-enum', { name: 'systemCorrelationIdType', enum: SystemCorrelationIdType, nullable: true, unique: false })
37
- systemCorrelationIdType?: SystemCorrelationIdType
38
-
39
- @Column('text', { name: 'systemCorrelationId', nullable: true, unique: false })
40
- systemCorrelationId?: string
41
-
42
- @Column('text', { name: 'systemAlias', nullable: true, unique: false })
43
- systemAlias?: string
44
-
45
- @Column('simple-enum', { name: 'partyCorrelationType', enum: PartyCorrelationType, nullable: true, unique: false })
46
- partyCorrelationType?: PartyCorrelationType
47
-
48
- @Column('text', { name: 'partyCorrelationId', nullable: true, unique: false })
49
- partyCorrelationId?: string
50
-
51
- @Column('text', { name: 'partyAlias', nullable: true, unique: false })
52
- partyAlias?: string
53
-
54
- @Column('text', { name: 'description', nullable: false, unique: false })
55
- description!: string
56
-
57
- @Column('text', { name: 'data', nullable: true, unique: false })
58
- data?: string
59
-
60
- @Column('text', { name: 'diagnosticData', nullable: true, unique: false })
61
- diagnosticData?: string
62
-
63
- @CreateDateColumn({ name: 'created_at', nullable: false, type: typeOrmDateTime() })
64
- createdAt!: Date
65
-
66
- @UpdateDateColumn({ name: 'last_updated_at', nullable: false, type: typeOrmDateTime() })
67
- lastUpdatedAt!: Date
68
- }
69
-
70
- export const auditEventEntityFrom = (args: NonPersistedAuditLoggingEvent): AuditEventEntity => {
71
- const auditEventEntity: AuditEventEntity = new AuditEventEntity()
72
- auditEventEntity.timestamp = args.timestamp
73
- auditEventEntity.level = args.level
74
- auditEventEntity.correlationId = args.correlationId
75
- auditEventEntity.system = args.system
76
- auditEventEntity.subSystemType = args.subSystemType
77
- auditEventEntity.actionType = args.actionType
78
- auditEventEntity.actionSubType = args.actionSubType
79
- auditEventEntity.initiatorType = args.initiatorType
80
- auditEventEntity.systemCorrelationIdType = args.systemCorrelationIdType
81
- auditEventEntity.systemCorrelationId = args.systemCorrelationId
82
- auditEventEntity.systemAlias = args.systemAlias
83
- auditEventEntity.partyCorrelationType = args.partyCorrelationType
84
- auditEventEntity.partyCorrelationId = args.partyCorrelationId
85
- auditEventEntity.partyAlias = args.partyAlias
86
- auditEventEntity.description = args.description
87
- auditEventEntity.partyCorrelationType = args.partyCorrelationType
88
- auditEventEntity.data = JSON.stringify(args.data)
89
- auditEventEntity.diagnosticData = JSON.stringify(args.diagnosticData)
90
-
91
- return auditEventEntity
92
- }
1
+ import { ActionSubType, ActionType, InitiatorType, LogLevel, SubSystem, System, SystemCorrelationIdType } from '@sphereon/ssi-types'
2
+ import { BaseEntity, Column, CreateDateColumn, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm'
3
+ import { PartyCorrelationType } from '@sphereon/ssi-sdk.core'
4
+ import { NonPersistedAuditLoggingEvent } from '../../types'
5
+ import { typeOrmDateTime } from '@sphereon/ssi-sdk.agent-config'
6
+
7
+ @Entity('AuditEvents')
8
+ export class AuditEventEntity extends BaseEntity {
9
+ @PrimaryGeneratedColumn('uuid')
10
+ id!: string
11
+
12
+ @Column({ name: 'timestamp', nullable: false, unique: false, type: typeOrmDateTime() })
13
+ timestamp!: Date
14
+
15
+ @Column('simple-enum', { name: 'level', enum: LogLevel, nullable: false, unique: false })
16
+ level!: LogLevel
17
+
18
+ @Column('text', { name: 'correlationId', nullable: false, unique: false })
19
+ correlationId!: string
20
+
21
+ @Column('simple-enum', { name: 'system', enum: System, nullable: false, unique: false })
22
+ system!: System
23
+
24
+ @Column('simple-enum', { name: 'subSystemType', enum: SubSystem, nullable: false, unique: false })
25
+ subSystemType!: SubSystem
26
+
27
+ @Column('simple-enum', { name: 'actionType', enum: ActionType, nullable: false, unique: false })
28
+ actionType!: ActionType
29
+
30
+ @Column({ name: 'actionSubType', type: 'varchar', nullable: false, unique: false })
31
+ actionSubType!: ActionSubType
32
+
33
+ @Column('simple-enum', { name: 'initiatorType', enum: InitiatorType, nullable: false, unique: false })
34
+ initiatorType!: InitiatorType
35
+
36
+ @Column('simple-enum', { name: 'systemCorrelationIdType', enum: SystemCorrelationIdType, nullable: true, unique: false })
37
+ systemCorrelationIdType?: SystemCorrelationIdType
38
+
39
+ @Column('text', { name: 'systemCorrelationId', nullable: true, unique: false })
40
+ systemCorrelationId?: string
41
+
42
+ @Column('text', { name: 'systemAlias', nullable: true, unique: false })
43
+ systemAlias?: string
44
+
45
+ @Column('simple-enum', { name: 'partyCorrelationType', enum: PartyCorrelationType, nullable: true, unique: false })
46
+ partyCorrelationType?: PartyCorrelationType
47
+
48
+ @Column('text', { name: 'partyCorrelationId', nullable: true, unique: false })
49
+ partyCorrelationId?: string
50
+
51
+ @Column('text', { name: 'partyAlias', nullable: true, unique: false })
52
+ partyAlias?: string
53
+
54
+ @Column('text', { name: 'description', nullable: false, unique: false })
55
+ description!: string
56
+
57
+ @Column('text', { name: 'data', nullable: true, unique: false })
58
+ data?: string
59
+
60
+ @Column('text', { name: 'diagnosticData', nullable: true, unique: false })
61
+ diagnosticData?: string
62
+
63
+ @CreateDateColumn({ name: 'created_at', nullable: false, type: typeOrmDateTime() })
64
+ createdAt!: Date
65
+
66
+ @UpdateDateColumn({ name: 'last_updated_at', nullable: false, type: typeOrmDateTime() })
67
+ lastUpdatedAt!: Date
68
+ }
69
+
70
+ export const auditEventEntityFrom = (args: NonPersistedAuditLoggingEvent): AuditEventEntity => {
71
+ const auditEventEntity: AuditEventEntity = new AuditEventEntity()
72
+ auditEventEntity.timestamp = args.timestamp
73
+ auditEventEntity.level = args.level
74
+ auditEventEntity.correlationId = args.correlationId
75
+ auditEventEntity.system = args.system
76
+ auditEventEntity.subSystemType = args.subSystemType
77
+ auditEventEntity.actionType = args.actionType
78
+ auditEventEntity.actionSubType = args.actionSubType
79
+ auditEventEntity.initiatorType = args.initiatorType
80
+ auditEventEntity.systemCorrelationIdType = args.systemCorrelationIdType
81
+ auditEventEntity.systemCorrelationId = args.systemCorrelationId
82
+ auditEventEntity.systemAlias = args.systemAlias
83
+ auditEventEntity.partyCorrelationType = args.partyCorrelationType
84
+ auditEventEntity.partyCorrelationId = args.partyCorrelationId
85
+ auditEventEntity.partyAlias = args.partyAlias
86
+ auditEventEntity.description = args.description
87
+ auditEventEntity.partyCorrelationType = args.partyCorrelationType
88
+ auditEventEntity.data = JSON.stringify(args.data)
89
+ auditEventEntity.diagnosticData = JSON.stringify(args.diagnosticData)
90
+
91
+ return auditEventEntity
92
+ }
@@ -1,42 +1,42 @@
1
- import { BaseEntity, BeforeInsert, BeforeUpdate, Column, Entity, JoinColumn, OneToOne, PrimaryGeneratedColumn } from 'typeorm'
2
- import { IBasicBackgroundAttributes } from '../../types'
3
- import { ImageAttributesEntity, imageAttributesEntityFrom } from './ImageAttributesEntity'
4
- import { validate, Validate, ValidationError } from 'class-validator'
5
- import { isEmptyString, IsNonEmptyStringConstraint } from '../validators'
6
-
7
- @Entity('BackgroundAttributes')
8
- export class BackgroundAttributesEntity extends BaseEntity {
9
- @PrimaryGeneratedColumn('uuid')
10
- id!: string
11
-
12
- @Column('varchar', { name: 'color', length: 255, nullable: true, unique: false })
13
- @Validate(IsNonEmptyStringConstraint, { message: 'Blank background colors are not allowed' })
14
- color?: string
15
-
16
- @OneToOne(() => ImageAttributesEntity, {
17
- cascade: true,
18
- onDelete: 'CASCADE',
19
- eager: true,
20
- nullable: true,
21
- })
22
- @JoinColumn({ name: 'imageId' })
23
- image?: ImageAttributesEntity
24
-
25
- @BeforeInsert()
26
- @BeforeUpdate()
27
- async validate(): Promise<undefined> {
28
- const validation: Array<ValidationError> = await validate(this)
29
- if (validation.length > 0) {
30
- return Promise.reject(Error(Object.values(validation[0].constraints!)[0]))
31
- }
32
- return
33
- }
34
- }
35
-
36
- export const backgroundAttributesEntityFrom = (args: IBasicBackgroundAttributes): BackgroundAttributesEntity => {
37
- const backgroundAttributesEntity: BackgroundAttributesEntity = new BackgroundAttributesEntity()
38
- backgroundAttributesEntity.color = isEmptyString(args.color) ? undefined : args.color
39
- backgroundAttributesEntity.image = args.image ? imageAttributesEntityFrom(args.image) : undefined
40
-
41
- return backgroundAttributesEntity
42
- }
1
+ import { BaseEntity, BeforeInsert, BeforeUpdate, Column, Entity, JoinColumn, OneToOne, PrimaryGeneratedColumn } from 'typeorm'
2
+ import { IBasicBackgroundAttributes } from '../../types'
3
+ import { ImageAttributesEntity, imageAttributesEntityFrom } from './ImageAttributesEntity'
4
+ import { validate, Validate, ValidationError } from 'class-validator'
5
+ import { isEmptyString, IsNonEmptyStringConstraint } from '../validators'
6
+
7
+ @Entity('BackgroundAttributes')
8
+ export class BackgroundAttributesEntity extends BaseEntity {
9
+ @PrimaryGeneratedColumn('uuid')
10
+ id!: string
11
+
12
+ @Column('varchar', { name: 'color', length: 255, nullable: true, unique: false })
13
+ @Validate(IsNonEmptyStringConstraint, { message: 'Blank background colors are not allowed' })
14
+ color?: string
15
+
16
+ @OneToOne(() => ImageAttributesEntity, {
17
+ cascade: true,
18
+ onDelete: 'CASCADE',
19
+ eager: true,
20
+ nullable: true,
21
+ })
22
+ @JoinColumn({ name: 'imageId' })
23
+ image?: ImageAttributesEntity
24
+
25
+ @BeforeInsert()
26
+ @BeforeUpdate()
27
+ async validate(): Promise<undefined> {
28
+ const validation: Array<ValidationError> = await validate(this)
29
+ if (validation.length > 0) {
30
+ return Promise.reject(Error(Object.values(validation[0].constraints!)[0]))
31
+ }
32
+ return
33
+ }
34
+ }
35
+
36
+ export const backgroundAttributesEntityFrom = (args: IBasicBackgroundAttributes): BackgroundAttributesEntity => {
37
+ const backgroundAttributesEntity: BackgroundAttributesEntity = new BackgroundAttributesEntity()
38
+ backgroundAttributesEntity.color = isEmptyString(args.color) ? undefined : args.color
39
+ backgroundAttributesEntity.image = args.image ? imageAttributesEntityFrom(args.image) : undefined
40
+
41
+ return backgroundAttributesEntity
42
+ }
@@ -1,87 +1,87 @@
1
- import {
2
- BaseEntity,
3
- BeforeInsert,
4
- BeforeUpdate,
5
- Column,
6
- CreateDateColumn,
7
- Entity,
8
- JoinColumn,
9
- OneToOne,
10
- PrimaryGeneratedColumn,
11
- TableInheritance,
12
- UpdateDateColumn,
13
- } from 'typeorm'
14
- import { typeOrmDateTime } from '@sphereon/ssi-sdk.agent-config'
15
- import { ImageAttributesEntity } from './ImageAttributesEntity'
16
- import { BackgroundAttributesEntity } from './BackgroundAttributesEntity'
17
- import { TextAttributesEntity } from './TextAttributesEntity'
18
- import { validate, Validate, ValidationError } from 'class-validator'
19
- import { IsNonEmptyStringConstraint } from '../validators'
20
-
21
- @Entity('BaseLocaleBranding')
22
- @TableInheritance({ column: { type: 'varchar', name: 'type' } })
23
- export class BaseLocaleBrandingEntity extends BaseEntity {
24
- @PrimaryGeneratedColumn('uuid')
25
- id!: string
26
-
27
- @Column('varchar', { name: 'alias', length: 255, nullable: true, unique: false })
28
- @Validate(IsNonEmptyStringConstraint, { message: 'Blank aliases are not allowed' })
29
- alias?: string
30
-
31
- @Column('varchar', { name: 'locale', length: 255, nullable: false, unique: false })
32
- locale?: string
33
-
34
- @OneToOne(() => ImageAttributesEntity, {
35
- cascade: true,
36
- onDelete: 'CASCADE',
37
- eager: true,
38
- nullable: true,
39
- })
40
- @JoinColumn({ name: 'logoId' })
41
- logo?: ImageAttributesEntity
42
-
43
- @Column('varchar', { name: 'description', length: 255, nullable: true, unique: false })
44
- @Validate(IsNonEmptyStringConstraint, { message: 'Blank descriptions are not allowed' })
45
- description?: string
46
-
47
- @OneToOne(() => BackgroundAttributesEntity, {
48
- cascade: true,
49
- onDelete: 'CASCADE',
50
- eager: true,
51
- nullable: true,
52
- })
53
- @JoinColumn({ name: 'backgroundId' })
54
- background?: BackgroundAttributesEntity
55
-
56
- @OneToOne(() => TextAttributesEntity, {
57
- cascade: true,
58
- onDelete: 'CASCADE',
59
- eager: true,
60
- nullable: true,
61
- })
62
- @JoinColumn({ name: 'textId' })
63
- text?: TextAttributesEntity
64
-
65
- @CreateDateColumn({ name: 'created_at', nullable: false, type: typeOrmDateTime() })
66
- createdAt!: Date
67
-
68
- @UpdateDateColumn({ name: 'last_updated_at', nullable: false, type: typeOrmDateTime() })
69
- lastUpdatedAt!: Date
70
-
71
- // By default, @UpdateDateColumn in TypeORM updates the timestamp only when the entity's top-level properties change.
72
- @BeforeInsert()
73
- @BeforeUpdate()
74
- updateUpdatedDate(): void {
75
- this.lastUpdatedAt = new Date()
76
- }
77
-
78
- @BeforeInsert()
79
- @BeforeUpdate()
80
- async validate(): Promise<undefined> {
81
- const validation: Array<ValidationError> = await validate(this)
82
- if (validation.length > 0) {
83
- return Promise.reject(Error(Object.values(validation[0].constraints!)[0]))
84
- }
85
- return
86
- }
87
- }
1
+ import {
2
+ BaseEntity,
3
+ BeforeInsert,
4
+ BeforeUpdate,
5
+ Column,
6
+ CreateDateColumn,
7
+ Entity,
8
+ JoinColumn,
9
+ OneToOne,
10
+ PrimaryGeneratedColumn,
11
+ TableInheritance,
12
+ UpdateDateColumn,
13
+ } from 'typeorm'
14
+ import { typeOrmDateTime } from '@sphereon/ssi-sdk.agent-config'
15
+ import { ImageAttributesEntity } from './ImageAttributesEntity'
16
+ import { BackgroundAttributesEntity } from './BackgroundAttributesEntity'
17
+ import { TextAttributesEntity } from './TextAttributesEntity'
18
+ import { validate, Validate, ValidationError } from 'class-validator'
19
+ import { IsNonEmptyStringConstraint } from '../validators'
20
+
21
+ @Entity('BaseLocaleBranding')
22
+ @TableInheritance({ column: { type: 'varchar', name: 'type' } })
23
+ export class BaseLocaleBrandingEntity extends BaseEntity {
24
+ @PrimaryGeneratedColumn('uuid')
25
+ id!: string
26
+
27
+ @Column('varchar', { name: 'alias', length: 255, nullable: true, unique: false })
28
+ @Validate(IsNonEmptyStringConstraint, { message: 'Blank aliases are not allowed' })
29
+ alias?: string
30
+
31
+ @Column('varchar', { name: 'locale', length: 255, nullable: false, unique: false })
32
+ locale?: string
33
+
34
+ @OneToOne(() => ImageAttributesEntity, {
35
+ cascade: true,
36
+ onDelete: 'CASCADE',
37
+ eager: true,
38
+ nullable: true,
39
+ })
40
+ @JoinColumn({ name: 'logoId' })
41
+ logo?: ImageAttributesEntity
42
+
43
+ @Column('varchar', { name: 'description', length: 255, nullable: true, unique: false })
44
+ @Validate(IsNonEmptyStringConstraint, { message: 'Blank descriptions are not allowed' })
45
+ description?: string
46
+
47
+ @OneToOne(() => BackgroundAttributesEntity, {
48
+ cascade: true,
49
+ onDelete: 'CASCADE',
50
+ eager: true,
51
+ nullable: true,
52
+ })
53
+ @JoinColumn({ name: 'backgroundId' })
54
+ background?: BackgroundAttributesEntity
55
+
56
+ @OneToOne(() => TextAttributesEntity, {
57
+ cascade: true,
58
+ onDelete: 'CASCADE',
59
+ eager: true,
60
+ nullable: true,
61
+ })
62
+ @JoinColumn({ name: 'textId' })
63
+ text?: TextAttributesEntity
64
+
65
+ @CreateDateColumn({ name: 'created_at', nullable: false, type: typeOrmDateTime() })
66
+ createdAt!: Date
67
+
68
+ @UpdateDateColumn({ name: 'last_updated_at', nullable: false, type: typeOrmDateTime() })
69
+ lastUpdatedAt!: Date
70
+
71
+ // By default, @UpdateDateColumn in TypeORM updates the timestamp only when the entity's top-level properties change.
72
+ @BeforeInsert()
73
+ @BeforeUpdate()
74
+ updateUpdatedDate(): void {
75
+ this.lastUpdatedAt = new Date()
76
+ }
77
+
78
+ @BeforeInsert()
79
+ @BeforeUpdate()
80
+ async validate(): Promise<undefined> {
81
+ const validation: Array<ValidationError> = await validate(this)
82
+ if (validation.length > 0) {
83
+ return Promise.reject(Error(Object.values(validation[0].constraints!)[0]))
84
+ }
85
+ return
86
+ }
87
+ }
@@ -1,79 +1,79 @@
1
- import {
2
- BaseEntity,
3
- BeforeInsert,
4
- BeforeUpdate,
5
- Column,
6
- CreateDateColumn,
7
- Entity,
8
- Index,
9
- OneToMany,
10
- PrimaryGeneratedColumn,
11
- UpdateDateColumn,
12
- } from 'typeorm'
13
- import { ArrayMinSize, IsNotEmpty, validate, ValidationError } from 'class-validator'
14
- import { typeOrmDateTime } from '@sphereon/ssi-sdk.agent-config'
15
- import { CredentialLocaleBrandingEntity, credentialLocaleBrandingEntityFrom } from './CredentialLocaleBrandingEntity'
16
- import { IBasicCredentialBranding, IBasicCredentialLocaleBranding } from '../../types'
17
-
18
- @Entity('CredentialBranding')
19
- @Index('IDX_CredentialBrandingEntity_vcHash', ['vcHash'])
20
- @Index('IDX_CredentialBrandingEntity_issuerCorrelationId', ['issuerCorrelationId'])
21
- export class CredentialBrandingEntity extends BaseEntity {
22
- @PrimaryGeneratedColumn('uuid')
23
- id!: string
24
-
25
- @Column('varchar', { name: 'vcHash', length: 255, nullable: false, unique: true })
26
- @IsNotEmpty({ message: 'Blank vcHashes are not allowed' })
27
- vcHash!: string
28
-
29
- @Column('varchar', { name: 'issuerCorrelationId', length: 255, nullable: false, unique: false })
30
- @IsNotEmpty({ message: 'Blank issuerCorrelationIds are not allowed' })
31
- issuerCorrelationId!: string
32
-
33
- @OneToMany(
34
- () => CredentialLocaleBrandingEntity,
35
- (credentialLocaleBrandingEntity: CredentialLocaleBrandingEntity) => credentialLocaleBrandingEntity.credentialBranding,
36
- {
37
- cascade: true,
38
- onDelete: 'CASCADE',
39
- eager: true,
40
- nullable: false,
41
- },
42
- )
43
- @ArrayMinSize(1, { message: 'localeBranding cannot be empty' })
44
- localeBranding!: Array<CredentialLocaleBrandingEntity>
45
-
46
- @CreateDateColumn({ name: 'created_at', nullable: false, type: typeOrmDateTime() })
47
- createdAt!: Date
48
-
49
- @UpdateDateColumn({ name: 'last_updated_at', nullable: false, type: typeOrmDateTime() })
50
- lastUpdatedAt!: Date
51
-
52
- // By default, @UpdateDateColumn in TypeORM updates the timestamp only when the entity's top-level properties change.
53
- @BeforeInsert()
54
- @BeforeUpdate()
55
- updateUpdatedDate(): void {
56
- this.lastUpdatedAt = new Date()
57
- }
58
-
59
- @BeforeInsert()
60
- @BeforeUpdate()
61
- async validate(): Promise<undefined> {
62
- const validation: Array<ValidationError> = await validate(this)
63
- if (validation.length > 0) {
64
- return Promise.reject(Error(Object.values(validation[0].constraints!)[0]))
65
- }
66
- return
67
- }
68
- }
69
-
70
- export const credentialBrandingEntityFrom = (args: IBasicCredentialBranding): CredentialBrandingEntity => {
71
- const credentialBrandingEntity: CredentialBrandingEntity = new CredentialBrandingEntity()
72
- credentialBrandingEntity.issuerCorrelationId = args.issuerCorrelationId
73
- credentialBrandingEntity.vcHash = args.vcHash
74
- credentialBrandingEntity.localeBranding = args.localeBranding.map((localeBranding: IBasicCredentialLocaleBranding) =>
75
- credentialLocaleBrandingEntityFrom(localeBranding),
76
- )
77
-
78
- return credentialBrandingEntity
79
- }
1
+ import {
2
+ BaseEntity,
3
+ BeforeInsert,
4
+ BeforeUpdate,
5
+ Column,
6
+ CreateDateColumn,
7
+ Entity,
8
+ Index,
9
+ OneToMany,
10
+ PrimaryGeneratedColumn,
11
+ UpdateDateColumn,
12
+ } from 'typeorm'
13
+ import { ArrayMinSize, IsNotEmpty, validate, ValidationError } from 'class-validator'
14
+ import { typeOrmDateTime } from '@sphereon/ssi-sdk.agent-config'
15
+ import { CredentialLocaleBrandingEntity, credentialLocaleBrandingEntityFrom } from './CredentialLocaleBrandingEntity'
16
+ import { IBasicCredentialBranding, IBasicCredentialLocaleBranding } from '../../types'
17
+
18
+ @Entity('CredentialBranding')
19
+ @Index('IDX_CredentialBrandingEntity_vcHash', ['vcHash'])
20
+ @Index('IDX_CredentialBrandingEntity_issuerCorrelationId', ['issuerCorrelationId'])
21
+ export class CredentialBrandingEntity extends BaseEntity {
22
+ @PrimaryGeneratedColumn('uuid')
23
+ id!: string
24
+
25
+ @Column('varchar', { name: 'vcHash', length: 255, nullable: false, unique: true })
26
+ @IsNotEmpty({ message: 'Blank vcHashes are not allowed' })
27
+ vcHash!: string
28
+
29
+ @Column('varchar', { name: 'issuerCorrelationId', length: 255, nullable: false, unique: false })
30
+ @IsNotEmpty({ message: 'Blank issuerCorrelationIds are not allowed' })
31
+ issuerCorrelationId!: string
32
+
33
+ @OneToMany(
34
+ () => CredentialLocaleBrandingEntity,
35
+ (credentialLocaleBrandingEntity: CredentialLocaleBrandingEntity) => credentialLocaleBrandingEntity.credentialBranding,
36
+ {
37
+ cascade: true,
38
+ onDelete: 'CASCADE',
39
+ eager: true,
40
+ nullable: false,
41
+ },
42
+ )
43
+ @ArrayMinSize(1, { message: 'localeBranding cannot be empty' })
44
+ localeBranding!: Array<CredentialLocaleBrandingEntity>
45
+
46
+ @CreateDateColumn({ name: 'created_at', nullable: false, type: typeOrmDateTime() })
47
+ createdAt!: Date
48
+
49
+ @UpdateDateColumn({ name: 'last_updated_at', nullable: false, type: typeOrmDateTime() })
50
+ lastUpdatedAt!: Date
51
+
52
+ // By default, @UpdateDateColumn in TypeORM updates the timestamp only when the entity's top-level properties change.
53
+ @BeforeInsert()
54
+ @BeforeUpdate()
55
+ updateUpdatedDate(): void {
56
+ this.lastUpdatedAt = new Date()
57
+ }
58
+
59
+ @BeforeInsert()
60
+ @BeforeUpdate()
61
+ async validate(): Promise<undefined> {
62
+ const validation: Array<ValidationError> = await validate(this)
63
+ if (validation.length > 0) {
64
+ return Promise.reject(Error(Object.values(validation[0].constraints!)[0]))
65
+ }
66
+ return
67
+ }
68
+ }
69
+
70
+ export const credentialBrandingEntityFrom = (args: IBasicCredentialBranding): CredentialBrandingEntity => {
71
+ const credentialBrandingEntity: CredentialBrandingEntity = new CredentialBrandingEntity()
72
+ credentialBrandingEntity.issuerCorrelationId = args.issuerCorrelationId
73
+ credentialBrandingEntity.vcHash = args.vcHash
74
+ credentialBrandingEntity.localeBranding = args.localeBranding.map((localeBranding: IBasicCredentialLocaleBranding) =>
75
+ credentialLocaleBrandingEntityFrom(localeBranding),
76
+ )
77
+
78
+ return credentialBrandingEntity
79
+ }