@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.
- package/LICENSE +201 -201
- package/README.md +77 -77
- package/dist/index.d.ts +3 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -15
- package/dist/index.js.map +1 -1
- package/dist/migrations/generic/index.d.ts +0 -2
- package/dist/migrations/generic/index.d.ts.map +1 -1
- package/dist/migrations/generic/index.js +1 -4
- package/dist/migrations/generic/index.js.map +1 -1
- package/dist/migrations/index.d.ts +1 -1
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +1 -2
- package/dist/migrations/index.js.map +1 -1
- package/dist/migrations/postgres/1690925872592-CreateContacts.js +1 -1
- package/dist/migrations/postgres/1690925872592-CreateContacts.js.map +1 -1
- package/dist/migrations/postgres/1708525189001-CreateDigitalCredential.js +22 -22
- package/dist/migrations/postgres/1708797018115-CreateMachineStateStore.js +16 -16
- package/dist/migrations/sqlite/1708525189002-CreateDigitalCredential.js +21 -21
- package/dist/migrations/sqlite/1708796002272-CreateMachineStateStore.js +15 -15
- package/dist/types/index.d.ts +0 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +0 -2
- package/dist/types/index.js.map +1 -1
- package/package.json +4 -5
- package/src/__tests__/contact.entities.test.ts +2542 -2542
- package/src/__tests__/contact.store.test.ts +2471 -2471
- package/src/__tests__/digitalCredential.entities.test.ts +254 -254
- package/src/__tests__/digitalCredential.store.test.ts +294 -294
- package/src/__tests__/eventLogger.entities.test.ts +73 -73
- package/src/__tests__/eventLogger.store.test.ts +136 -136
- package/src/__tests__/issuanceBranding.entities.test.ts +844 -844
- package/src/__tests__/issuanceBranding.store.test.ts +1884 -1884
- package/src/__tests__/machineState.entities.test.ts +51 -51
- package/src/__tests__/machineState.store.test.ts +174 -174
- package/src/contact/AbstractContactStore.ts +71 -71
- package/src/contact/ContactStore.ts +723 -723
- package/src/digitalCredential/AbstractDigitalCredentialStore.ts +17 -17
- package/src/digitalCredential/DigitalCredentialStore.ts +127 -127
- package/src/entities/contact/BaseContactEntity.ts +39 -39
- package/src/entities/contact/ConnectionEntity.ts +29 -29
- package/src/entities/contact/CorrelationIdentifierEntity.ts +37 -37
- package/src/entities/contact/DidAuthConfigEntity.ts +14 -14
- package/src/entities/contact/ElectronicAddressEntity.ts +63 -63
- package/src/entities/contact/IdentityEntity.ts +97 -97
- package/src/entities/contact/IdentityMetadataItemEntity.ts +35 -35
- package/src/entities/contact/NaturalPersonEntity.ts +38 -38
- package/src/entities/contact/OpenIdConfigEntity.ts +26 -26
- package/src/entities/contact/OrganizationEntity.ts +34 -34
- package/src/entities/contact/PartyEntity.ts +110 -110
- package/src/entities/contact/PartyRelationshipEntity.ts +61 -61
- package/src/entities/contact/PartyTypeEntity.ts +62 -62
- package/src/entities/contact/PhysicalAddressEntity.ts +87 -87
- package/src/entities/digitalCredential/DigitalCredentialEntity.ts +64 -64
- package/src/entities/eventLogger/AuditEventEntity.ts +99 -99
- package/src/entities/issuanceBranding/CredentialBrandingEntity.ts +78 -78
- package/src/entities/issuanceBranding/ImageAttributesEntity.ts +57 -57
- package/src/entities/issuanceBranding/IssuerBrandingEntity.ts +72 -72
- package/src/entities/machineState/MachineStateInfoEntity.ts +58 -58
- package/src/entities/statusList2021/StatusList2021Entity.ts +96 -96
- package/src/eventLogger/AbstractEventLoggerStore.ts +7 -7
- package/src/eventLogger/EventLoggerStore.ts +62 -62
- package/src/index.ts +141 -154
- package/src/issuanceBranding/IssuanceBrandingStore.ts +559 -559
- package/src/machineState/IAbstractMachineStateStore.ts +65 -65
- package/src/machineState/MachineStateStore.ts +149 -149
- package/src/migrations/generic/1-CreateContacts.ts +66 -66
- package/src/migrations/generic/2-CreateIssuanceBranding.ts +64 -64
- package/src/migrations/generic/3-CreateContacts.ts +66 -66
- package/src/migrations/generic/4-CreateStatusList.ts +54 -54
- package/src/migrations/generic/5-CreateAuditEvents.ts +66 -66
- package/src/migrations/generic/6-CreateDigitalCredential.ts +66 -66
- package/src/migrations/generic/7-CreateMachineStateStore.ts +66 -66
- package/src/migrations/generic/index.ts +33 -36
- package/src/migrations/index.ts +9 -10
- package/src/migrations/postgres/1659463079428-CreateContacts.ts +63 -63
- package/src/migrations/postgres/1685628974232-CreateIssuanceBranding.ts +85 -85
- package/src/migrations/postgres/1690925872592-CreateContacts.ts +104 -104
- package/src/migrations/postgres/1693866470001-CreateStatusList.ts +24 -24
- package/src/migrations/postgres/1701634812183-CreateAuditEvents.ts +33 -33
- package/src/migrations/postgres/1708525189001-CreateDigitalCredential.ts +44 -44
- package/src/migrations/postgres/1708797018115-CreateMachineStateStore.ts +29 -29
- package/src/migrations/sqlite/1659463069549-CreateContacts.ts +110 -110
- package/src/migrations/sqlite/1685628973231-CreateIssuanceBranding.ts +119 -119
- package/src/migrations/sqlite/1690925872693-CreateContacts.ts +161 -161
- package/src/migrations/sqlite/1693866470000-CreateStatusList.ts +24 -24
- package/src/migrations/sqlite/1701634819487-CreateAuditEvents.ts +15 -15
- package/src/migrations/sqlite/1708525189002-CreateDigitalCredential.ts +34 -34
- package/src/migrations/sqlite/1708796002272-CreateMachineStateStore.ts +28 -28
- package/src/statusList/StatusListStore.ts +237 -237
- package/src/types/contact/IAbstractContactStore.ts +161 -161
- package/src/types/contact/contact.ts +237 -237
- package/src/types/digitalCredential/IAbstractDigitalCredentialStore.ts +37 -37
- package/src/types/digitalCredential/digitalCredential.ts +46 -46
- package/src/types/eventLogger/IAbstractEventLoggerStore.ts +12 -12
- package/src/types/eventLogger/eventLogger.ts +3 -3
- package/src/types/index.ts +10 -12
- package/src/types/machineState/IAbstractMachineStateStore.ts +68 -68
- package/src/utils/SortingUtils.ts +16 -16
- package/src/utils/contact/MappingUtils.ts +385 -385
- package/src/utils/digitalCredential/MappingUtils.ts +122 -122
- package/dist/entities/presentationDefinitions/PresentationDefinitionItemEntity.d.ts +0 -13
- package/dist/entities/presentationDefinitions/PresentationDefinitionItemEntity.d.ts.map +0 -1
- package/dist/entities/presentationDefinitions/PresentationDefinitionItemEntity.js +0 -71
- package/dist/entities/presentationDefinitions/PresentationDefinitionItemEntity.js.map +0 -1
- package/dist/migrations/generic/8-CreatePresentationDefinitions.d.ts +0 -7
- package/dist/migrations/generic/8-CreatePresentationDefinitions.d.ts.map +0 -1
- package/dist/migrations/generic/8-CreatePresentationDefinitions.js +0 -78
- package/dist/migrations/generic/8-CreatePresentationDefinitions.js.map +0 -1
- package/dist/migrations/postgres/1716475165345-CreatePresentationDefinitions.d.ts +0 -7
- package/dist/migrations/postgres/1716475165345-CreatePresentationDefinitions.d.ts.map +0 -1
- package/dist/migrations/postgres/1716475165345-CreatePresentationDefinitions.js +0 -40
- package/dist/migrations/postgres/1716475165345-CreatePresentationDefinitions.js.map +0 -1
- package/dist/migrations/sqlite/1716475165344-CreatePresentationDefinitions.d.ts +0 -7
- package/dist/migrations/sqlite/1716475165344-CreatePresentationDefinitions.d.ts.map +0 -1
- package/dist/migrations/sqlite/1716475165344-CreatePresentationDefinitions.js +0 -37
- package/dist/migrations/sqlite/1716475165344-CreatePresentationDefinitions.js.map +0 -1
- package/dist/pd/AbstractPDStore.d.ts +0 -10
- package/dist/pd/AbstractPDStore.d.ts.map +0 -1
- package/dist/pd/AbstractPDStore.js +0 -7
- package/dist/pd/AbstractPDStore.js.map +0 -1
- package/dist/pd/PDStore.d.ts +0 -14
- package/dist/pd/PDStore.d.ts.map +0 -1
- package/dist/pd/PDStore.js +0 -90
- package/dist/pd/PDStore.js.map +0 -1
- package/dist/types/pd/IAbstractPDStore.d.ts +0 -14
- package/dist/types/pd/IAbstractPDStore.d.ts.map +0 -1
- package/dist/types/pd/IAbstractPDStore.js +0 -3
- package/dist/types/pd/IAbstractPDStore.js.map +0 -1
- package/dist/types/pd/pd.d.ts +0 -15
- package/dist/types/pd/pd.d.ts.map +0 -1
- package/dist/types/pd/pd.js +0 -3
- package/dist/types/pd/pd.js.map +0 -1
- package/dist/utils/presentationDefinitions/MappingUtils.d.ts +0 -6
- package/dist/utils/presentationDefinitions/MappingUtils.d.ts.map +0 -1
- package/dist/utils/presentationDefinitions/MappingUtils.js +0 -50
- package/dist/utils/presentationDefinitions/MappingUtils.js.map +0 -1
- package/src/entities/presentationDefinitions/PresentationDefinitionItemEntity.ts +0 -41
- package/src/migrations/generic/8-CreatePresentationDefinitions.ts +0 -66
- package/src/migrations/postgres/1716475165345-CreatePresentationDefinitions.ts +0 -24
- package/src/migrations/sqlite/1716475165344-CreatePresentationDefinitions.ts +0 -23
- package/src/pd/AbstractPDStore.ts +0 -10
- package/src/pd/PDStore.ts +0 -103
- package/src/types/pd/IAbstractPDStore.ts +0 -19
- package/src/types/pd/pd.ts +0 -16
- package/src/utils/presentationDefinitions/MappingUtils.ts +0 -54
package/dist/pd/PDStore.js
DELETED
|
@@ -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
|
package/dist/pd/PDStore.js.map
DELETED
|
@@ -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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IAbstractPDStore.js","sourceRoot":"","sources":["../../../src/types/pd/IAbstractPDStore.ts"],"names":[],"mappings":""}
|
package/dist/types/pd/pd.d.ts
DELETED
|
@@ -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"}
|
package/dist/types/pd/pd.js
DELETED
package/dist/types/pd/pd.js.map
DELETED
|
@@ -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
|
-
}
|
package/src/types/pd/pd.ts
DELETED
|
@@ -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
|
-
}
|