@sphereon/ssi-sdk.data-store 0.32.1-fix.15 → 0.32.1-next.113
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/entities/presentationDefinition/PresentationDefinitionItemEntity.d.ts +1 -0
- package/dist/entities/presentationDefinition/PresentationDefinitionItemEntity.d.ts.map +1 -1
- package/dist/entities/presentationDefinition/PresentationDefinitionItemEntity.js +8 -2
- package/dist/entities/presentationDefinition/PresentationDefinitionItemEntity.js.map +1 -1
- package/dist/migrations/postgres/1716475165345-CreatePresentationDefinitions.d.ts.map +1 -1
- package/dist/migrations/postgres/1716475165345-CreatePresentationDefinitions.js +1 -0
- package/dist/migrations/postgres/1716475165345-CreatePresentationDefinitions.js.map +1 -1
- package/dist/migrations/sqlite/1716475165344-CreatePresentationDefinitions.d.ts.map +1 -1
- package/dist/migrations/sqlite/1716475165344-CreatePresentationDefinitions.js +1 -0
- package/dist/migrations/sqlite/1716475165344-CreatePresentationDefinitions.js.map +1 -1
- package/dist/types/presentationDefinition/presentationDefinition.d.ts +3 -1
- package/dist/types/presentationDefinition/presentationDefinition.d.ts.map +1 -1
- package/dist/utils/presentationDefinition/MappingUtils.d.ts.map +1 -1
- package/dist/utils/presentationDefinition/MappingUtils.js +2 -0
- package/dist/utils/presentationDefinition/MappingUtils.js.map +1 -1
- package/package.json +6 -5
- package/src/__tests__/pd-manager.entities.test.ts +77 -0
- package/src/entities/presentationDefinition/PresentationDefinitionItemEntity.ts +6 -2
- package/src/migrations/postgres/1716475165345-CreatePresentationDefinitions.ts +1 -0
- package/src/migrations/sqlite/1716475165344-CreatePresentationDefinitions.ts +1 -0
- package/src/types/presentationDefinition/presentationDefinition.ts +3 -1
- package/src/utils/presentationDefinition/MappingUtils.ts +3 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresentationDefinitionItemEntity.d.ts","sourceRoot":"","sources":["../../../src/entities/presentationDefinition/PresentationDefinitionItemEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiH,MAAM,SAAS,CAAA;AAInJ,qBAEa,gCAAiC,SAAQ,UAAU;IAE9D,EAAE,EAAG,MAAM,CAAA;IAIX,YAAY,EAAG,MAAM,CAAA;IAIrB,OAAO,EAAG,MAAM,CAAA;IAGhB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAGjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAGhB,IAAI,CAAC,EAAE,MAAM,CAAA;IAIb,iBAAiB,EAAG,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"PresentationDefinitionItemEntity.d.ts","sourceRoot":"","sources":["../../../src/entities/presentationDefinition/PresentationDefinitionItemEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiH,MAAM,SAAS,CAAA;AAInJ,qBAEa,gCAAiC,SAAQ,UAAU;IAE9D,EAAE,EAAG,MAAM,CAAA;IAIX,YAAY,EAAG,MAAM,CAAA;IAIrB,OAAO,EAAG,MAAM,CAAA;IAGhB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAGjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAGhB,IAAI,CAAC,EAAE,MAAM,CAAA;IAIb,iBAAiB,EAAG,MAAM,CAAA;IAI1B,WAAW,EAAG,MAAM,CAAA;IAGpB,SAAS,EAAG,IAAI,CAAA;IAGhB,aAAa,EAAG,IAAI,CAAA;IAKpB,iBAAiB,IAAI,IAAI;CAG1B"}
|
|
@@ -47,10 +47,16 @@ __decorate([
|
|
|
47
47
|
__metadata("design:type", String)
|
|
48
48
|
], PresentationDefinitionItemEntity.prototype, "name", void 0);
|
|
49
49
|
__decorate([
|
|
50
|
-
(0, typeorm_1.Column)({ name: 'definition_payload', type: 'text', nullable: false, unique: false })
|
|
51
|
-
|
|
50
|
+
(0, typeorm_1.Column)({ name: 'definition_payload', type: 'text', nullable: false, unique: false }) // TODO should this become nullable now we have dcqlPayload?
|
|
51
|
+
,
|
|
52
|
+
(0, class_validator_1.IsNotEmpty)({ message: 'A blank PD definition payload field is not allowed' }),
|
|
52
53
|
__metadata("design:type", String)
|
|
53
54
|
], PresentationDefinitionItemEntity.prototype, "definitionPayload", void 0);
|
|
55
|
+
__decorate([
|
|
56
|
+
(0, typeorm_1.Column)({ name: 'dcql_payload', type: 'text', nullable: true, unique: false }),
|
|
57
|
+
(0, class_validator_1.IsNotEmpty)({ message: 'A blank dcql definition payload field is not allowed' }),
|
|
58
|
+
__metadata("design:type", String)
|
|
59
|
+
], PresentationDefinitionItemEntity.prototype, "dcqlPayload", void 0);
|
|
54
60
|
__decorate([
|
|
55
61
|
(0, typeorm_1.CreateDateColumn)({ name: 'created_at', nullable: false, type: (0, ssi_sdk_agent_config_1.typeOrmDateTime)() }),
|
|
56
62
|
__metadata("design:type", Date)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresentationDefinitionItemEntity.js","sourceRoot":"","sources":["../../../src/entities/presentationDefinition/PresentationDefinitionItemEntity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAmJ;AACnJ,qDAA4C;AAC5C,yEAAgE;AAIzD,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,oBAAU;
|
|
1
|
+
{"version":3,"file":"PresentationDefinitionItemEntity.js","sourceRoot":"","sources":["../../../src/entities/presentationDefinition/PresentationDefinitionItemEntity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAmJ;AACnJ,qDAA4C;AAC5C,yEAAgE;AAIzD,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,oBAAU;IAmC9D,qHAAqH;IAGrH,iBAAiB;QACf,IAAI,CAAC,aAAa,GAAG,IAAI,IAAI,EAAE,CAAA;IACjC,CAAC;CACF,CAAA;AAzCY,4EAAgC;AAE3C;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;4DACpB;AAIX;IAFC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC/F,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC;;sEACjD;AAIrB;IAFC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACzF,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;;iEAChD;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;;kEAC1E;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;;iEACzE;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;;8DACzE;AAIb;IAFC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,4DAA4D;;IACjJ,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,oDAAoD,EAAE,CAAC;;2EACpD;AAI1B;IAFC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC7E,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,sDAAsD,EAAE,CAAC;;qEAC5D;AAGpB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAA,sCAAe,GAAE,EAAE,CAAC;8BACvE,IAAI;mEAAA;AAGhB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAA,sCAAe,GAAE,EAAE,CAAC;8BACxE,IAAI;IAEpB,qHAAqH;;uEAFjG;AAKpB;IAFC,IAAA,sBAAY,GAAE;IACd,IAAA,sBAAY,GAAE;;;;yEAGd;2CAxCU,gCAAgC;IAF5C,IAAA,gBAAM,EAAC,4BAA4B,CAAC;IACpC,IAAA,eAAK,EAAC,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;GACzB,gCAAgC,CAyC5C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"1716475165345-CreatePresentationDefinitions.d.ts","sourceRoot":"","sources":["../../../src/migrations/postgres/1716475165345-CreatePresentationDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAEzD,qBAAa,0CAA2C,YAAW,kBAAkB;IACnF,IAAI,SAA+C;IAEtC,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"1716475165345-CreatePresentationDefinitions.d.ts","sourceRoot":"","sources":["../../../src/migrations/postgres/1716475165345-CreatePresentationDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAEzD,qBAAa,0CAA2C,YAAW,kBAAkB;IACnF,IAAI,SAA+C;IAEtC,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAG3D"}
|
|
@@ -25,6 +25,7 @@ CREATE TABLE "PresentationDefinitionItem" (
|
|
|
25
25
|
"version" TEXT NOT NULL,
|
|
26
26
|
"purpose" TEXT,
|
|
27
27
|
"definition_payload" TEXT NOT NULL,
|
|
28
|
+
"dcql_payload" TEXT,
|
|
28
29
|
"created_at" TIMESTAMP NOT NULL DEFAULT now(),
|
|
29
30
|
"last_updated_at" TIMESTAMP NOT NULL DEFAULT now(),
|
|
30
31
|
CONSTRAINT "PK_PresentationDefinitionItem_id" PRIMARY KEY ("id"))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"1716475165345-CreatePresentationDefinitions.js","sourceRoot":"","sources":["../../../src/migrations/postgres/1716475165345-CreatePresentationDefinitions.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,MAAa,0CAA0C;IAAvD;QACE,SAAI,GAAG,4CAA4C,CAAA;
|
|
1
|
+
{"version":3,"file":"1716475165345-CreatePresentationDefinitions.js","sourceRoot":"","sources":["../../../src/migrations/postgres/1716475165345-CreatePresentationDefinitions.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,MAAa,0CAA0C;IAAvD;QACE,SAAI,GAAG,4CAA4C,CAAA;IAsBrD,CAAC;IApBc,EAAE,CAAC,WAAwB;;YACtC,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;;;;;2CAae,CAAC,CAAA;QAC1C,CAAC;KAAA;IAEY,IAAI,CAAC,WAAwB;;YACxC,MAAM,WAAW,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAA;QACpE,CAAC;KAAA;CACF;AAvBD,gGAuBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"1716475165344-CreatePresentationDefinitions.d.ts","sourceRoot":"","sources":["../../../src/migrations/sqlite/1716475165344-CreatePresentationDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAEzD,qBAAa,0CAA2C,YAAW,kBAAkB;IACnF,IAAI,SAA+C;IAEtC,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"1716475165344-CreatePresentationDefinitions.d.ts","sourceRoot":"","sources":["../../../src/migrations/sqlite/1716475165344-CreatePresentationDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAEzD,qBAAa,0CAA2C,YAAW,kBAAkB;IACnF,IAAI,SAA+C;IAEtC,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAG3D"}
|
|
@@ -24,6 +24,7 @@ class CreatePresentationDefinitions1716475165344 {
|
|
|
24
24
|
"version" varchar NOT NULL,
|
|
25
25
|
"purpose" varchar,
|
|
26
26
|
"definition_payload" varchar NOT NULL,
|
|
27
|
+
"dcql_payload" varchar,
|
|
27
28
|
"created_at" datetime NOT NULL DEFAULT (datetime('now')),
|
|
28
29
|
"last_updated_at" datetime NOT NULL DEFAULT (datetime('now')))`);
|
|
29
30
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"1716475165344-CreatePresentationDefinitions.js","sourceRoot":"","sources":["../../../src/migrations/sqlite/1716475165344-CreatePresentationDefinitions.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,MAAa,0CAA0C;IAAvD;QACE,SAAI,GAAG,4CAA4C,CAAA;
|
|
1
|
+
{"version":3,"file":"1716475165344-CreatePresentationDefinitions.js","sourceRoot":"","sources":["../../../src/migrations/sqlite/1716475165344-CreatePresentationDefinitions.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,MAAa,0CAA0C;IAAvD;QACE,SAAI,GAAG,4CAA4C,CAAA;IAqBrD,CAAC;IAnBc,EAAE,CAAC,WAAwB;;YACtC,MAAM,WAAW,CAAC,KAAK,CACrB;;;;;;;;;;mEAU6D,CAC9D,CAAA;QACH,CAAC;KAAA;IAEY,IAAI,CAAC,WAAwB;;YACxC,MAAM,WAAW,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAA;QACpE,CAAC;KAAA;CACF;AAtBD,gGAsBC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IPresentationDefinition } from '@sphereon/pex';
|
|
2
|
+
import { DcqlQueryREST } from '@sphereon/ssi-types';
|
|
2
3
|
export type PresentationDefinitionItem = {
|
|
3
4
|
id: string;
|
|
4
5
|
definitionId: string;
|
|
@@ -7,10 +8,11 @@ export type PresentationDefinitionItem = {
|
|
|
7
8
|
name?: string;
|
|
8
9
|
purpose?: string;
|
|
9
10
|
definitionPayload: IPresentationDefinition;
|
|
11
|
+
dcqlPayload?: DcqlQueryREST;
|
|
10
12
|
createdAt: Date;
|
|
11
13
|
lastUpdatedAt: Date;
|
|
12
14
|
};
|
|
13
15
|
export type NonPersistedPresentationDefinitionItem = Omit<PresentationDefinitionItem, 'id' | 'createdAt' | 'lastUpdatedAt'>;
|
|
14
16
|
export type PartialPresentationDefinitionItem = Partial<PresentationDefinitionItem>;
|
|
15
|
-
export type PresentationDefinitionItemFilter = Partial<Omit<PresentationDefinitionItem, 'definitionPayload'>>;
|
|
17
|
+
export type PresentationDefinitionItemFilter = Partial<Omit<PresentationDefinitionItem, 'definitionPayload' | 'dcqlPayload'>>;
|
|
16
18
|
//# sourceMappingURL=presentationDefinition.d.ts.map
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"presentationDefinition.d.ts","sourceRoot":"","sources":["../../../src/types/presentationDefinition/presentationDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,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,WAAW,CAAC,EAAE,aAAa,CAAA;IAC3B,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,GAAG,aAAa,CAAC,CAAC,CAAA"}
|
|
@@ -1 +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;
|
|
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;AAKnI,eAAO,MAAM,8BAA8B,WAAY,gCAAgC,KAAG,0BAezF,CAAA;AAED,eAAO,MAAM,oCAAoC,SAAU,sCAAsC,KAAG,gCAWnG,CAAA;AAMD,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,iCAAiC,EAAE,OAAO,EAAE,iCAAiC,GAAG,OAAO,CAgB1I"}
|
|
@@ -14,6 +14,7 @@ const presentationDefinitionItemFrom = (entity) => {
|
|
|
14
14
|
name: entity.name,
|
|
15
15
|
purpose: entity.purpose,
|
|
16
16
|
definitionPayload: JSON.parse(entity.definitionPayload),
|
|
17
|
+
dcqlPayload: JSON.parse(entity.dcqlPayload),
|
|
17
18
|
createdAt: entity.createdAt,
|
|
18
19
|
lastUpdatedAt: entity.lastUpdatedAt,
|
|
19
20
|
};
|
|
@@ -28,6 +29,7 @@ const presentationDefinitionEntityItemFrom = (item) => {
|
|
|
28
29
|
entity.name = item.name;
|
|
29
30
|
entity.purpose = item.purpose;
|
|
30
31
|
entity.definitionPayload = JSON.stringify(item.definitionPayload);
|
|
32
|
+
entity.dcqlPayload = JSON.stringify(item.dcqlPayload);
|
|
31
33
|
return entity;
|
|
32
34
|
};
|
|
33
35
|
exports.presentationDefinitionEntityItemFrom = presentationDefinitionEntityItemFrom;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MappingUtils.js","sourceRoot":"","sources":["../../../src/utils/presentationDefinition/MappingUtils.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"MappingUtils.js","sourceRoot":"","sources":["../../../src/utils/presentationDefinition/MappingUtils.ts"],"names":[],"mappings":";;;AAyCA,sEAgBC;AAzDD,6HAAyH;AAGzH,qCAAoC;AACpC,wDAA6D;AAGtD,MAAM,8BAA8B,GAAG,CAAC,MAAwC,EAA8B,EAAE;IACrH,MAAM,MAAM,GAA+B;QACzC,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,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAkB;QAC5D,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;KACpC,CAAA;IAED,OAAO,IAAA,0CAAwB,EAAC,MAAM,CAAC,CAAA;AACzC,CAAC,CAAA;AAfY,QAAA,8BAA8B,kCAe1C;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,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAY,CAAC,CAAA;IACtD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAXY,QAAA,oCAAoC,wCAWhD;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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk.data-store",
|
|
3
|
-
"version": "0.32.1-
|
|
3
|
+
"version": "0.32.1-next.113+5b666268",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -18,13 +18,14 @@
|
|
|
18
18
|
"@sphereon/pex": "5.0.0-unstable.28",
|
|
19
19
|
"@sphereon/ssi-sdk-ext.did-utils": "0.27.0",
|
|
20
20
|
"@sphereon/ssi-sdk-ext.identifier-resolution": "0.27.0",
|
|
21
|
-
"@sphereon/ssi-sdk.agent-config": "0.32.1-
|
|
22
|
-
"@sphereon/ssi-sdk.core": "0.32.1-
|
|
23
|
-
"@sphereon/ssi-types": "0.32.1-
|
|
21
|
+
"@sphereon/ssi-sdk.agent-config": "0.32.1-next.113+5b666268",
|
|
22
|
+
"@sphereon/ssi-sdk.core": "0.32.1-next.113+5b666268",
|
|
23
|
+
"@sphereon/ssi-types": "0.32.1-next.113+5b666268",
|
|
24
24
|
"@veramo/core": "4.2.0",
|
|
25
25
|
"@veramo/utils": "4.2.0",
|
|
26
26
|
"blakejs": "^1.2.1",
|
|
27
27
|
"class-validator": "^0.14.1",
|
|
28
|
+
"dcql": "0.2.19",
|
|
28
29
|
"debug": "^4.3.5",
|
|
29
30
|
"typeorm": "^0.3.20"
|
|
30
31
|
},
|
|
@@ -53,5 +54,5 @@
|
|
|
53
54
|
"Contact Store"
|
|
54
55
|
],
|
|
55
56
|
"nx": {},
|
|
56
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "5b666268b482b6a08a6edc00b4b713faf69247e1"
|
|
57
58
|
}
|
|
@@ -24,6 +24,83 @@ describe('PresentationDefinitionItemEntity tests', (): void => {
|
|
|
24
24
|
await dbConnection.destroy()
|
|
25
25
|
})
|
|
26
26
|
|
|
27
|
+
it('should create and retrieve PresentationDefinitionItemEntity with dcqlPayload', async (): Promise<void> => {
|
|
28
|
+
const repository = dbConnection.getRepository(PresentationDefinitionItemEntity)
|
|
29
|
+
const entity = new PresentationDefinitionItemEntity()
|
|
30
|
+
entity.definitionId = 'definition1'
|
|
31
|
+
entity.version = '1.0'
|
|
32
|
+
entity.definitionPayload = JSON.stringify({ id: 'definition1', input_descriptors: [] })
|
|
33
|
+
entity.dcqlPayload = JSON.stringify({
|
|
34
|
+
credentials: [
|
|
35
|
+
{
|
|
36
|
+
id: 'credential1',
|
|
37
|
+
format: 'jwt_vc',
|
|
38
|
+
claims: [
|
|
39
|
+
{
|
|
40
|
+
namespace: 'test',
|
|
41
|
+
claim_name: 'testClaim',
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
})
|
|
47
|
+
|
|
48
|
+
const savedEntity = await repository.save(entity)
|
|
49
|
+
expect(savedEntity).toBeDefined()
|
|
50
|
+
expect(savedEntity.id).toBeDefined()
|
|
51
|
+
expect(savedEntity.dcqlPayload).toBeDefined()
|
|
52
|
+
|
|
53
|
+
const retrievedEntity = await repository.findOneBy({ id: savedEntity.id })
|
|
54
|
+
expect(retrievedEntity).toBeDefined()
|
|
55
|
+
expect(retrievedEntity!.dcqlPayload).toBeDefined()
|
|
56
|
+
const parsedDcql = JSON.parse(retrievedEntity!.dcqlPayload)
|
|
57
|
+
expect(parsedDcql.credentials[0].id).toEqual('credential1')
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
it('should update PresentationDefinitionItemEntity dcqlPayload', async (): Promise<void> => {
|
|
61
|
+
const repository = dbConnection.getRepository(PresentationDefinitionItemEntity)
|
|
62
|
+
const entity = new PresentationDefinitionItemEntity()
|
|
63
|
+
entity.definitionId = 'definition1'
|
|
64
|
+
entity.version = '1.0'
|
|
65
|
+
entity.definitionPayload = JSON.stringify({ id: 'definition1', input_descriptors: [] })
|
|
66
|
+
entity.dcqlPayload = JSON.stringify({
|
|
67
|
+
credentials: [
|
|
68
|
+
{
|
|
69
|
+
id: 'credential1',
|
|
70
|
+
format: 'jwt_vc',
|
|
71
|
+
claims: [
|
|
72
|
+
{
|
|
73
|
+
namespace: 'test',
|
|
74
|
+
claim_name: 'testClaim',
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
const savedEntity = await repository.save(entity)
|
|
82
|
+
expect(savedEntity).toBeDefined()
|
|
83
|
+
|
|
84
|
+
const updatedDcql = {
|
|
85
|
+
credentials: [
|
|
86
|
+
{
|
|
87
|
+
id: 'credential2',
|
|
88
|
+
format: 'jwt_vc',
|
|
89
|
+
claims: [
|
|
90
|
+
{
|
|
91
|
+
namespace: 'test',
|
|
92
|
+
claim_name: 'updatedClaim',
|
|
93
|
+
},
|
|
94
|
+
],
|
|
95
|
+
},
|
|
96
|
+
],
|
|
97
|
+
}
|
|
98
|
+
savedEntity.dcqlPayload = JSON.stringify(updatedDcql)
|
|
99
|
+
const updatedEntity = await repository.save(savedEntity)
|
|
100
|
+
expect(updatedEntity).toBeDefined()
|
|
101
|
+
expect(JSON.parse(updatedEntity.dcqlPayload).credentials[0].id).toEqual('credential2')
|
|
102
|
+
})
|
|
103
|
+
|
|
27
104
|
it('should create and retrieve PresentationDefinitionItemEntity', async (): Promise<void> => {
|
|
28
105
|
const repository = dbConnection.getRepository(PresentationDefinitionItemEntity)
|
|
29
106
|
const entity = new PresentationDefinitionItemEntity()
|
|
@@ -25,10 +25,14 @@ export class PresentationDefinitionItemEntity extends BaseEntity {
|
|
|
25
25
|
@Column({ name: 'name', length: 255, type: 'varchar', nullable: true, unique: false })
|
|
26
26
|
name?: string
|
|
27
27
|
|
|
28
|
-
@Column({ name: 'definition_payload', type: 'text', nullable: false, unique: false })
|
|
29
|
-
@IsNotEmpty({ message: 'A blank definition payload field is not allowed' })
|
|
28
|
+
@Column({ name: 'definition_payload', type: 'text', nullable: false, unique: false }) // TODO should this become nullable now we have dcqlPayload?
|
|
29
|
+
@IsNotEmpty({ message: 'A blank PD definition payload field is not allowed' })
|
|
30
30
|
definitionPayload!: string
|
|
31
31
|
|
|
32
|
+
@Column({ name: 'dcql_payload', type: 'text', nullable: true, unique: false })
|
|
33
|
+
@IsNotEmpty({ message: 'A blank dcql definition payload field is not allowed' })
|
|
34
|
+
dcqlPayload!: string
|
|
35
|
+
|
|
32
36
|
@CreateDateColumn({ name: 'created_at', nullable: false, type: typeOrmDateTime() })
|
|
33
37
|
createdAt!: Date
|
|
34
38
|
|
|
@@ -13,6 +13,7 @@ CREATE TABLE "PresentationDefinitionItem" (
|
|
|
13
13
|
"version" TEXT NOT NULL,
|
|
14
14
|
"purpose" TEXT,
|
|
15
15
|
"definition_payload" TEXT NOT NULL,
|
|
16
|
+
"dcql_payload" TEXT,
|
|
16
17
|
"created_at" TIMESTAMP NOT NULL DEFAULT now(),
|
|
17
18
|
"last_updated_at" TIMESTAMP NOT NULL DEFAULT now(),
|
|
18
19
|
CONSTRAINT "PK_PresentationDefinitionItem_id" PRIMARY KEY ("id"))
|
|
@@ -13,6 +13,7 @@ export class CreatePresentationDefinitions1716475165344 implements MigrationInte
|
|
|
13
13
|
"version" varchar NOT NULL,
|
|
14
14
|
"purpose" varchar,
|
|
15
15
|
"definition_payload" varchar NOT NULL,
|
|
16
|
+
"dcql_payload" varchar,
|
|
16
17
|
"created_at" datetime NOT NULL DEFAULT (datetime('now')),
|
|
17
18
|
"last_updated_at" datetime NOT NULL DEFAULT (datetime('now')))`,
|
|
18
19
|
)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IPresentationDefinition } from '@sphereon/pex'
|
|
2
|
+
import { DcqlQueryREST } from '@sphereon/ssi-types'
|
|
2
3
|
|
|
3
4
|
export type PresentationDefinitionItem = {
|
|
4
5
|
id: string
|
|
@@ -8,10 +9,11 @@ export type PresentationDefinitionItem = {
|
|
|
8
9
|
name?: string
|
|
9
10
|
purpose?: string
|
|
10
11
|
definitionPayload: IPresentationDefinition
|
|
12
|
+
dcqlPayload?: DcqlQueryREST
|
|
11
13
|
createdAt: Date
|
|
12
14
|
lastUpdatedAt: Date
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
export type NonPersistedPresentationDefinitionItem = Omit<PresentationDefinitionItem, 'id' | 'createdAt' | 'lastUpdatedAt'>
|
|
16
18
|
export type PartialPresentationDefinitionItem = Partial<PresentationDefinitionItem>
|
|
17
|
-
export type PresentationDefinitionItemFilter = Partial<Omit<PresentationDefinitionItem, 'definitionPayload'
|
|
19
|
+
export type PresentationDefinitionItemFilter = Partial<Omit<PresentationDefinitionItem, 'definitionPayload' | 'dcqlPayload'>>
|
|
@@ -3,6 +3,7 @@ import { IPresentationDefinition } from '@sphereon/pex'
|
|
|
3
3
|
import { NonPersistedPresentationDefinitionItem, PartialPresentationDefinitionItem, PresentationDefinitionItem } from '../../types'
|
|
4
4
|
import { blake2bHex } from 'blakejs'
|
|
5
5
|
import { replaceNullWithUndefined } from '../FormattingUtils'
|
|
6
|
+
import { DcqlQueryREST } from '@sphereon/ssi-types'
|
|
6
7
|
|
|
7
8
|
export const presentationDefinitionItemFrom = (entity: PresentationDefinitionItemEntity): PresentationDefinitionItem => {
|
|
8
9
|
const result: PresentationDefinitionItem = {
|
|
@@ -13,6 +14,7 @@ export const presentationDefinitionItemFrom = (entity: PresentationDefinitionIte
|
|
|
13
14
|
name: entity.name,
|
|
14
15
|
purpose: entity.purpose,
|
|
15
16
|
definitionPayload: JSON.parse(entity.definitionPayload) as IPresentationDefinition,
|
|
17
|
+
dcqlPayload: JSON.parse(entity.dcqlPayload) as DcqlQueryREST,
|
|
16
18
|
createdAt: entity.createdAt,
|
|
17
19
|
lastUpdatedAt: entity.lastUpdatedAt,
|
|
18
20
|
}
|
|
@@ -29,6 +31,7 @@ export const presentationDefinitionEntityItemFrom = (item: NonPersistedPresentat
|
|
|
29
31
|
entity.name = item.name
|
|
30
32
|
entity.purpose = item.purpose
|
|
31
33
|
entity.definitionPayload = JSON.stringify(item.definitionPayload!)
|
|
34
|
+
entity.dcqlPayload = JSON.stringify(item.dcqlPayload!)
|
|
32
35
|
return entity
|
|
33
36
|
}
|
|
34
37
|
|