@sphereon/ssi-sdk.data-store 0.24.1-next.42 → 0.24.1-next.98

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 (70) hide show
  1. package/LICENSE +1 -1
  2. package/dist/entities/presentationDefinition/PresentationDefinitionItemEntity.d.ts +14 -0
  3. package/dist/entities/presentationDefinition/PresentationDefinitionItemEntity.d.ts.map +1 -0
  4. package/dist/entities/presentationDefinition/PresentationDefinitionItemEntity.js +74 -0
  5. package/dist/entities/presentationDefinition/PresentationDefinitionItemEntity.js.map +1 -0
  6. package/dist/index.d.ts +8 -3
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +13 -2
  9. package/dist/index.js.map +1 -1
  10. package/dist/migrations/generic/10-CreatePresentationDefinitions.d.ts +7 -0
  11. package/dist/migrations/generic/10-CreatePresentationDefinitions.d.ts.map +1 -0
  12. package/dist/migrations/generic/10-CreatePresentationDefinitions.js +78 -0
  13. package/dist/migrations/generic/10-CreatePresentationDefinitions.js.map +1 -0
  14. package/dist/migrations/generic/index.d.ts +2 -0
  15. package/dist/migrations/generic/index.d.ts.map +1 -1
  16. package/dist/migrations/generic/index.js +4 -1
  17. package/dist/migrations/generic/index.js.map +1 -1
  18. package/dist/migrations/index.d.ts +1 -1
  19. package/dist/migrations/index.d.ts.map +1 -1
  20. package/dist/migrations/index.js +2 -1
  21. package/dist/migrations/index.js.map +1 -1
  22. package/dist/migrations/postgres/1716475165345-CreatePresentationDefinitions.d.ts +7 -0
  23. package/dist/migrations/postgres/1716475165345-CreatePresentationDefinitions.d.ts.map +1 -0
  24. package/dist/migrations/postgres/1716475165345-CreatePresentationDefinitions.js +41 -0
  25. package/dist/migrations/postgres/1716475165345-CreatePresentationDefinitions.js.map +1 -0
  26. package/dist/migrations/sqlite/1716475165344-CreatePresentationDefinitions.d.ts +7 -0
  27. package/dist/migrations/sqlite/1716475165344-CreatePresentationDefinitions.d.ts.map +1 -0
  28. package/dist/migrations/sqlite/1716475165344-CreatePresentationDefinitions.js +38 -0
  29. package/dist/migrations/sqlite/1716475165344-CreatePresentationDefinitions.js.map +1 -0
  30. package/dist/presentationDefinition/AbstractPDStore.d.ts +12 -0
  31. package/dist/presentationDefinition/AbstractPDStore.d.ts.map +1 -0
  32. package/dist/presentationDefinition/AbstractPDStore.js +7 -0
  33. package/dist/presentationDefinition/AbstractPDStore.js.map +1 -0
  34. package/dist/presentationDefinition/PDStore.d.ts +19 -0
  35. package/dist/presentationDefinition/PDStore.d.ts.map +1 -0
  36. package/dist/presentationDefinition/PDStore.js +152 -0
  37. package/dist/presentationDefinition/PDStore.js.map +1 -0
  38. package/dist/types/index.d.ts +2 -0
  39. package/dist/types/index.d.ts.map +1 -1
  40. package/dist/types/index.js +2 -0
  41. package/dist/types/index.js.map +1 -1
  42. package/dist/types/presentationDefinition/IAbstractPDStore.d.ts +17 -0
  43. package/dist/types/presentationDefinition/IAbstractPDStore.d.ts.map +1 -0
  44. package/dist/types/presentationDefinition/IAbstractPDStore.js +3 -0
  45. package/dist/types/presentationDefinition/IAbstractPDStore.js.map +1 -0
  46. package/dist/types/presentationDefinition/presentationDefinition.d.ts +16 -0
  47. package/dist/types/presentationDefinition/presentationDefinition.d.ts.map +1 -0
  48. package/dist/types/presentationDefinition/presentationDefinition.js +3 -0
  49. package/dist/types/presentationDefinition/presentationDefinition.js.map +1 -0
  50. package/dist/utils/presentationDefinition/MappingUtils.d.ts +6 -0
  51. package/dist/utils/presentationDefinition/MappingUtils.d.ts.map +1 -0
  52. package/dist/utils/presentationDefinition/MappingUtils.js +48 -0
  53. package/dist/utils/presentationDefinition/MappingUtils.js.map +1 -0
  54. package/package.json +7 -4
  55. package/src/__tests__/pd-manager.entities.test.ts +71 -0
  56. package/src/__tests__/pd-manager.store.test.ts +191 -0
  57. package/src/entities/presentationDefinition/PresentationDefinitionItemEntity.ts +43 -0
  58. package/src/index.ts +10 -0
  59. package/src/migrations/generic/10-CreatePresentationDefinitions.ts +66 -0
  60. package/src/migrations/generic/index.ts +3 -0
  61. package/src/migrations/index.ts +1 -0
  62. package/src/migrations/postgres/1716475165345-CreatePresentationDefinitions.ts +25 -0
  63. package/src/migrations/sqlite/1716475165344-CreatePresentationDefinitions.ts +24 -0
  64. package/src/presentationDefinition/AbstractPDStore.ts +20 -0
  65. package/src/presentationDefinition/PDStore.ts +185 -0
  66. package/src/types/index.ts +2 -0
  67. package/src/types/presentationDefinition/IAbstractPDStore.ts +25 -0
  68. package/src/types/presentationDefinition/presentationDefinition.ts +17 -0
  69. package/src/utils/contact/MappingUtils.ts +1 -1
  70. package/src/utils/presentationDefinition/MappingUtils.ts +52 -0
@@ -0,0 +1,19 @@
1
+ import { OrPromise } from '@sphereon/ssi-types';
2
+ import { DataSource, Repository } from 'typeorm';
3
+ import { AbstractPDStore } from './AbstractPDStore';
4
+ import { DeleteDefinitionArgs, DeleteDefinitionsArgs, GetDefinitionArgs, GetDefinitionsArgs, HasDefinitionArgs, HasDefinitionsArgs, NonPersistedPresentationDefinitionItem, PresentationDefinitionItem, PresentationDefinitionItemFilter } from '../types';
5
+ import { PresentationDefinitionItemEntity } from '../entities/presentationDefinition/PresentationDefinitionItemEntity';
6
+ export declare class PDStore extends AbstractPDStore {
7
+ private readonly dbConnection;
8
+ constructor(dbConnection: OrPromise<DataSource>);
9
+ getDefinition: (args: GetDefinitionArgs) => Promise<PresentationDefinitionItem>;
10
+ hasDefinition: (args: HasDefinitionArgs) => Promise<boolean>;
11
+ hasDefinitions: (args: HasDefinitionsArgs) => Promise<boolean>;
12
+ getDefinitions: (args: GetDefinitionsArgs) => Promise<Array<PresentationDefinitionItem>>;
13
+ addDefinition: (item: NonPersistedPresentationDefinitionItem) => Promise<PresentationDefinitionItem>;
14
+ updateDefinition: (item: PresentationDefinitionItem) => Promise<PresentationDefinitionItem>;
15
+ deleteDefinition: (args: DeleteDefinitionArgs) => Promise<void>;
16
+ deleteDefinitions: (args: DeleteDefinitionsArgs) => Promise<number>;
17
+ findIds: (pdRepository: Repository<PresentationDefinitionItemEntity>, filter: Array<PresentationDefinitionItemFilter> | undefined) => Promise<Array<PresentationDefinitionItemEntity>>;
18
+ }
19
+ //# sourceMappingURL=PDStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PDStore.d.ts","sourceRoot":"","sources":["../../src/presentationDefinition/PDStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAM,UAAU,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,sCAAsC,EACtC,0BAA0B,EAC1B,gCAAgC,EACjC,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,gCAAgC,EAAE,MAAM,qEAAqE,CAAA;AAKtH,qBAAa,OAAQ,SAAQ,eAAe;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuB;gBAExC,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC;IAK/C,aAAa,SAAgB,iBAAiB,KAAG,QAAQ,0BAA0B,CAAC,CAWnF;IAED,aAAa,SAAgB,iBAAiB,KAAG,QAAQ,OAAO,CAAC,CAShE;IAED,cAAc,SAAgB,kBAAkB,KAAG,QAAQ,OAAO,CAAC,CAQlE;IAED,cAAc,SAAgB,kBAAkB,KAAG,QAAQ,MAAM,0BAA0B,CAAC,CAAC,CAc5F;IAED,aAAa,SAAgB,sCAAsC,KAAG,QAAQ,0BAA0B,CAAC,CAUxG;IAED,gBAAgB,SAAgB,0BAA0B,KAAG,QAAQ,0BAA0B,CAAC,CA0B/F;IAED,gBAAgB,SAAgB,oBAAoB,KAAG,QAAQ,IAAI,CAAC,CAcnE;IAED,iBAAiB,SAAgB,qBAAqB,KAAG,QAAQ,MAAM,CAAC,CAgBvE;IAED,OAAO,iBACS,WAAW,gCAAgC,CAAC,UAClD,MAAM,gCAAgC,CAAC,GAAG,SAAS,KAC1D,QAAQ,MAAM,gCAAgC,CAAC,CAAC,CAWlD;CACF"}
@@ -0,0 +1,152 @@
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/presentationDefinition/PresentationDefinitionItemEntity");
20
+ const MappingUtils_1 = require("../utils/presentationDefinition/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.hasDefinition = (args) => __awaiter(this, void 0, void 0, function* () {
37
+ const { itemId } = args !== null && args !== void 0 ? args : {};
38
+ const pdRepository = (yield this.dbConnection).getRepository(PresentationDefinitionItemEntity_1.PresentationDefinitionItemEntity);
39
+ const resultCount = yield pdRepository.count({
40
+ where: { id: itemId },
41
+ });
42
+ return resultCount > 0;
43
+ });
44
+ this.hasDefinitions = (args) => __awaiter(this, void 0, void 0, function* () {
45
+ const { filter } = args;
46
+ const pdRepository = (yield this.dbConnection).getRepository(PresentationDefinitionItemEntity_1.PresentationDefinitionItemEntity);
47
+ const resultCount = yield pdRepository.count(Object.assign({}, (filter && { where: cleanFilter(filter) })));
48
+ return resultCount > 0;
49
+ });
50
+ this.getDefinitions = (args) => __awaiter(this, void 0, void 0, function* () {
51
+ const { filter } = args;
52
+ const pdRepository = (yield this.dbConnection).getRepository(PresentationDefinitionItemEntity_1.PresentationDefinitionItemEntity);
53
+ const initialResult = yield this.findIds(pdRepository, filter);
54
+ const result = yield pdRepository.find({
55
+ where: {
56
+ id: (0, typeorm_1.In)(initialResult.map((entity) => entity.id)),
57
+ },
58
+ order: {
59
+ version: 'DESC',
60
+ },
61
+ });
62
+ return result.map((entity) => (0, MappingUtils_1.presentationDefinitionItemFrom)(entity));
63
+ });
64
+ this.addDefinition = (item) => __awaiter(this, void 0, void 0, function* () {
65
+ const pdRepository = (yield this.dbConnection).getRepository(PresentationDefinitionItemEntity_1.PresentationDefinitionItemEntity);
66
+ const entity = (0, MappingUtils_1.presentationDefinitionEntityItemFrom)(item);
67
+ debug('Adding presentation definition entity', item);
68
+ const result = yield pdRepository.save(entity, {
69
+ transaction: true,
70
+ });
71
+ return (0, MappingUtils_1.presentationDefinitionItemFrom)(result);
72
+ });
73
+ this.updateDefinition = (item) => __awaiter(this, void 0, void 0, function* () {
74
+ const pdRepository = (yield this.dbConnection).getRepository(PresentationDefinitionItemEntity_1.PresentationDefinitionItemEntity);
75
+ const result = yield pdRepository.findOne({
76
+ where: { id: item.id },
77
+ });
78
+ if (!result) {
79
+ return Promise.reject(Error(`No presentation definition entity found for id: ${item.id}`));
80
+ }
81
+ const updatedEntity = Object.assign({}, result);
82
+ updatedEntity.tenantId = item.tenantId;
83
+ updatedEntity.definitionId = item.definitionId;
84
+ updatedEntity.version = item.version;
85
+ updatedEntity.name = item.name;
86
+ updatedEntity.purpose = item.purpose;
87
+ updatedEntity.definitionPayload = JSON.stringify(item.definitionPayload);
88
+ debug('Updating presentation definition entity', updatedEntity);
89
+ const updateResult = yield pdRepository.save(updatedEntity, {
90
+ transaction: true,
91
+ });
92
+ return (0, MappingUtils_1.presentationDefinitionItemFrom)(updateResult);
93
+ });
94
+ this.deleteDefinition = (args) => __awaiter(this, void 0, void 0, function* () {
95
+ const { itemId } = args;
96
+ const pdRepository = (yield this.dbConnection).getRepository(PresentationDefinitionItemEntity_1.PresentationDefinitionItemEntity);
97
+ const entity = yield pdRepository.findOne({
98
+ where: { id: itemId },
99
+ });
100
+ if (!entity) {
101
+ return Promise.reject(Error(`No presentation definition found with id: ${itemId}`));
102
+ }
103
+ debug('Deleting presentation definition entity', entity);
104
+ yield pdRepository.delete(entity.id);
105
+ });
106
+ this.deleteDefinitions = (args) => __awaiter(this, void 0, void 0, function* () {
107
+ const { filter } = args;
108
+ const pdRepository = (yield this.dbConnection).getRepository(PresentationDefinitionItemEntity_1.PresentationDefinitionItemEntity);
109
+ const initialResult = yield this.findIds(pdRepository, filter);
110
+ const result = yield pdRepository.find({
111
+ where: {
112
+ id: (0, typeorm_1.In)(initialResult.map((entity) => entity.id)),
113
+ },
114
+ });
115
+ for (const entity of result) {
116
+ debug('Deleting presentation definition entity', entity.id);
117
+ yield pdRepository.delete(entity.id);
118
+ }
119
+ return result.length;
120
+ });
121
+ this.findIds = (pdRepository, filter) => __awaiter(this, void 0, void 0, function* () {
122
+ const idFilter = filter === null || filter === void 0 ? void 0 : filter.find((f) => f.id !== undefined && f.id !== null);
123
+ if (idFilter) {
124
+ return yield pdRepository.find({
125
+ where: { id: idFilter.id },
126
+ });
127
+ }
128
+ else {
129
+ return yield pdRepository.find(Object.assign({}, (filter && { where: cleanFilter(filter) })));
130
+ }
131
+ });
132
+ this.dbConnection = dbConnection;
133
+ }
134
+ }
135
+ exports.PDStore = PDStore;
136
+ const cleanFilter = (filter) => {
137
+ if (filter === undefined) {
138
+ return undefined;
139
+ }
140
+ return filter.map((item) => {
141
+ const cleanedItem = {};
142
+ for (const key in item) {
143
+ const value = item[key];
144
+ if (value !== undefined) {
145
+ ;
146
+ cleanedItem[key] = value;
147
+ }
148
+ }
149
+ return cleanedItem;
150
+ });
151
+ };
152
+ //# sourceMappingURL=PDStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PDStore.js","sourceRoot":"","sources":["../../src/presentationDefinition/PDStore.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  export * from './issuanceBranding/issuanceBranding';
2
2
  export * from './issuanceBranding/IAbstractIssuanceBrandingStore';
3
3
  export * from './contact/contact';
4
+ export * from './presentationDefinition/presentationDefinition';
5
+ export * from './presentationDefinition/IAbstractPDStore';
4
6
  export * from './contact/IAbstractContactStore';
5
7
  export * from './validation/validation';
6
8
  export * from './statusList/statusList';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAA;AACnD,cAAc,mDAAmD,CAAA;AACjE,cAAc,mBAAmB,CAAA;AACjC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uCAAuC,CAAA;AACrD,cAAc,yCAAyC,CAAA;AACvD,cAAc,2BAA2B,CAAA;AACzC,cAAc,2CAA2C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAA;AACnD,cAAc,mDAAmD,CAAA;AACjE,cAAc,mBAAmB,CAAA;AACjC,cAAc,iDAAiD,CAAA;AAC/D,cAAc,2CAA2C,CAAA;AACzD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uCAAuC,CAAA;AACrD,cAAc,yCAAyC,CAAA;AACvD,cAAc,2BAA2B,CAAA;AACzC,cAAc,2CAA2C,CAAA"}
@@ -17,6 +17,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./issuanceBranding/issuanceBranding"), exports);
18
18
  __exportStar(require("./issuanceBranding/IAbstractIssuanceBrandingStore"), exports);
19
19
  __exportStar(require("./contact/contact"), exports);
20
+ __exportStar(require("./presentationDefinition/presentationDefinition"), exports);
21
+ __exportStar(require("./presentationDefinition/IAbstractPDStore"), exports);
20
22
  __exportStar(require("./contact/IAbstractContactStore"), exports);
21
23
  __exportStar(require("./validation/validation"), exports);
22
24
  __exportStar(require("./statusList/statusList"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sEAAmD;AACnD,oFAAiE;AACjE,oDAAiC;AACjC,kEAA+C;AAC/C,0DAAuC;AACvC,0DAAuC;AACvC,wEAAqD;AACrD,0EAAuD;AACvD,4DAAyC;AACzC,4EAAyD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sEAAmD;AACnD,oFAAiE;AACjE,oDAAiC;AACjC,kFAA+D;AAC/D,4EAAyD;AACzD,kEAA+C;AAC/C,0DAAuC;AACvC,0DAAuC;AACvC,wEAAqD;AACrD,0EAAuD;AACvD,4DAAyC;AACzC,4EAAyD"}
@@ -0,0 +1,17 @@
1
+ import { NonPersistedPresentationDefinitionItem, PresentationDefinitionItem, PresentationDefinitionItemFilter } from './presentationDefinition';
2
+ export type FindDefinitionArgs = Array<PresentationDefinitionItemFilter>;
3
+ export type GetDefinitionArgs = {
4
+ itemId: string;
5
+ };
6
+ export type HasDefinitionArgs = GetDefinitionArgs;
7
+ export type GetDefinitionsArgs = {
8
+ filter?: FindDefinitionArgs;
9
+ };
10
+ export type HasDefinitionsArgs = GetDefinitionsArgs;
11
+ export type AddDefinitionArgs = NonPersistedPresentationDefinitionItem;
12
+ export type UpdateDefinitionArgs = PresentationDefinitionItem;
13
+ export type DeleteDefinitionArgs = {
14
+ itemId: string;
15
+ };
16
+ export type DeleteDefinitionsArgs = GetDefinitionsArgs;
17
+ //# sourceMappingURL=IAbstractPDStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAbstractPDStore.d.ts","sourceRoot":"","sources":["../../../src/types/presentationDefinition/IAbstractPDStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sCAAsC,EAAE,0BAA0B,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAA;AAE/I,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,gCAAgC,CAAC,CAAA;AAExE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAA;AAEjD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,kBAAkB,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,CAAA;AAEnD,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;AAED,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IAbstractPDStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAbstractPDStore.js","sourceRoot":"","sources":["../../../src/types/presentationDefinition/IAbstractPDStore.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { IPresentationDefinition } from '@sphereon/pex';
2
+ export type PresentationDefinitionItem = {
3
+ id: string;
4
+ definitionId: string;
5
+ tenantId?: string;
6
+ version: string;
7
+ name?: string;
8
+ purpose?: string;
9
+ definitionPayload: IPresentationDefinition;
10
+ createdAt: Date;
11
+ lastUpdatedAt: Date;
12
+ };
13
+ export type NonPersistedPresentationDefinitionItem = Omit<PresentationDefinitionItem, 'id' | 'createdAt' | 'lastUpdatedAt'>;
14
+ export type PartialPresentationDefinitionItem = Partial<PresentationDefinitionItem>;
15
+ export type PresentationDefinitionItemFilter = Partial<Omit<PresentationDefinitionItem, 'definitionPayload'>>;
16
+ //# sourceMappingURL=presentationDefinition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentationDefinition.d.ts","sourceRoot":"","sources":["../../../src/types/presentationDefinition/presentationDefinition.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,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=presentationDefinition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentationDefinition.js","sourceRoot":"","sources":["../../../src/types/presentationDefinition/presentationDefinition.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { PresentationDefinitionItemEntity } from '../../entities/presentationDefinition/PresentationDefinitionItemEntity';
2
+ import { NonPersistedPresentationDefinitionItem, PartialPresentationDefinitionItem, PresentationDefinitionItem } from '../../types';
3
+ export declare const presentationDefinitionItemFrom: (entity: PresentationDefinitionItemEntity) => PresentationDefinitionItem;
4
+ export declare const presentationDefinitionEntityItemFrom: (item: NonPersistedPresentationDefinitionItem) => PresentationDefinitionItemEntity;
5
+ export declare function isPresentationDefinitionEqual(base: PartialPresentationDefinitionItem, compare: PartialPresentationDefinitionItem): boolean;
6
+ //# sourceMappingURL=MappingUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MappingUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/presentationDefinition/MappingUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,wEAAwE,CAAA;AAEzH,OAAO,EAAE,sCAAsC,EAAE,iCAAiC,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAGnI,eAAO,MAAM,8BAA8B,WAAY,gCAAgC,KAAG,0BAYzF,CAAA;AAED,eAAO,MAAM,oCAAoC,SAAU,sCAAsC,KAAG,gCAUnG,CAAA;AAMD,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,iCAAiC,EAAE,OAAO,EAAE,iCAAiC,GAAG,OAAO,CAgB1I"}
@@ -0,0 +1,48 @@
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/presentationDefinition/PresentationDefinitionItemEntity");
5
+ const blakejs_1 = require("blakejs");
6
+ const presentationDefinitionItemFrom = (entity) => {
7
+ return {
8
+ id: entity.id,
9
+ tenantId: entity.tenantId,
10
+ definitionId: entity.definitionId,
11
+ version: entity.version,
12
+ name: entity.name,
13
+ purpose: entity.purpose,
14
+ definitionPayload: JSON.parse(entity.definitionPayload),
15
+ createdAt: entity.createdAt,
16
+ lastUpdatedAt: entity.lastUpdatedAt,
17
+ };
18
+ };
19
+ exports.presentationDefinitionItemFrom = presentationDefinitionItemFrom;
20
+ const presentationDefinitionEntityItemFrom = (item) => {
21
+ const entity = new PresentationDefinitionItemEntity_1.PresentationDefinitionItemEntity();
22
+ entity.tenantId = item.tenantId;
23
+ entity.definitionId = item.definitionId;
24
+ entity.version = item.version;
25
+ entity.name = item.name;
26
+ entity.purpose = item.purpose;
27
+ entity.definitionPayload = JSON.stringify(item.definitionPayload);
28
+ return entity;
29
+ };
30
+ exports.presentationDefinitionEntityItemFrom = presentationDefinitionEntityItemFrom;
31
+ function hashPayload(payload) {
32
+ return (0, blakejs_1.blake2bHex)(JSON.stringify(payload));
33
+ }
34
+ function isPresentationDefinitionEqual(base, compare) {
35
+ if (base.definitionId !== compare.definitionId ||
36
+ base.tenantId != compare.tenantId ||
37
+ base.version !== compare.version ||
38
+ base.name != compare.name ||
39
+ base.purpose != compare.purpose) {
40
+ return false;
41
+ }
42
+ if (base.definitionPayload && compare.definitionPayload) {
43
+ return hashPayload(base.definitionPayload) === hashPayload(compare.definitionPayload);
44
+ }
45
+ return false;
46
+ }
47
+ exports.isPresentationDefinitionEqual = isPresentationDefinitionEqual;
48
+ //# sourceMappingURL=MappingUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MappingUtils.js","sourceRoot":"","sources":["../../../src/utils/presentationDefinition/MappingUtils.ts"],"names":[],"mappings":";;;AAAA,6HAAyH;AAGzH,qCAAoC;AAE7B,MAAM,8BAA8B,GAAG,CAAC,MAAwC,EAA8B,EAAE;IACrH,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,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,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;KACpC,CAAA;AACH,CAAC,CAAA;AAZY,QAAA,8BAA8B,kCAY1C;AAEM,MAAM,oCAAoC,GAAG,CAAC,IAA4C,EAAoC,EAAE;IACrI,MAAM,MAAM,GAAG,IAAI,mEAAgC,EAAE,CAAA;IAErD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;IAC/B,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,YAAa,CAAA;IACxC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC7B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IACvB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC7B,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAkB,CAAC,CAAA;IAClE,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAVY,QAAA,oCAAoC,wCAUhD;AAED,SAAS,WAAW,CAAC,OAAgC;IACnD,OAAO,IAAA,oBAAU,EAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;AAC5C,CAAC;AAED,SAAgB,6BAA6B,CAAC,IAAuC,EAAE,OAA0C;IAC/H,IACE,IAAI,CAAC,YAAY,KAAK,OAAO,CAAC,YAAY;QAC1C,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ;QACjC,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;QAChC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI;QACzB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAC/B,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,IAAI,CAAC,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QACxD,OAAO,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACvF,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAhBD,sEAgBC"}
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@sphereon/ssi-sdk.data-store",
3
- "version": "0.24.1-next.42+1684d5f4",
3
+ "version": "0.24.1-next.98+c62d8ca9",
4
4
  "source": "src/index.ts",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "scripts": {
8
8
  "build": "tsc --build",
9
+ "build:clean": "tsc --build --clean && tsc --build",
9
10
  "typeorm": "ts-node --project ./tsconfig.json -r tsconfig-paths/register ../../node_modules/.pnpm/typeorm@0.3.12_sqlite3@5.1.6_ts-node@10.9.1/node_modules/typeorm/cli.js --config src/migrations/internal-migrations-ormconfig.ts",
10
11
  "typeorm-sqlite:migration:generate": "pnpm run typeorm -- migration:generate -c migration-sqlite -d src/migrations/sqlite -n",
11
12
  "typeorm-sqlite:migration:run": "pnpm run typeorm -- migration:run -c migration-sqlite",
@@ -13,10 +14,12 @@
13
14
  "typeorm-postgres:migration:run": "pnpm run typeorm -- migration:run -c migration-postgres"
14
15
  },
15
16
  "dependencies": {
16
- "@sphereon/ssi-sdk.core": "0.24.1-next.42+1684d5f4",
17
- "@sphereon/ssi-types": "0.24.1-next.42+1684d5f4",
17
+ "@sphereon/pex": "^3.3.3",
18
+ "@sphereon/ssi-sdk.core": "0.24.1-next.98+c62d8ca9",
19
+ "@sphereon/ssi-types": "0.24.1-next.98+c62d8ca9",
18
20
  "@veramo/core": "4.2.0",
19
21
  "@veramo/utils": "4.2.0",
22
+ "blakejs": "^1.1.1",
20
23
  "class-validator": "^0.14.0",
21
24
  "debug": "^4.3.4",
22
25
  "typeorm": "^0.3.20"
@@ -44,5 +47,5 @@
44
47
  "PostgreSQL",
45
48
  "Contact Store"
46
49
  ],
47
- "gitHead": "1684d5f4a1a6483cb4ca365a8f4dc4742f63e650"
50
+ "gitHead": "c62d8ca97210e599cb1a91446ae652d1c832710f"
48
51
  }
@@ -0,0 +1,71 @@
1
+ import { DataSource } from 'typeorm'
2
+ import { PresentationDefinitionItemEntity } from '../entities/presentationDefinition/PresentationDefinitionItemEntity'
3
+ import { DataStorePresentationDefinitionMigrations } from '../migrations'
4
+ import { DataStorePresentationDefinitionEntities } from '../index'
5
+
6
+ describe('PresentationDefinitionItemEntity tests', (): void => {
7
+ let dbConnection: DataSource
8
+
9
+ beforeEach(async (): Promise<void> => {
10
+ dbConnection = await new DataSource({
11
+ type: 'sqlite',
12
+ database: ':memory:',
13
+ logging: ['info'],
14
+ synchronize: true,
15
+ migrationsRun: false,
16
+ migrations: DataStorePresentationDefinitionMigrations,
17
+ entities: DataStorePresentationDefinitionEntities,
18
+ }).initialize()
19
+ })
20
+
21
+ afterEach(async (): Promise<void> => {
22
+ await dbConnection.destroy()
23
+ })
24
+
25
+ it('should create and retrieve PresentationDefinitionItemEntity', async (): Promise<void> => {
26
+ const repository = dbConnection.getRepository(PresentationDefinitionItemEntity)
27
+ const entity = new PresentationDefinitionItemEntity()
28
+ entity.definitionId = 'definition1'
29
+ entity.version = '1.0'
30
+ entity.definitionPayload = JSON.stringify({ id: 'definition1', input_descriptors: [] })
31
+
32
+ const savedEntity = await repository.save(entity)
33
+ expect(savedEntity).toBeDefined()
34
+ expect(savedEntity.id).toBeDefined()
35
+
36
+ const retrievedEntity = await repository.findOneBy({ id: savedEntity.id })
37
+ expect(retrievedEntity).toBeDefined()
38
+ expect(retrievedEntity!.definitionId).toEqual('definition1')
39
+ })
40
+
41
+ it('should update PresentationDefinitionItemEntity', async (): Promise<void> => {
42
+ const repository = dbConnection.getRepository(PresentationDefinitionItemEntity)
43
+ const entity = new PresentationDefinitionItemEntity()
44
+ entity.definitionId = 'definition1'
45
+ entity.version = '1.0'
46
+ entity.definitionPayload = JSON.stringify({ id: 'definition1', input_descriptors: [] })
47
+
48
+ const savedEntity = await repository.save(entity)
49
+ expect(savedEntity).toBeDefined()
50
+
51
+ savedEntity.version = '1.1'
52
+ const updatedEntity = await repository.save(savedEntity)
53
+ expect(updatedEntity).toBeDefined()
54
+ expect(updatedEntity.version).toEqual('1.1')
55
+ })
56
+
57
+ it('should delete PresentationDefinitionItemEntity', async (): Promise<void> => {
58
+ const repository = dbConnection.getRepository(PresentationDefinitionItemEntity)
59
+ const entity = new PresentationDefinitionItemEntity()
60
+ entity.definitionId = 'definition1'
61
+ entity.version = '1.0'
62
+ entity.definitionPayload = JSON.stringify({ id: 'definition1', input_descriptors: [] })
63
+
64
+ const savedEntity = await repository.save(entity)
65
+ expect(savedEntity).toBeDefined()
66
+
67
+ await repository.delete(savedEntity.id)
68
+ const retrievedEntity = await repository.findOneBy({ id: savedEntity.id })
69
+ expect(retrievedEntity).toBeNull()
70
+ })
71
+ })