@sphereon/ssi-sdk.data-store 0.23.5-unstable.88 → 0.24.0

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 (146) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +77 -77
  3. package/dist/index.d.ts +3 -9
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +2 -15
  6. package/dist/index.js.map +1 -1
  7. package/dist/migrations/generic/index.d.ts +0 -2
  8. package/dist/migrations/generic/index.d.ts.map +1 -1
  9. package/dist/migrations/generic/index.js +1 -4
  10. package/dist/migrations/generic/index.js.map +1 -1
  11. package/dist/migrations/index.d.ts +1 -1
  12. package/dist/migrations/index.d.ts.map +1 -1
  13. package/dist/migrations/index.js +1 -2
  14. package/dist/migrations/index.js.map +1 -1
  15. package/dist/migrations/postgres/1690925872592-CreateContacts.js +1 -1
  16. package/dist/migrations/postgres/1690925872592-CreateContacts.js.map +1 -1
  17. package/dist/migrations/postgres/1708525189001-CreateDigitalCredential.js +22 -22
  18. package/dist/migrations/postgres/1708797018115-CreateMachineStateStore.js +16 -16
  19. package/dist/migrations/sqlite/1708525189002-CreateDigitalCredential.js +21 -21
  20. package/dist/migrations/sqlite/1708796002272-CreateMachineStateStore.js +15 -15
  21. package/dist/types/index.d.ts +0 -2
  22. package/dist/types/index.d.ts.map +1 -1
  23. package/dist/types/index.js +0 -2
  24. package/dist/types/index.js.map +1 -1
  25. package/package.json +4 -5
  26. package/src/__tests__/contact.entities.test.ts +2542 -2542
  27. package/src/__tests__/contact.store.test.ts +2471 -2471
  28. package/src/__tests__/digitalCredential.entities.test.ts +254 -254
  29. package/src/__tests__/digitalCredential.store.test.ts +294 -294
  30. package/src/__tests__/eventLogger.entities.test.ts +73 -73
  31. package/src/__tests__/eventLogger.store.test.ts +136 -136
  32. package/src/__tests__/issuanceBranding.entities.test.ts +844 -844
  33. package/src/__tests__/issuanceBranding.store.test.ts +1884 -1884
  34. package/src/__tests__/machineState.entities.test.ts +51 -51
  35. package/src/__tests__/machineState.store.test.ts +174 -174
  36. package/src/contact/AbstractContactStore.ts +71 -71
  37. package/src/contact/ContactStore.ts +723 -723
  38. package/src/digitalCredential/AbstractDigitalCredentialStore.ts +17 -17
  39. package/src/digitalCredential/DigitalCredentialStore.ts +127 -127
  40. package/src/entities/contact/BaseContactEntity.ts +39 -39
  41. package/src/entities/contact/ConnectionEntity.ts +29 -29
  42. package/src/entities/contact/CorrelationIdentifierEntity.ts +37 -37
  43. package/src/entities/contact/DidAuthConfigEntity.ts +14 -14
  44. package/src/entities/contact/ElectronicAddressEntity.ts +63 -63
  45. package/src/entities/contact/IdentityEntity.ts +97 -97
  46. package/src/entities/contact/IdentityMetadataItemEntity.ts +35 -35
  47. package/src/entities/contact/NaturalPersonEntity.ts +38 -38
  48. package/src/entities/contact/OpenIdConfigEntity.ts +26 -26
  49. package/src/entities/contact/OrganizationEntity.ts +34 -34
  50. package/src/entities/contact/PartyEntity.ts +110 -110
  51. package/src/entities/contact/PartyRelationshipEntity.ts +61 -61
  52. package/src/entities/contact/PartyTypeEntity.ts +62 -62
  53. package/src/entities/contact/PhysicalAddressEntity.ts +87 -87
  54. package/src/entities/digitalCredential/DigitalCredentialEntity.ts +64 -64
  55. package/src/entities/eventLogger/AuditEventEntity.ts +99 -99
  56. package/src/entities/issuanceBranding/CredentialBrandingEntity.ts +78 -78
  57. package/src/entities/issuanceBranding/ImageAttributesEntity.ts +57 -57
  58. package/src/entities/issuanceBranding/IssuerBrandingEntity.ts +72 -72
  59. package/src/entities/machineState/MachineStateInfoEntity.ts +58 -58
  60. package/src/entities/statusList2021/StatusList2021Entity.ts +96 -96
  61. package/src/eventLogger/AbstractEventLoggerStore.ts +7 -7
  62. package/src/eventLogger/EventLoggerStore.ts +62 -62
  63. package/src/index.ts +141 -154
  64. package/src/issuanceBranding/IssuanceBrandingStore.ts +559 -559
  65. package/src/machineState/IAbstractMachineStateStore.ts +65 -65
  66. package/src/machineState/MachineStateStore.ts +149 -149
  67. package/src/migrations/generic/1-CreateContacts.ts +66 -66
  68. package/src/migrations/generic/2-CreateIssuanceBranding.ts +64 -64
  69. package/src/migrations/generic/3-CreateContacts.ts +66 -66
  70. package/src/migrations/generic/4-CreateStatusList.ts +54 -54
  71. package/src/migrations/generic/5-CreateAuditEvents.ts +66 -66
  72. package/src/migrations/generic/6-CreateDigitalCredential.ts +66 -66
  73. package/src/migrations/generic/7-CreateMachineStateStore.ts +66 -66
  74. package/src/migrations/generic/index.ts +33 -36
  75. package/src/migrations/index.ts +9 -10
  76. package/src/migrations/postgres/1659463079428-CreateContacts.ts +63 -63
  77. package/src/migrations/postgres/1685628974232-CreateIssuanceBranding.ts +85 -85
  78. package/src/migrations/postgres/1690925872592-CreateContacts.ts +104 -104
  79. package/src/migrations/postgres/1693866470001-CreateStatusList.ts +24 -24
  80. package/src/migrations/postgres/1701634812183-CreateAuditEvents.ts +33 -33
  81. package/src/migrations/postgres/1708525189001-CreateDigitalCredential.ts +44 -44
  82. package/src/migrations/postgres/1708797018115-CreateMachineStateStore.ts +29 -29
  83. package/src/migrations/sqlite/1659463069549-CreateContacts.ts +110 -110
  84. package/src/migrations/sqlite/1685628973231-CreateIssuanceBranding.ts +119 -119
  85. package/src/migrations/sqlite/1690925872693-CreateContacts.ts +161 -161
  86. package/src/migrations/sqlite/1693866470000-CreateStatusList.ts +24 -24
  87. package/src/migrations/sqlite/1701634819487-CreateAuditEvents.ts +15 -15
  88. package/src/migrations/sqlite/1708525189002-CreateDigitalCredential.ts +34 -34
  89. package/src/migrations/sqlite/1708796002272-CreateMachineStateStore.ts +28 -28
  90. package/src/statusList/StatusListStore.ts +237 -237
  91. package/src/types/contact/IAbstractContactStore.ts +161 -161
  92. package/src/types/contact/contact.ts +237 -237
  93. package/src/types/digitalCredential/IAbstractDigitalCredentialStore.ts +37 -37
  94. package/src/types/digitalCredential/digitalCredential.ts +46 -46
  95. package/src/types/eventLogger/IAbstractEventLoggerStore.ts +12 -12
  96. package/src/types/eventLogger/eventLogger.ts +3 -3
  97. package/src/types/index.ts +10 -12
  98. package/src/types/machineState/IAbstractMachineStateStore.ts +68 -68
  99. package/src/utils/SortingUtils.ts +16 -16
  100. package/src/utils/contact/MappingUtils.ts +385 -385
  101. package/src/utils/digitalCredential/MappingUtils.ts +122 -122
  102. package/dist/entities/presentationDefinitions/PresentationDefinitionItemEntity.d.ts +0 -13
  103. package/dist/entities/presentationDefinitions/PresentationDefinitionItemEntity.d.ts.map +0 -1
  104. package/dist/entities/presentationDefinitions/PresentationDefinitionItemEntity.js +0 -71
  105. package/dist/entities/presentationDefinitions/PresentationDefinitionItemEntity.js.map +0 -1
  106. package/dist/migrations/generic/8-CreatePresentationDefinitions.d.ts +0 -7
  107. package/dist/migrations/generic/8-CreatePresentationDefinitions.d.ts.map +0 -1
  108. package/dist/migrations/generic/8-CreatePresentationDefinitions.js +0 -78
  109. package/dist/migrations/generic/8-CreatePresentationDefinitions.js.map +0 -1
  110. package/dist/migrations/postgres/1716475165345-CreatePresentationDefinitions.d.ts +0 -7
  111. package/dist/migrations/postgres/1716475165345-CreatePresentationDefinitions.d.ts.map +0 -1
  112. package/dist/migrations/postgres/1716475165345-CreatePresentationDefinitions.js +0 -40
  113. package/dist/migrations/postgres/1716475165345-CreatePresentationDefinitions.js.map +0 -1
  114. package/dist/migrations/sqlite/1716475165344-CreatePresentationDefinitions.d.ts +0 -7
  115. package/dist/migrations/sqlite/1716475165344-CreatePresentationDefinitions.d.ts.map +0 -1
  116. package/dist/migrations/sqlite/1716475165344-CreatePresentationDefinitions.js +0 -37
  117. package/dist/migrations/sqlite/1716475165344-CreatePresentationDefinitions.js.map +0 -1
  118. package/dist/pd/AbstractPDStore.d.ts +0 -10
  119. package/dist/pd/AbstractPDStore.d.ts.map +0 -1
  120. package/dist/pd/AbstractPDStore.js +0 -7
  121. package/dist/pd/AbstractPDStore.js.map +0 -1
  122. package/dist/pd/PDStore.d.ts +0 -14
  123. package/dist/pd/PDStore.d.ts.map +0 -1
  124. package/dist/pd/PDStore.js +0 -90
  125. package/dist/pd/PDStore.js.map +0 -1
  126. package/dist/types/pd/IAbstractPDStore.d.ts +0 -14
  127. package/dist/types/pd/IAbstractPDStore.d.ts.map +0 -1
  128. package/dist/types/pd/IAbstractPDStore.js +0 -3
  129. package/dist/types/pd/IAbstractPDStore.js.map +0 -1
  130. package/dist/types/pd/pd.d.ts +0 -15
  131. package/dist/types/pd/pd.d.ts.map +0 -1
  132. package/dist/types/pd/pd.js +0 -3
  133. package/dist/types/pd/pd.js.map +0 -1
  134. package/dist/utils/presentationDefinitions/MappingUtils.d.ts +0 -6
  135. package/dist/utils/presentationDefinitions/MappingUtils.d.ts.map +0 -1
  136. package/dist/utils/presentationDefinitions/MappingUtils.js +0 -50
  137. package/dist/utils/presentationDefinitions/MappingUtils.js.map +0 -1
  138. package/src/entities/presentationDefinitions/PresentationDefinitionItemEntity.ts +0 -41
  139. package/src/migrations/generic/8-CreatePresentationDefinitions.ts +0 -66
  140. package/src/migrations/postgres/1716475165345-CreatePresentationDefinitions.ts +0 -24
  141. package/src/migrations/sqlite/1716475165344-CreatePresentationDefinitions.ts +0 -23
  142. package/src/pd/AbstractPDStore.ts +0 -10
  143. package/src/pd/PDStore.ts +0 -103
  144. package/src/types/pd/IAbstractPDStore.ts +0 -19
  145. package/src/types/pd/pd.ts +0 -16
  146. package/src/utils/presentationDefinitions/MappingUtils.ts +0 -54
@@ -1,90 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.PDStore = void 0;
16
- const typeorm_1 = require("typeorm");
17
- const AbstractPDStore_1 = require("./AbstractPDStore");
18
- const debug_1 = __importDefault(require("debug"));
19
- const PresentationDefinitionItemEntity_1 = require("../entities/presentationDefinitions/PresentationDefinitionItemEntity");
20
- const MappingUtils_1 = require("../utils/presentationDefinitions/MappingUtils");
21
- const debug = (0, debug_1.default)('sphereon:ssi-sdk:pd-store');
22
- class PDStore extends AbstractPDStore_1.AbstractPdStore {
23
- constructor(dbConnection) {
24
- super();
25
- this.getDefinition = (args) => __awaiter(this, void 0, void 0, function* () {
26
- const { itemId } = args !== null && args !== void 0 ? args : {};
27
- const pdRepository = (yield this.dbConnection).getRepository(PresentationDefinitionItemEntity_1.PresentationDefinitionItemEntity);
28
- const result = yield pdRepository.findOne({
29
- where: { id: itemId },
30
- });
31
- if (!result) {
32
- return Promise.reject(Error(`No presentation definition item found for id: ${itemId}`));
33
- }
34
- return (0, MappingUtils_1.presentationDefinitionItemFrom)(result);
35
- });
36
- this.getDefinitions = (args) => __awaiter(this, void 0, void 0, function* () {
37
- const { filter } = args;
38
- const pdRepository = (yield this.dbConnection).getRepository(PresentationDefinitionItemEntity_1.PresentationDefinitionItemEntity);
39
- const initialResult = yield pdRepository.find(Object.assign({}, (filter && { where: filter })));
40
- const result = yield pdRepository.find({
41
- where: {
42
- id: (0, typeorm_1.In)(initialResult.map((entity) => entity.id)),
43
- },
44
- order: {
45
- version: 'DESC',
46
- },
47
- });
48
- return result.map((entity) => (0, MappingUtils_1.presentationDefinitionItemFrom)(entity));
49
- });
50
- this.addDefinition = (item) => __awaiter(this, void 0, void 0, function* () {
51
- const pdRepository = (yield this.dbConnection).getRepository(PresentationDefinitionItemEntity_1.PresentationDefinitionItemEntity);
52
- const entity = (0, MappingUtils_1.presentationDefinitionEntityItemFrom)(item);
53
- debug('Adding presentation definition item', item);
54
- const result = yield pdRepository.save(entity, {
55
- transaction: true,
56
- });
57
- return (0, MappingUtils_1.presentationDefinitionItemFrom)(result);
58
- });
59
- this.updateDefinition = (item) => __awaiter(this, void 0, void 0, function* () {
60
- const pdRepository = (yield this.dbConnection).getRepository(PresentationDefinitionItemEntity_1.PresentationDefinitionItemEntity);
61
- const result = yield pdRepository.findOne({
62
- where: { id: item.id },
63
- });
64
- if (!result) {
65
- return Promise.reject(Error(`No presentation definition item found for id: ${item.id}`));
66
- }
67
- const entity = (0, MappingUtils_1.presentationDefinitionEntityItemFrom)(item);
68
- debug('Updating presentation definition item', item);
69
- const updateResult = yield pdRepository.save(entity, {
70
- transaction: true,
71
- });
72
- return (0, MappingUtils_1.presentationDefinitionItemFrom)(updateResult);
73
- });
74
- this.deleteDefinition = (args) => __awaiter(this, void 0, void 0, function* () {
75
- const { itemId } = args;
76
- const pdRepository = (yield this.dbConnection).getRepository(PresentationDefinitionItemEntity_1.PresentationDefinitionItemEntity);
77
- const entity = yield pdRepository.findOne({
78
- where: { id: itemId },
79
- });
80
- if (!entity) {
81
- return Promise.reject(Error(`No identity found for id: ${itemId}`));
82
- }
83
- debug('Removing presentation definition item ', entity);
84
- yield pdRepository.delete(entity.id);
85
- });
86
- this.dbConnection = dbConnection;
87
- }
88
- }
89
- exports.PDStore = PDStore;
90
- //# sourceMappingURL=PDStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PDStore.js","sourceRoot":"","sources":["../../src/pd/PDStore.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { NonPersistedPresentationDefinitionItem, PresentationDefinitionItem, PresentationDefinitionItemFilter } from './pd';
2
- export type FindDefinitionArgs = Array<PresentationDefinitionItemFilter>;
3
- export type GetGetDefinitionArgs = {
4
- itemId: string;
5
- };
6
- export type GetDefinitionsArgs = {
7
- filter?: FindDefinitionArgs;
8
- };
9
- export type AddDefinitionArgs = NonPersistedPresentationDefinitionItem;
10
- export type UpdateDefinitionArgs = PresentationDefinitionItem;
11
- export type DeleteDefinitionArgs = {
12
- itemId: string;
13
- };
14
- //# sourceMappingURL=IAbstractPDStore.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IAbstractPDStore.d.ts","sourceRoot":"","sources":["../../../src/types/pd/IAbstractPDStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sCAAsC,EAAE,0BAA0B,EAAE,gCAAgC,EAAE,MAAM,MAAM,CAAA;AAE3H,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,gCAAgC,CAAC,CAAA;AAExE,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,kBAAkB,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,sCAAsC,CAAA;AAEtE,MAAM,MAAM,oBAAoB,GAAG,0BAA0B,CAAA;AAE7D,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAA;CACf,CAAA"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=IAbstractPDStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IAbstractPDStore.js","sourceRoot":"","sources":["../../../src/types/pd/IAbstractPDStore.ts"],"names":[],"mappings":""}
@@ -1,15 +0,0 @@
1
- import { IPresentationDefinition } from '@sphereon/pex';
2
- export type PresentationDefinitionItem = {
3
- id: string;
4
- definitionId: string;
5
- tenantId?: string;
6
- version: string;
7
- purpose?: string;
8
- definitionPayload: IPresentationDefinition;
9
- createdAt: Date;
10
- lastUpdatedAt: Date;
11
- };
12
- export type NonPersistedPresentationDefinitionItem = Omit<PresentationDefinitionItem, 'id' | 'createdAt' | 'lastUpdatedAt'>;
13
- export type PartialPresentationDefinitionItem = Partial<PresentationDefinitionItem>;
14
- export type PresentationDefinitionItemFilter = Partial<Omit<PresentationDefinitionItem, 'definitionPayload'>>;
15
- //# sourceMappingURL=pd.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pd.d.ts","sourceRoot":"","sources":["../../../src/types/pd/pd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAEvD,MAAM,MAAM,0BAA0B,GAAG;IACvC,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iBAAiB,EAAE,uBAAuB,CAAA;IAC1C,SAAS,EAAE,IAAI,CAAA;IACf,aAAa,EAAE,IAAI,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,sCAAsC,GAAG,IAAI,CAAC,0BAA0B,EAAE,IAAI,GAAG,WAAW,GAAG,eAAe,CAAC,CAAA;AAC3H,MAAM,MAAM,iCAAiC,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAA;AACnF,MAAM,MAAM,gCAAgC,GAAG,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,mBAAmB,CAAC,CAAC,CAAA"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=pd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pd.js","sourceRoot":"","sources":["../../../src/types/pd/pd.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- import { PresentationDefinitionItemEntity } from '../../entities/presentationDefinitions/PresentationDefinitionItemEntity';
2
- import { PartialPresentationDefinitionItem, PresentationDefinitionItem } from '../../types';
3
- export declare const presentationDefinitionItemFrom: (entity: PresentationDefinitionItemEntity) => PresentationDefinitionItem;
4
- export declare const presentationDefinitionEntityItemFrom: (item: PartialPresentationDefinitionItem) => PresentationDefinitionItemEntity;
5
- export declare function isPresentationDefinitionEqual(left: PartialPresentationDefinitionItem, right: PartialPresentationDefinitionItem): boolean;
6
- //# sourceMappingURL=MappingUtils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MappingUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/presentationDefinitions/MappingUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,yEAAyE,CAAA;AAE1H,OAAO,EAAE,iCAAiC,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAG3F,eAAO,MAAM,8BAA8B,WAAY,gCAAgC,+BAWtF,CAAA;AAED,eAAO,MAAM,oCAAoC,SAAU,iCAAiC,qCAc3F,CAAA;AAMD,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,iCAAiC,EAAE,KAAK,EAAE,iCAAiC,GAAG,OAAO,CAexI"}
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isPresentationDefinitionEqual = exports.presentationDefinitionEntityItemFrom = exports.presentationDefinitionItemFrom = void 0;
4
- const PresentationDefinitionItemEntity_1 = require("../../entities/presentationDefinitions/PresentationDefinitionItemEntity");
5
- const crypto_1 = require("crypto");
6
- const presentationDefinitionItemFrom = (entity) => {
7
- return {
8
- id: entity.id,
9
- tenantId: entity.tenantId,
10
- definitionId: entity.definitionId,
11
- version: entity.version,
12
- purpose: entity.purpose,
13
- definitionPayload: JSON.parse(entity.definitionPayload),
14
- createdAt: entity.createdAt,
15
- lastUpdatedAt: entity.lastUpdatedAt,
16
- };
17
- };
18
- exports.presentationDefinitionItemFrom = presentationDefinitionItemFrom;
19
- const presentationDefinitionEntityItemFrom = (item) => {
20
- const entity = new PresentationDefinitionItemEntity_1.PresentationDefinitionItemEntity();
21
- if (item.id) {
22
- entity.id = item.id;
23
- }
24
- entity.tenantId = item.tenantId;
25
- entity.definitionId = item.definitionId;
26
- entity.version = item.version;
27
- entity.purpose = item.purpose;
28
- entity.definitionPayload = JSON.stringify(item.definitionPayload);
29
- entity.createdAt = item.createdAt;
30
- entity.lastUpdatedAt = item.lastUpdatedAt;
31
- return entity;
32
- };
33
- exports.presentationDefinitionEntityItemFrom = presentationDefinitionEntityItemFrom;
34
- function hashPayload(payload) {
35
- return (0, crypto_1.createHash)('md5').update(JSON.stringify(payload)).digest('hex');
36
- }
37
- function isPresentationDefinitionEqual(left, right) {
38
- if (left.definitionId !== right.definitionId ||
39
- left.tenantId != right.tenantId ||
40
- left.version !== right.version ||
41
- left.purpose != right.purpose) {
42
- return false;
43
- }
44
- if (left.definitionPayload && right.definitionPayload) {
45
- return hashPayload(left.definitionPayload) === hashPayload(right.definitionPayload);
46
- }
47
- return left.definitionPayload == right.definitionPayload;
48
- }
49
- exports.isPresentationDefinitionEqual = isPresentationDefinitionEqual;
50
- //# sourceMappingURL=MappingUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MappingUtils.js","sourceRoot":"","sources":["../../../src/utils/presentationDefinitions/MappingUtils.ts"],"names":[],"mappings":";;;AAAA,8HAA0H;AAG1H,mCAAmC;AAE5B,MAAM,8BAA8B,GAAG,CAAC,MAAwC,EAAE,EAAE;IACzF,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAA4B;QAClF,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;KACN,CAAA;AACjC,CAAC,CAAA;AAXY,QAAA,8BAA8B,kCAW1C;AAEM,MAAM,oCAAoC,GAAG,CAAC,IAAuC,EAAE,EAAE;IAC9F,MAAM,MAAM,GAAG,IAAI,mEAAgC,EAAE,CAAA;IACrD,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAA;IACrB,CAAC;IAED,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAS,CAAA;IAChC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,YAAa,CAAA;IACxC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAQ,CAAA;IAC9B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC7B,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAkB,CAAC,CAAA;IAClE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAU,CAAA;IAClC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAc,CAAA;IAC1C,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAdY,QAAA,oCAAoC,wCAchD;AAED,SAAS,WAAW,CAAC,OAAgC;IACnD,OAAO,IAAA,mBAAU,EAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACxE,CAAC;AAED,SAAgB,6BAA6B,CAAC,IAAuC,EAAE,KAAwC;IAC7H,IACE,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY;QACxC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ;QAC/B,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;QAC9B,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAC7B,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,IAAI,CAAC,iBAAiB,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;QACtD,OAAO,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,WAAW,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACrF,CAAC;IAED,OAAO,IAAI,CAAC,iBAAiB,IAAI,KAAK,CAAC,iBAAiB,CAAA;AAC1D,CAAC;AAfD,sEAeC"}
@@ -1,41 +0,0 @@
1
- import { BaseEntity, BeforeInsert, BeforeUpdate, Column, CreateDateColumn, Entity, Index, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm'
2
- import { IsNotEmpty } from 'class-validator'
3
-
4
- @Entity('PresentationDefinitionItem')
5
- @Index(['version'], { unique: false })
6
- @Index(['version'], { unique: false })
7
- export class PresentationDefinitionItemEntity extends BaseEntity {
8
- @PrimaryGeneratedColumn('uuid')
9
- id!: string
10
-
11
- @Column({ name: 'definition_id', length: 255, nullable: false, unique: false })
12
- @IsNotEmpty({ message: 'definitionId field must not be empty' })
13
- definitionId!: string
14
-
15
- @Column({ name: 'version', length: 255, nullable: false, unique: false })
16
- @IsNotEmpty({ message: 'version field must not be empty' })
17
- version!: string
18
-
19
- @Column({ name: 'tenant_id', length: 255, nullable: true, unique: false })
20
- tenantId?: string
21
-
22
- @Column({ name: 'purpose', length: 255, nullable: true, unique: false })
23
- purpose?: string
24
-
25
- @Column({ name: 'definition_payload', type: 'text', nullable: false, unique: false })
26
- @IsNotEmpty({ message: 'definitionPayload field must not be empty' })
27
- definitionPayload!: string
28
-
29
- @CreateDateColumn({ name: 'created_at', nullable: false })
30
- createdAt!: Date
31
-
32
- @UpdateDateColumn({ name: 'last_updated_at', nullable: false })
33
- lastUpdatedAt!: Date
34
-
35
- // By default, @UpdateDateColumn in TypeORM updates the timestamp only when the entity's top-level properties change.
36
- @BeforeInsert()
37
- @BeforeUpdate()
38
- updateUpdatedDate(): void {
39
- this.lastUpdatedAt = new Date()
40
- }
41
- }
@@ -1,66 +0,0 @@
1
- import { DatabaseType, MigrationInterface, QueryRunner } from 'typeorm'
2
- import Debug from 'debug'
3
- import { CreatePresentationDefinitions1716475165345 } from '../postgres/1716475165345-CreatePresentationDefinitions'
4
- import { CreatePresentationDefinitions1716475165344 } from '../sqlite/1716475165344-CreatePresentationDefinitions'
5
-
6
- const debug: Debug.Debugger = Debug('sphereon:ssi-sdk:migrations')
7
-
8
- export class CreatePresentationDefinitions1716533767523 implements MigrationInterface {
9
- name = 'CreatePresentationDefinitionItems1716533767523'
10
-
11
- public async up(queryRunner: QueryRunner): Promise<void> {
12
- debug('migration: creating machine state tables')
13
- const dbType: DatabaseType = queryRunner.connection.driver.options.type
14
-
15
- switch (dbType) {
16
- case 'postgres': {
17
- debug('using postgres migration file')
18
- const mig: CreatePresentationDefinitions1716475165345 = new CreatePresentationDefinitions1716475165345()
19
- await mig.up(queryRunner)
20
- debug('Migration statements executed')
21
- return
22
- }
23
- case 'sqlite':
24
- case 'expo':
25
- case 'react-native': {
26
- debug('using sqlite/react-native migration file')
27
- const mig: CreatePresentationDefinitions1716475165344 = new CreatePresentationDefinitions1716475165344()
28
- await mig.up(queryRunner)
29
- debug('Migration statements executed')
30
- return
31
- }
32
- default:
33
- return Promise.reject(
34
- `Migrations are currently only supported for sqlite, react-native, expo and postgres. Was ${dbType}. Please run your database without migrations and with 'migrationsRun: false' and 'synchronize: true' for now`,
35
- )
36
- }
37
- }
38
-
39
- public async down(queryRunner: QueryRunner): Promise<void> {
40
- debug('migration: reverting machine state tables')
41
- const dbType: DatabaseType = queryRunner.connection.driver.options.type
42
-
43
- switch (dbType) {
44
- case 'postgres': {
45
- debug('using postgres migration file')
46
- const mig: CreatePresentationDefinitions1716475165345 = new CreatePresentationDefinitions1716475165345()
47
- await mig.down(queryRunner)
48
- debug('Migration statements executed')
49
- return
50
- }
51
- case 'sqlite':
52
- case 'expo':
53
- case 'react-native': {
54
- debug('using sqlite/react-native migration file')
55
- const mig: CreatePresentationDefinitions1716475165344 = new CreatePresentationDefinitions1716475165344()
56
- await mig.down(queryRunner)
57
- debug('Migration statements executed')
58
- return
59
- }
60
- default:
61
- return Promise.reject(
62
- `Migrations are currently only supported for sqlite, react-native, expo and postgres. Was ${dbType}. Please run your database without migrations and with 'migrationsRun: false' and 'synchronize: true' for now`,
63
- )
64
- }
65
- }
66
- }
@@ -1,24 +0,0 @@
1
- import { MigrationInterface, QueryRunner } from 'typeorm'
2
-
3
- export class CreatePresentationDefinitions1716475165345 implements MigrationInterface {
4
- name = 'CreatePresentationDefinitions1716475165345'
5
-
6
- public async up(queryRunner: QueryRunner): Promise<void> {
7
- await queryRunner.query(`
8
- CREATE TABLE "PresentationDefinitionItem" (
9
- "id" uuid NOT NULL DEFAULT uuid_generate_v4(),
10
- "tenant_id" TEXT,
11
- "definition_id" TEXT NOT NULL,
12
- "version" TEXT NOT NULL,
13
- "purpose" TEXT,
14
- "definition_payload" TEXT NOT NULL,
15
- "created_at" TIMESTAMP NOT NULL DEFAULT now(),
16
- "last_updated_at" TIMESTAMP NOT NULL DEFAULT now(),
17
- CONSTRAINT "PK_PresentationDefinitionItem_id" PRIMARY KEY ("id"))
18
- `)
19
- }
20
-
21
- public async down(queryRunner: QueryRunner): Promise<void> {
22
- await queryRunner.query(`DROP TABLE "PresentationDefinitionItem"`)
23
- }
24
- }
@@ -1,23 +0,0 @@
1
- import { MigrationInterface, QueryRunner } from 'typeorm'
2
-
3
- export class CreatePresentationDefinitions1716475165344 implements MigrationInterface {
4
- name = 'CreatePresentationDefinitions1716475165344'
5
-
6
- public async up(queryRunner: QueryRunner): Promise<void> {
7
- await queryRunner.query(
8
- `CREATE TABLE "PresentationDefinitionItem" (
9
- "id" varchar PRIMARY KEY NOT NULL,
10
- "tenant_id" varchar,
11
- "definition_id" varchar NOT NULL,
12
- "version" varchar NOT NULL,
13
- "purpose" varchar,
14
- "definition_payload" varchar NOT NULL,
15
- "created_at" datetime NOT NULL DEFAULT (datetime('now')),
16
- "last_updated_at" datetime NOT NULL DEFAULT (datetime('now')))`,
17
- )
18
- }
19
-
20
- public async down(queryRunner: QueryRunner): Promise<void> {
21
- await queryRunner.query(`DROP TABLE "PresentationDefinitionItem"`)
22
- }
23
- }
@@ -1,10 +0,0 @@
1
- import { GetGetDefinitionArgs, GetDefinitionsArgs, DeleteDefinitionArgs } from '../types/pd/IAbstractPDStore'
2
- import { NonPersistedPresentationDefinitionItem, PresentationDefinitionItem } from '../types'
3
-
4
- export abstract class AbstractPdStore {
5
- abstract getDefinition(args: GetGetDefinitionArgs): Promise<PresentationDefinitionItem>
6
- abstract getDefinitions(args: GetDefinitionsArgs): Promise<Array<PresentationDefinitionItem>>
7
- abstract addDefinition(args: NonPersistedPresentationDefinitionItem): Promise<PresentationDefinitionItem>
8
- abstract updateDefinition(args: PresentationDefinitionItem): Promise<PresentationDefinitionItem>
9
- abstract deleteDefinition(args: DeleteDefinitionArgs): Promise<void>
10
- }
package/src/pd/PDStore.ts DELETED
@@ -1,103 +0,0 @@
1
- import { OrPromise } from '@sphereon/ssi-types'
2
- import { DataSource, In } from 'typeorm'
3
- import { AbstractPdStore } from './AbstractPDStore'
4
- import Debug from 'debug'
5
- import {
6
- GetGetDefinitionArgs,
7
- GetDefinitionsArgs,
8
- DeleteDefinitionArgs,
9
- NonPersistedPresentationDefinitionItem,
10
- PresentationDefinitionItem,
11
- } from '../types'
12
- import { PresentationDefinitionItemEntity } from '../entities/presentationDefinitions/PresentationDefinitionItemEntity'
13
- import { presentationDefinitionEntityItemFrom, presentationDefinitionItemFrom } from '../utils/presentationDefinitions/MappingUtils'
14
-
15
- const debug: Debug.Debugger = Debug('sphereon:ssi-sdk:pd-store')
16
-
17
- export class PDStore extends AbstractPdStore {
18
- private readonly dbConnection: OrPromise<DataSource>
19
-
20
- constructor(dbConnection: OrPromise<DataSource>) {
21
- super()
22
- this.dbConnection = dbConnection
23
- }
24
-
25
- getDefinition = async (args: GetGetDefinitionArgs): Promise<PresentationDefinitionItem> => {
26
- const { itemId } = args ?? {}
27
- const pdRepository = (await this.dbConnection).getRepository(PresentationDefinitionItemEntity)
28
- const result: PresentationDefinitionItemEntity | null = await pdRepository.findOne({
29
- where: { id: itemId },
30
- })
31
- if (!result) {
32
- return Promise.reject(Error(`No presentation definition item found for id: ${itemId}`))
33
- }
34
-
35
- return presentationDefinitionItemFrom(result)
36
- }
37
-
38
- getDefinitions = async (args: GetDefinitionsArgs): Promise<Array<PresentationDefinitionItem>> => {
39
- const { filter } = args
40
- const pdRepository = (await this.dbConnection).getRepository(PresentationDefinitionItemEntity)
41
- const initialResult: Array<PresentationDefinitionItemEntity> = await pdRepository.find({
42
- ...(filter && { where: filter }),
43
- })
44
-
45
- const result: Array<PresentationDefinitionItemEntity> = await pdRepository.find({
46
- where: {
47
- id: In(initialResult.map((entity: PresentationDefinitionItemEntity) => entity.id)),
48
- },
49
- order: {
50
- version: 'DESC',
51
- },
52
- })
53
-
54
- return result.map((entity: PresentationDefinitionItemEntity) => presentationDefinitionItemFrom(entity))
55
- }
56
-
57
- addDefinition = async (item: NonPersistedPresentationDefinitionItem): Promise<PresentationDefinitionItem> => {
58
- const pdRepository = (await this.dbConnection).getRepository(PresentationDefinitionItemEntity)
59
-
60
- const entity: PresentationDefinitionItemEntity = presentationDefinitionEntityItemFrom(item)
61
- debug('Adding presentation definition item', item)
62
- const result: PresentationDefinitionItemEntity = await pdRepository.save(entity, {
63
- transaction: true,
64
- })
65
-
66
- return presentationDefinitionItemFrom(result)
67
- }
68
-
69
- updateDefinition = async (item: PresentationDefinitionItem): Promise<PresentationDefinitionItem> => {
70
- const pdRepository = (await this.dbConnection).getRepository(PresentationDefinitionItemEntity)
71
-
72
- const result: PresentationDefinitionItemEntity | null = await pdRepository.findOne({
73
- where: { id: item.id },
74
- })
75
- if (!result) {
76
- return Promise.reject(Error(`No presentation definition item found for id: ${item.id}`))
77
- }
78
-
79
- const entity: PresentationDefinitionItemEntity = presentationDefinitionEntityItemFrom(item)
80
- debug('Updating presentation definition item', item)
81
- const updateResult: PresentationDefinitionItemEntity = await pdRepository.save(entity, {
82
- transaction: true,
83
- })
84
-
85
- return presentationDefinitionItemFrom(updateResult)
86
- }
87
-
88
- deleteDefinition = async (args: DeleteDefinitionArgs): Promise<void> => {
89
- const { itemId } = args
90
-
91
- const pdRepository = (await this.dbConnection).getRepository(PresentationDefinitionItemEntity)
92
- const entity: PresentationDefinitionItemEntity | null = await pdRepository.findOne({
93
- where: { id: itemId },
94
- })
95
-
96
- if (!entity) {
97
- return Promise.reject(Error(`No identity found for id: ${itemId}`))
98
- }
99
-
100
- debug('Removing presentation definition item ', entity)
101
- await pdRepository.delete(entity.id)
102
- }
103
- }
@@ -1,19 +0,0 @@
1
- import { NonPersistedPresentationDefinitionItem, PresentationDefinitionItem, PresentationDefinitionItemFilter } from './pd'
2
-
3
- export type FindDefinitionArgs = Array<PresentationDefinitionItemFilter>
4
-
5
- export type GetGetDefinitionArgs = {
6
- itemId: string
7
- }
8
-
9
- export type GetDefinitionsArgs = {
10
- filter?: FindDefinitionArgs
11
- }
12
-
13
- export type AddDefinitionArgs = NonPersistedPresentationDefinitionItem
14
-
15
- export type UpdateDefinitionArgs = PresentationDefinitionItem
16
-
17
- export type DeleteDefinitionArgs = {
18
- itemId: string
19
- }
@@ -1,16 +0,0 @@
1
- import { IPresentationDefinition } from '@sphereon/pex'
2
-
3
- export type PresentationDefinitionItem = {
4
- id: string
5
- definitionId: string
6
- tenantId?: string
7
- version: string
8
- purpose?: string
9
- definitionPayload: IPresentationDefinition
10
- createdAt: Date
11
- lastUpdatedAt: Date
12
- }
13
-
14
- export type NonPersistedPresentationDefinitionItem = Omit<PresentationDefinitionItem, 'id' | 'createdAt' | 'lastUpdatedAt'>
15
- export type PartialPresentationDefinitionItem = Partial<PresentationDefinitionItem>
16
- export type PresentationDefinitionItemFilter = Partial<Omit<PresentationDefinitionItem, 'definitionPayload'>>
@@ -1,54 +0,0 @@
1
- import { PresentationDefinitionItemEntity } from '../../entities/presentationDefinitions/PresentationDefinitionItemEntity'
2
- import { IPresentationDefinition } from '@sphereon/pex'
3
- import { PartialPresentationDefinitionItem, PresentationDefinitionItem } from '../../types'
4
- import { createHash } from 'crypto'
5
-
6
- export const presentationDefinitionItemFrom = (entity: PresentationDefinitionItemEntity) => {
7
- return {
8
- id: entity.id,
9
- tenantId: entity.tenantId,
10
- definitionId: entity.definitionId,
11
- version: entity.version,
12
- purpose: entity.purpose,
13
- definitionPayload: JSON.parse(entity.definitionPayload) as IPresentationDefinition,
14
- createdAt: entity.createdAt,
15
- lastUpdatedAt: entity.lastUpdatedAt,
16
- } as PresentationDefinitionItem
17
- }
18
-
19
- export const presentationDefinitionEntityItemFrom = (item: PartialPresentationDefinitionItem) => {
20
- const entity = new PresentationDefinitionItemEntity()
21
- if (item.id) {
22
- entity.id = item.id
23
- }
24
-
25
- entity.tenantId = item.tenantId!
26
- entity.definitionId = item.definitionId!
27
- entity.version = item.version!
28
- entity.purpose = item.purpose
29
- entity.definitionPayload = JSON.stringify(item.definitionPayload!)
30
- entity.createdAt = item.createdAt!
31
- entity.lastUpdatedAt = item.lastUpdatedAt!
32
- return entity
33
- }
34
-
35
- function hashPayload(payload: IPresentationDefinition): string {
36
- return createHash('md5').update(JSON.stringify(payload)).digest('hex')
37
- }
38
-
39
- export function isPresentationDefinitionEqual(left: PartialPresentationDefinitionItem, right: PartialPresentationDefinitionItem): boolean {
40
- if (
41
- left.definitionId !== right.definitionId ||
42
- left.tenantId != right.tenantId ||
43
- left.version !== right.version ||
44
- left.purpose != right.purpose
45
- ) {
46
- return false
47
- }
48
-
49
- if (left.definitionPayload && right.definitionPayload) {
50
- return hashPayload(left.definitionPayload) === hashPayload(right.definitionPayload)
51
- }
52
-
53
- return left.definitionPayload == right.definitionPayload
54
- }