@sphereon/ssi-sdk.pd-manager 0.34.1-fix.117 → 0.34.1-fix.143

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/index.cjs CHANGED
@@ -1164,14 +1164,13 @@ var PDManager = class {
1164
1164
  versionControlMode: "AutoIncrement"
1165
1165
  };
1166
1166
  const { version, tenantId } = definitionItem;
1167
- const definitionId = definitionItem.definitionId ?? definitionItem.definitionPayload.id;
1167
+ const definitionId = definitionItem.definitionId;
1168
1168
  let { id } = definitionItem;
1169
1169
  if (id !== void 0 && versionControlMode !== "Overwrite") {
1170
1170
  id = void 0;
1171
1171
  }
1172
1172
  const nonPersistedDefinitionItem = {
1173
1173
  ...definitionItem,
1174
- definitionId,
1175
1174
  version: version ?? "1"
1176
1175
  };
1177
1176
  const existing = await this.store.getDefinitions({
@@ -1219,24 +1218,36 @@ var PDManager = class {
1219
1218
  existingItem.definitionId = definitionItem.definitionId;
1220
1219
  existingItem.version = version ?? existingItem.version ?? "1";
1221
1220
  existingItem.tenantId = definitionItem.tenantId;
1222
- existingItem.name = definitionItem.definitionPayload.name ?? definitionItem.name;
1223
- existingItem.purpose = definitionItem.definitionPayload.purpose ?? definitionItem.purpose;
1221
+ existingItem.name = definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name ?? definitionItem.name;
1222
+ existingItem.purpose = definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose ?? definitionItem.purpose;
1223
+ existingItem.dcqlPayload = definitionItem.dcqlPayload;
1224
1224
  existingItem.definitionPayload = definitionItem.definitionPayload;
1225
1225
  return await this.store.updateDefinition(existingItem);
1226
1226
  } else {
1227
- return await this.store.addDefinition(definitionItem);
1227
+ const newDefinitionItem = {
1228
+ ...definitionItem,
1229
+ name: definitionItem.name ?? definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name,
1230
+ purpose: definitionItem.purpose ?? definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose
1231
+ };
1232
+ return await this.store.addDefinition(newDefinitionItem);
1228
1233
  }
1229
1234
  }
1230
1235
  async handleOverwriteLatestMode(latestVersionItem, definitionItem) {
1231
1236
  if (latestVersionItem) {
1232
1237
  latestVersionItem.definitionId = definitionItem.definitionId;
1233
1238
  latestVersionItem.tenantId = definitionItem.tenantId;
1234
- latestVersionItem.name = definitionItem.name;
1235
- latestVersionItem.purpose = definitionItem.purpose;
1239
+ latestVersionItem.name = definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name ?? definitionItem.name;
1240
+ latestVersionItem.purpose = definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose ?? definitionItem.purpose;
1236
1241
  latestVersionItem.definitionPayload = definitionItem.definitionPayload;
1242
+ latestVersionItem.dcqlPayload = definitionItem.dcqlPayload;
1237
1243
  return await this.store.updateDefinition(latestVersionItem);
1238
1244
  } else {
1239
- return await this.store.addDefinition(definitionItem);
1245
+ const newDefinitionItem = {
1246
+ ...definitionItem,
1247
+ name: definitionItem.name ?? definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name,
1248
+ purpose: definitionItem.purpose ?? definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose
1249
+ };
1250
+ return await this.store.addDefinition(newDefinitionItem);
1240
1251
  }
1241
1252
  }
1242
1253
  async handleManualMode(existingItem, definitionItem, tenantId, version) {
@@ -1272,8 +1283,13 @@ var PDManager = class {
1272
1283
  resultVersion += `-${incrementedSuffix}`;
1273
1284
  }
1274
1285
  }
1275
- definitionItem.version = resultVersion;
1276
- return await this.store.addDefinition(definitionItem);
1286
+ const newDefinitionItem = {
1287
+ ...definitionItem,
1288
+ version: resultVersion,
1289
+ name: definitionItem.name ?? definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name,
1290
+ purpose: definitionItem.purpose ?? definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose
1291
+ };
1292
+ return await this.store.addDefinition(newDefinitionItem);
1277
1293
  }
1278
1294
  normalizeToSemverVersionFormat(version) {
1279
1295
  const defaultVersion = "1.0.0";
@@ -1 +1 @@
1
- {"version":3,"sources":["../plugin.schema.json","../src/index.ts","../src/agent/PDManager.ts"],"sourcesContent":["{\n \"IPDManager\": {\n \"components\": {\n \"schemas\": {\n \"DeleteDefinitionItemArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"itemId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"itemId\"],\n \"additionalProperties\": false\n },\n \"DeleteDefinitionItemsArgs\": {\n \"$ref\": \"#/components/schemas/GetDefinitionItemsArgs\"\n },\n \"GetDefinitionItemsArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"filter\": {\n \"$ref\": \"#/components/schemas/FindDefinitionArgs\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/FetchOptions\"\n }\n },\n \"additionalProperties\": false\n },\n \"FindDefinitionArgs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/PresentationDefinitionItemFilter\"\n }\n },\n \"PresentationDefinitionItemFilter\": {\n \"$ref\": \"#/components/schemas/Partial<Omit<PresentationDefinitionItem,(\\\"definitionPayload\\\"|\\\"dcqlPayload\\\")>>\"\n },\n \"Partial<Omit<PresentationDefinitionItem,(\\\"definitionPayload\\\"|\\\"dcqlPayload\\\")>>\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"definitionId\": {\n \"type\": \"string\"\n },\n \"tenantId\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"lastUpdatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"additionalProperties\": false\n },\n \"FetchOptions\": {\n \"type\": \"object\",\n \"properties\": {\n \"showVersionHistory\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"GetDefinitionItemArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"itemId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"itemId\"],\n \"additionalProperties\": false\n },\n \"PresentationDefinitionItem\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"definitionId\": {\n \"type\": \"string\"\n },\n \"tenantId\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"definitionPayload\": {\n \"$ref\": \"#/components/schemas/IPresentationDefinition\"\n },\n \"dcqlPayload\": {\n \"$ref\": \"#/components/schemas/DcqlQueryREST\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"lastUpdatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\"id\", \"definitionId\", \"version\", \"definitionPayload\", \"createdAt\", \"lastUpdatedAt\"],\n \"additionalProperties\": false\n },\n \"IPresentationDefinition\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/PresentationDefinitionV1\"\n },\n {\n \"$ref\": \"#/components/schemas/PresentationDefinitionV2\"\n }\n ]\n },\n \"PresentationDefinitionV1\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"$ref\": \"#/components/schemas/Format\"\n },\n \"submission_requirements\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SubmissionRequirement\"\n }\n },\n \"input_descriptors\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/InputDescriptorV1\"\n }\n }\n },\n \"required\": [\"id\", \"input_descriptors\"],\n \"additionalProperties\": false\n },\n \"Format\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwt\": {\n \"$ref\": \"#/components/schemas/JwtObject\"\n },\n \"jwt_vc\": {\n \"$ref\": \"#/components/schemas/JwtObject\"\n },\n \"jwt_vc_json\": {\n \"$ref\": \"#/components/schemas/JwtObject\"\n },\n \"jwt_vp\": {\n \"$ref\": \"#/components/schemas/JwtObject\"\n },\n \"jwt_vp_json\": {\n \"$ref\": \"#/components/schemas/JwtObject\"\n },\n \"ldp\": {\n \"$ref\": \"#/components/schemas/LdpObject\"\n },\n \"ldp_vc\": {\n \"$ref\": \"#/components/schemas/LdpObject\"\n },\n \"ldp_vp\": {\n \"$ref\": \"#/components/schemas/LdpObject\"\n },\n \"di\": {\n \"$ref\": \"#/components/schemas/DiObject\"\n },\n \"di_vc\": {\n \"$ref\": \"#/components/schemas/DiObject\"\n },\n \"di_vp\": {\n \"$ref\": \"#/components/schemas/DiObject\"\n },\n \"dc+sd-jwt\": {\n \"$ref\": \"#/components/schemas/SdJwtObject\"\n },\n \"mso_mdoc\": {\n \"$ref\": \"#/components/schemas/MsoMdocObject\"\n }\n },\n \"additionalProperties\": false\n },\n \"JwtObject\": {\n \"type\": \"object\",\n \"properties\": {\n \"alg\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"alg\"],\n \"additionalProperties\": false\n },\n \"LdpObject\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof_type\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"proof_type\"],\n \"additionalProperties\": false\n },\n \"DiObject\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof_type\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"cryptosuite\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"proof_type\", \"cryptosuite\"],\n \"additionalProperties\": false\n },\n \"SdJwtObject\": {\n \"type\": \"object\",\n \"properties\": {\n \"sd-jwt_alg_values\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"kb-jwt_alg_values\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"MsoMdocObject\": {\n \"type\": \"object\",\n \"properties\": {\n \"alg\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"alg\"],\n \"additionalProperties\": false\n },\n \"SubmissionRequirement\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"rule\": {\n \"$ref\": \"#/components/schemas/Rules\"\n },\n \"count\": {\n \"type\": \"number\"\n },\n \"min\": {\n \"type\": \"number\"\n },\n \"max\": {\n \"type\": \"number\"\n },\n \"from\": {\n \"type\": \"string\"\n },\n \"from_nested\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SubmissionRequirement\"\n }\n }\n },\n \"required\": [\"rule\"],\n \"additionalProperties\": false\n },\n \"Rules\": {\n \"type\": \"string\",\n \"enum\": [\"all\", \"pick\"]\n },\n \"InputDescriptorV1\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"group\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"schema\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Schema\"\n }\n },\n \"issuance\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Issuance\"\n }\n },\n \"constraints\": {\n \"$ref\": \"#/components/schemas/ConstraintsV1\"\n }\n },\n \"required\": [\"id\", \"schema\"],\n \"additionalProperties\": false\n },\n \"Schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"uri\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\"uri\"],\n \"additionalProperties\": false\n },\n \"Issuance\": {\n \"type\": \"object\",\n \"properties\": {\n \"manifest\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": {}\n },\n \"ConstraintsV1\": {\n \"type\": \"object\",\n \"properties\": {\n \"limit_disclosure\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n },\n \"statuses\": {\n \"$ref\": \"#/components/schemas/Statuses\"\n },\n \"fields\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/FieldV1\"\n }\n },\n \"subject_is_issuer\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n },\n \"is_holder\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/HolderSubject\"\n }\n },\n \"same_subject\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/HolderSubject\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"Optionality\": {\n \"type\": \"string\",\n \"enum\": [\"required\", \"preferred\"]\n },\n \"Statuses\": {\n \"type\": \"object\",\n \"properties\": {\n \"active\": {\n \"$ref\": \"#/components/schemas/PdStatus\"\n },\n \"suspended\": {\n \"$ref\": \"#/components/schemas/PdStatus\"\n },\n \"revoked\": {\n \"$ref\": \"#/components/schemas/PdStatus\"\n }\n },\n \"additionalProperties\": false\n },\n \"PdStatus\": {\n \"type\": \"object\",\n \"properties\": {\n \"directive\": {\n \"$ref\": \"#/components/schemas/Directives\"\n }\n },\n \"additionalProperties\": false\n },\n \"Directives\": {\n \"type\": \"string\",\n \"enum\": [\"required\", \"allowed\", \"disallowed\"]\n },\n \"FieldV1\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"filter\": {\n \"$ref\": \"#/components/schemas/FilterV1\"\n },\n \"predicate\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n }\n },\n \"required\": [\"path\"],\n \"additionalProperties\": false\n },\n \"FilterV1\": {\n \"type\": \"object\",\n \"properties\": {\n \"const\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n },\n \"enum\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n }\n },\n \"exclusiveMinimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"exclusiveMaximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"format\": {\n \"type\": \"string\"\n },\n \"minLength\": {\n \"type\": \"number\"\n },\n \"maxLength\": {\n \"type\": \"number\"\n },\n \"minimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"maximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"not\": {\n \"type\": \"object\"\n },\n \"pattern\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"OneOfNumberStringBoolean\": {\n \"type\": [\"boolean\", \"number\", \"string\"]\n },\n \"OneOfNumberString\": {\n \"type\": [\"number\", \"string\"]\n },\n \"HolderSubject\": {\n \"type\": \"object\",\n \"properties\": {\n \"field_id\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"directive\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n }\n },\n \"required\": [\"field_id\", \"directive\"],\n \"additionalProperties\": false\n },\n \"PresentationDefinitionV2\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"$ref\": \"#/components/schemas/Format\"\n },\n \"submission_requirements\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SubmissionRequirement\"\n }\n },\n \"input_descriptors\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/InputDescriptorV2\"\n }\n },\n \"frame\": {\n \"type\": \"object\"\n }\n },\n \"required\": [\"id\", \"input_descriptors\"],\n \"additionalProperties\": false\n },\n \"InputDescriptorV2\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"$ref\": \"#/components/schemas/Format\"\n },\n \"group\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"issuance\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Issuance\"\n }\n },\n \"constraints\": {\n \"$ref\": \"#/components/schemas/ConstraintsV2\"\n }\n },\n \"required\": [\"id\", \"constraints\"],\n \"additionalProperties\": false\n },\n \"ConstraintsV2\": {\n \"type\": \"object\",\n \"properties\": {\n \"limit_disclosure\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n },\n \"statuses\": {\n \"$ref\": \"#/components/schemas/Statuses\"\n },\n \"fields\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/FieldV2\"\n }\n },\n \"subject_is_issuer\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n },\n \"is_holder\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/HolderSubject\"\n }\n },\n \"same_subject\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/HolderSubject\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"FieldV2\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"filter\": {\n \"$ref\": \"#/components/schemas/FilterV2\"\n },\n \"predicate\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n },\n \"intent_to_retain\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\"path\"],\n \"additionalProperties\": false\n },\n \"FilterV2\": {\n \"type\": \"object\",\n \"properties\": {\n \"const\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n },\n \"enum\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n }\n },\n \"exclusiveMinimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"exclusiveMaximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"format\": {\n \"type\": \"string\"\n },\n \"formatMaximum\": {\n \"type\": \"string\"\n },\n \"formatMinimum\": {\n \"type\": \"string\"\n },\n \"formatExclusiveMaximum\": {\n \"type\": \"string\"\n },\n \"formatExclusiveMinimum\": {\n \"type\": \"string\"\n },\n \"minLength\": {\n \"type\": \"number\"\n },\n \"maxLength\": {\n \"type\": \"number\"\n },\n \"minimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"maximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"not\": {\n \"type\": \"object\"\n },\n \"pattern\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"contains\": {\n \"$ref\": \"#/components/schemas/FilterV2\"\n },\n \"items\": {\n \"$ref\": \"#/components/schemas/FilterV2Items\"\n }\n },\n \"additionalProperties\": false\n },\n \"FilterV2Items\": {\n \"type\": \"object\",\n \"properties\": {\n \"const\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n },\n \"enum\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n }\n },\n \"exclusiveMinimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"exclusiveMaximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"format\": {\n \"type\": \"string\"\n },\n \"formatMaximum\": {\n \"type\": \"string\"\n },\n \"formatMinimum\": {\n \"type\": \"string\"\n },\n \"formatExclusiveMaximum\": {\n \"type\": \"string\"\n },\n \"formatExclusiveMinimum\": {\n \"type\": \"string\"\n },\n \"minLength\": {\n \"type\": \"number\"\n },\n \"maxLength\": {\n \"type\": \"number\"\n },\n \"minimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"maximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"not\": {\n \"type\": \"object\"\n },\n \"pattern\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"contains\": {\n \"$ref\": \"#/components/schemas/FilterV2\"\n },\n \"items\": {\n \"$ref\": \"#/components/schemas/FilterV2Items\"\n }\n },\n \"additionalProperties\": false\n },\n \"DcqlQueryREST\": {\n \"type\": \"object\",\n \"properties\": {\n \"credentials\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DcqlCredentialQuery\"\n }\n }\n },\n \"required\": [\"credentials\"],\n \"additionalProperties\": false\n },\n \"DcqlCredentialQuery\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"type\": \"string\"\n },\n \"alg\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"claims\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DcqlClaim\"\n }\n },\n \"meta\": {\n \"$ref\": \"#/components/schemas/Record<string,any>\"\n }\n },\n \"required\": [\"id\", \"format\", \"claims\"],\n \"additionalProperties\": false\n },\n \"DcqlClaim\": {\n \"type\": \"object\",\n \"properties\": {\n \"namespace\": {\n \"type\": \"string\"\n },\n \"claim_name\": {\n \"type\": \"string\"\n },\n \"filter\": {\n \"$ref\": \"#/components/schemas/DcqlFilter\"\n }\n },\n \"required\": [\"namespace\", \"claim_name\"],\n \"additionalProperties\": false\n },\n \"DcqlFilter\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\"string\", \"number\", \"boolean\"]\n },\n \"pattern\": {\n \"type\": \"string\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"maximum\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\"type\"],\n \"additionalProperties\": false\n },\n \"Record<string,any>\": {\n \"type\": \"object\"\n },\n \"HasDefinitionItemArgs\": {\n \"$ref\": \"#/components/schemas/GetDefinitionItemArgs\"\n },\n \"HasDefinitionItemsArgs\": {\n \"$ref\": \"#/components/schemas/GetDefinitionItemsArgs\"\n },\n \"PersistDefinitionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"definitionItem\": {\n \"$ref\": \"#/components/schemas/PersistPresentationDefinitionItem\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/PersistOptions\"\n }\n },\n \"required\": [\"definitionItem\"],\n \"additionalProperties\": false\n },\n \"PersistPresentationDefinitionItem\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"definitionId\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n },\n \"tenantId\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"definitionPayload\": {\n \"$ref\": \"#/components/schemas/IPresentationDefinition\"\n },\n \"dcqlPayload\": {\n \"$ref\": \"#/components/schemas/DcqlQueryREST\"\n }\n },\n \"required\": [\"definitionPayload\"]\n },\n \"PersistOptions\": {\n \"type\": \"object\",\n \"properties\": {\n \"versionControlMode\": {\n \"$ref\": \"#/components/schemas/VersionControlMode\"\n },\n \"versionIncrementReleaseType\": {\n \"$ref\": \"#/components/schemas/ReleaseType\"\n }\n },\n \"additionalProperties\": false\n },\n \"VersionControlMode\": {\n \"type\": \"string\",\n \"enum\": [\"AutoIncrement\", \"Manual\", \"Overwrite\", \"OverwriteLatest\"]\n },\n \"ReleaseType\": {\n \"type\": \"string\",\n \"enum\": [\"major\", \"premajor\", \"minor\", \"preminor\", \"patch\", \"prepatch\", \"prerelease\", \"release\"]\n }\n },\n \"methods\": {\n \"pdmDeleteDefinition\": {\n \"description\": \"Delete a single presentation definition records by primary key\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/DeleteDefinitionItemArgs\"\n },\n \"returnType\": {\n \"type\": \"boolean\"\n }\n },\n \"pdmDeleteDefinitions\": {\n \"description\": \"Delete multiple presentation definitions records using filters\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/DeleteDefinitionItemsArgs\"\n },\n \"returnType\": {\n \"type\": \"number\"\n }\n },\n \"pdmGetDefinition\": {\n \"description\": \"Get a single presentation definition records by primary key\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/GetDefinitionItemArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/PresentationDefinitionItem\"\n }\n },\n \"pdmGetDefinitions\": {\n \"description\": \"Find one or more presentation definition records using filters\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/GetDefinitionItemsArgs\"\n },\n \"returnType\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/PresentationDefinitionItem\"\n }\n }\n },\n \"pdmHasDefinition\": {\n \"description\": \"Checks whether a presentation definition record exists by primary key\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/HasDefinitionItemArgs\"\n },\n \"returnType\": {\n \"type\": \"boolean\"\n }\n },\n \"pdmHasDefinitions\": {\n \"description\": \"Checks whether one or more presentation definition records exist using filters\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/HasDefinitionItemsArgs\"\n },\n \"returnType\": {\n \"type\": \"boolean\"\n }\n },\n \"pdmPersistDefinition\": {\n \"description\": \"Check in a presentation definition. It has version control logic which will add or update presentation definition records and has settings for automatic version numbering.\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/PersistDefinitionArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/PresentationDefinitionItem\"\n }\n }\n }\n }\n }\n}\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { PDManager, pdManagerMethods } from './agent/PDManager'\nexport * from './types/IPDManager'\n\nexport type { ReleaseType } from 'semver'\n","import { IAgentPlugin } from '@veramo/core'\nimport {\n DeleteDefinitionItemArgs,\n DeleteDefinitionItemsArgs,\n GetDefinitionItemArgs,\n GetDefinitionItemsArgs,\n HasDefinitionItemArgs,\n HasDefinitionItemsArgs,\n IPDManager,\n PersistDefinitionArgs,\n schema,\n} from '../index'\nimport {\n AbstractPDStore,\n isPresentationDefinitionEqual,\n NonPersistedPresentationDefinitionItem,\n PresentationDefinitionItem,\n} from '@sphereon/ssi-sdk.data-store'\nimport semver from 'semver/preload'\nimport { ReleaseType } from 'semver'\n\n// Exposing the methods here for any REST implementation\nexport const pdManagerMethods: Array<string> = [\n 'pdmHasDefinition',\n 'pdmHasGetDefinitions',\n 'pdmGetDefinition',\n 'pdmGetDefinitions',\n 'pdmPersistDefinition',\n 'pdmDeleteDefinition',\n 'pdmDeleteDefinitions',\n]\n\n/**\n * {@inheritDoc IPDManager}\n */\nexport class PDManager implements IAgentPlugin {\n readonly schema = schema.IPDManager\n readonly methods: IPDManager = {\n pdmPersistDefinition: this.pdmPersistDefinition.bind(this),\n pdmHasDefinition: this.pdmHasDefinition.bind(this),\n pdmHasDefinitions: this.pdmHasDefinitions.bind(this),\n pdmGetDefinition: this.pdmGetDefinition.bind(this),\n pdmGetDefinitions: this.pdmGetDefinitions.bind(this),\n pdmDeleteDefinition: this.pdmDeleteDefinition.bind(this),\n pdmDeleteDefinitions: this.pdmDeleteDefinitions.bind(this),\n }\n\n private readonly store: AbstractPDStore\n\n constructor(options: { store: AbstractPDStore }) {\n this.store = options.store\n }\n\n /** {@inheritDoc IPDManager.pdmHasDefinition} */\n private async pdmHasDefinition(args: HasDefinitionItemArgs): Promise<boolean> {\n const { itemId } = args\n return this.store.hasDefinition({ itemId })\n }\n\n /** {@inheritDoc IPDManager.pdmHasDefinitions} */\n private async pdmHasDefinitions(args: HasDefinitionItemsArgs): Promise<boolean> {\n const { filter } = args\n return this.store.hasDefinitions({ filter })\n }\n\n /** {@inheritDoc IPDManager.pdmGetDefinition} */\n private async pdmGetDefinition(args: GetDefinitionItemArgs): Promise<PresentationDefinitionItem> {\n const { itemId } = args\n return this.store.getDefinition({ itemId })\n }\n\n /** {@inheritDoc IPDManager.pdmGetDefinitions} */\n private async pdmGetDefinitions(args: GetDefinitionItemsArgs): Promise<Array<PresentationDefinitionItem>> {\n const { filter, opts } = args\n const allDefinitions = await this.store.getDefinitions({ filter })\n let definitions: PresentationDefinitionItem[] = []\n if (opts == undefined || opts.showVersionHistory !== true) {\n const groupedByDefinitionId = allDefinitions.reduce(\n (acc, entity) => {\n if (!acc[entity.definitionId]) {\n acc[entity.definitionId] = []\n }\n acc[entity.definitionId].push(entity)\n return acc\n },\n {} as Record<string, PresentationDefinitionItem[]>,\n )\n definitions = Object.values(groupedByDefinitionId).map((entities) =>\n entities.reduce((highestVersionItem, baseItem) => {\n const baseVersion = this.normalizeToSemverVersionFormat(baseItem.version)\n const highestVersion = this.normalizeToSemverVersionFormat(highestVersionItem.version)\n return semver.gt(baseVersion, highestVersion) ? baseItem : highestVersionItem\n }),\n )\n } else {\n definitions = allDefinitions\n }\n return definitions\n }\n\n /** {@inheritDoc IPDManager.pdmDeleteDefinition} */\n private async pdmDeleteDefinition(args: DeleteDefinitionItemArgs): Promise<boolean> {\n return this.store.deleteDefinition(args).then((value) => true)\n }\n\n /** {@inheritDoc IPDManager.pdmDeleteDefinitions} */\n private async pdmDeleteDefinitions(args: DeleteDefinitionItemsArgs): Promise<number> {\n return this.store.deleteDefinitions(args)\n }\n\n /** {@inheritDoc IPDManager.pdmPersistDefinition} */\n private async pdmPersistDefinition(args: PersistDefinitionArgs): Promise<PresentationDefinitionItem> {\n const { definitionItem, opts } = args\n const { versionControlMode, versionIncrementReleaseType } = opts ?? { versionControlMode: 'AutoIncrement' }\n const { version, tenantId } = definitionItem\n const definitionId = definitionItem.definitionId ?? definitionItem.definitionPayload.id\n\n let { id } = definitionItem\n if (id !== undefined && versionControlMode !== 'Overwrite') {\n id = undefined\n }\n\n const nonPersistedDefinitionItem: NonPersistedPresentationDefinitionItem = {\n ...definitionItem,\n definitionId: definitionId,\n version: version ?? '1',\n }\n\n const existing = await this.store.getDefinitions({ filter: [{ id, definitionId, tenantId, version }] })\n const existingItem = existing[0]\n\n // Always fetch all definitions for the definitionId/tenantId and determine the truly latest version\n const allDefinitions = await this.store.getDefinitions({ filter: [{ definitionId, tenantId }] })\n allDefinitions.sort((a, b) => semver.compare(this.normalizeToSemverVersionFormat(a.version), this.normalizeToSemverVersionFormat(b.version)))\n const trulyLatestVersionItem = allDefinitions[allDefinitions.length - 1]\n\n let latestVersionItem: PresentationDefinitionItem | undefined = trulyLatestVersionItem\n\n // If a specific version exists and matches existingItem, we keep that as a base.\n // Otherwise we use the trulyLatestVersionItem\n if (existingItem && version) {\n latestVersionItem = trulyLatestVersionItem ?? existingItem\n }\n\n const isPayloadModified = !existingItem || !isPresentationDefinitionEqual(existingItem, definitionItem)\n if (!isPayloadModified) return existingItem\n\n switch (versionControlMode) {\n case 'Overwrite':\n return this.handleOverwriteMode(existingItem, nonPersistedDefinitionItem, version)\n case 'OverwriteLatest':\n return this.handleOverwriteLatestMode(latestVersionItem, nonPersistedDefinitionItem)\n case 'Manual':\n return this.handleManualMode(existingItem, nonPersistedDefinitionItem, tenantId, version)\n case 'AutoIncrement':\n return this.handleAutoIncrementMode(latestVersionItem, nonPersistedDefinitionItem, versionIncrementReleaseType ?? 'major')\n default:\n throw new Error(`Unknown version control mode: ${versionControlMode}`)\n }\n }\n\n private async handleOverwriteMode(\n existingItem: PresentationDefinitionItem | undefined,\n definitionItem: NonPersistedPresentationDefinitionItem,\n version: string | undefined,\n ): Promise<PresentationDefinitionItem> {\n if (existingItem) {\n existingItem.definitionId = definitionItem.definitionId\n existingItem.version = version ?? existingItem.version ?? '1'\n existingItem.tenantId = definitionItem.tenantId\n existingItem.name = definitionItem.definitionPayload.name ?? definitionItem.name\n existingItem.purpose = definitionItem.definitionPayload.purpose ?? definitionItem.purpose\n existingItem.definitionPayload = definitionItem.definitionPayload\n\n return await this.store.updateDefinition(existingItem)\n } else {\n return await this.store.addDefinition(definitionItem)\n }\n }\n\n private async handleOverwriteLatestMode(\n latestVersionItem: PresentationDefinitionItem | undefined,\n definitionItem: NonPersistedPresentationDefinitionItem,\n ): Promise<PresentationDefinitionItem> {\n if (latestVersionItem) {\n latestVersionItem.definitionId = definitionItem.definitionId\n latestVersionItem.tenantId = definitionItem.tenantId\n latestVersionItem.name = definitionItem.name\n latestVersionItem.purpose = definitionItem.purpose\n latestVersionItem.definitionPayload = definitionItem.definitionPayload\n\n return await this.store.updateDefinition(latestVersionItem)\n } else {\n return await this.store.addDefinition(definitionItem)\n }\n }\n\n private async handleManualMode(\n existingItem: PresentationDefinitionItem | undefined,\n definitionItem: NonPersistedPresentationDefinitionItem,\n tenantId: string | undefined,\n version: string | undefined,\n ): Promise<PresentationDefinitionItem> {\n if (existingItem && !isPresentationDefinitionEqual(existingItem, definitionItem)) {\n throw Error(\n `Cannot update definition ${definitionItem.definitionId} for tenant ${tenantId} version ${version} because definition exists and manual version control is enabled.`,\n )\n } else {\n return await this.store.addDefinition(definitionItem)\n }\n }\n\n private async handleAutoIncrementMode(\n latestVersionItem: PresentationDefinitionItem | undefined,\n definitionItem: NonPersistedPresentationDefinitionItem,\n releaseType: ReleaseType,\n ): Promise<PresentationDefinitionItem> {\n const defaultVersion = '1'\n let currentVersion = latestVersionItem?.version ?? definitionItem.version ?? defaultVersion\n let resultVersion: string\n\n if (!latestVersionItem) {\n resultVersion = currentVersion\n } else {\n let [baseVersion, preReleaseSuffix] = currentVersion.split(/-(.+)/)\n\n // Normalize the base version to at least 'major.minor.patch', that's what semver needs as input\n let normalizedBaseVersion = semver.coerce(baseVersion)?.version ?? `${defaultVersion}.0.0`\n let preReleaseIdentifier = preReleaseSuffix ? preReleaseSuffix.match(/^[a-zA-Z]+/)?.[0] : undefined\n let fullVersionToIncrement = preReleaseIdentifier ? `${normalizedBaseVersion}-${preReleaseSuffix}` : normalizedBaseVersion\n\n // Use semver to increment the version\n let incrementedVersion = semver.inc(fullVersionToIncrement, releaseType, undefined, preReleaseIdentifier)\n if (!incrementedVersion) {\n throw new Error(`Could not increment ${releaseType} version on ${currentVersion} ${preReleaseSuffix}`)\n }\n\n // Extract new base version to match the original input format\n let [incrementedBaseVersion, incrementedSuffix] = incrementedVersion.split(/-(.+)/)\n let originalParts = baseVersion.split('.')\n let newParts = incrementedBaseVersion.split('.')\n while (newParts.length > originalParts.length) {\n newParts.pop() // Reduce to original length by removing extra .0s\n }\n resultVersion = newParts.join('.')\n if (incrementedSuffix) {\n resultVersion += `-${incrementedSuffix}`\n }\n }\n\n definitionItem.version = resultVersion\n return await this.store.addDefinition(definitionItem)\n }\n\n private normalizeToSemverVersionFormat(version: string): string {\n const defaultVersion = '1.0.0'\n let [baseVersion, preReleaseSuffix] = version.split(/-(.+)/)\n\n // Normalize the base version to at least 'major.minor.patch', that's what semver needs as input\n let normalizedBaseVersion = semver.coerce(baseVersion)?.version ?? defaultVersion\n if (preReleaseSuffix) {\n normalizedBaseVersion += `-${preReleaseSuffix}`\n }\n\n return normalizedBaseVersion\n }\n}\n"],"mappings":"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","names":["module","pdManagerMethods","PDManager","schema","IPDManager","methods","pdmPersistDefinition","bind","pdmHasDefinition","pdmHasDefinitions","pdmGetDefinition","pdmGetDefinitions","pdmDeleteDefinition","pdmDeleteDefinitions","store","options","args","itemId","hasDefinition","filter","hasDefinitions","getDefinition","opts","allDefinitions","getDefinitions","definitions","undefined","showVersionHistory","groupedByDefinitionId","reduce","acc","entity","definitionId","push","Object","values","map","entities","highestVersionItem","baseItem","baseVersion","normalizeToSemverVersionFormat","version","highestVersion","semver","gt","deleteDefinition","then","value","deleteDefinitions","definitionItem","versionControlMode","versionIncrementReleaseType","tenantId","definitionPayload","id","nonPersistedDefinitionItem","existing","existingItem","sort","a","b","compare","trulyLatestVersionItem","length","latestVersionItem","isPayloadModified","isPresentationDefinitionEqual","handleOverwriteMode","handleOverwriteLatestMode","handleManualMode","handleAutoIncrementMode","Error","name","purpose","updateDefinition","addDefinition","releaseType","defaultVersion","currentVersion","resultVersion","preReleaseSuffix","split","normalizedBaseVersion","coerce","preReleaseIdentifier","match","fullVersionToIncrement","incrementedVersion","inc","incrementedBaseVersion","incrementedSuffix","originalParts","newParts","pop","join","schema","require"]}
1
+ {"version":3,"sources":["../plugin.schema.json","../src/index.ts","../src/agent/PDManager.ts"],"sourcesContent":["{\n \"IPDManager\": {\n \"components\": {\n \"schemas\": {\n \"DeleteDefinitionItemArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"itemId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"itemId\"],\n \"additionalProperties\": false\n },\n \"DeleteDefinitionItemsArgs\": {\n \"$ref\": \"#/components/schemas/GetDefinitionItemsArgs\"\n },\n \"GetDefinitionItemsArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"filter\": {\n \"$ref\": \"#/components/schemas/FindDefinitionArgs\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/FetchOptions\"\n }\n },\n \"additionalProperties\": false\n },\n \"FindDefinitionArgs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/PresentationDefinitionItemFilter\"\n }\n },\n \"PresentationDefinitionItemFilter\": {\n \"$ref\": \"#/components/schemas/Partial<Omit<PresentationDefinitionItem,(\\\"definitionPayload\\\"|\\\"dcqlPayload\\\")>>\"\n },\n \"Partial<Omit<PresentationDefinitionItem,(\\\"definitionPayload\\\"|\\\"dcqlPayload\\\")>>\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"definitionId\": {\n \"type\": \"string\"\n },\n \"tenantId\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"lastUpdatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"additionalProperties\": false\n },\n \"FetchOptions\": {\n \"type\": \"object\",\n \"properties\": {\n \"showVersionHistory\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"GetDefinitionItemArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"itemId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"itemId\"],\n \"additionalProperties\": false\n },\n \"PresentationDefinitionItem\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"definitionId\": {\n \"type\": \"string\"\n },\n \"tenantId\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"definitionPayload\": {\n \"$ref\": \"#/components/schemas/IPresentationDefinition\"\n },\n \"dcqlPayload\": {\n \"$ref\": \"#/components/schemas/DcqlQueryREST\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"lastUpdatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\"id\", \"definitionId\", \"version\", \"definitionPayload\", \"createdAt\", \"lastUpdatedAt\"],\n \"additionalProperties\": false\n },\n \"IPresentationDefinition\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/PresentationDefinitionV1\"\n },\n {\n \"$ref\": \"#/components/schemas/PresentationDefinitionV2\"\n }\n ]\n },\n \"PresentationDefinitionV1\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"$ref\": \"#/components/schemas/Format\"\n },\n \"submission_requirements\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SubmissionRequirement\"\n }\n },\n \"input_descriptors\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/InputDescriptorV1\"\n }\n }\n },\n \"required\": [\"id\", \"input_descriptors\"],\n \"additionalProperties\": false\n },\n \"Format\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwt\": {\n \"$ref\": \"#/components/schemas/JwtObject\"\n },\n \"jwt_vc\": {\n \"$ref\": \"#/components/schemas/JwtObject\"\n },\n \"jwt_vc_json\": {\n \"$ref\": \"#/components/schemas/JwtObject\"\n },\n \"jwt_vp\": {\n \"$ref\": \"#/components/schemas/JwtObject\"\n },\n \"jwt_vp_json\": {\n \"$ref\": \"#/components/schemas/JwtObject\"\n },\n \"ldp\": {\n \"$ref\": \"#/components/schemas/LdpObject\"\n },\n \"ldp_vc\": {\n \"$ref\": \"#/components/schemas/LdpObject\"\n },\n \"ldp_vp\": {\n \"$ref\": \"#/components/schemas/LdpObject\"\n },\n \"di\": {\n \"$ref\": \"#/components/schemas/DiObject\"\n },\n \"di_vc\": {\n \"$ref\": \"#/components/schemas/DiObject\"\n },\n \"di_vp\": {\n \"$ref\": \"#/components/schemas/DiObject\"\n },\n \"dc+sd-jwt\": {\n \"$ref\": \"#/components/schemas/SdJwtObject\"\n },\n \"mso_mdoc\": {\n \"$ref\": \"#/components/schemas/MsoMdocObject\"\n }\n },\n \"additionalProperties\": false\n },\n \"JwtObject\": {\n \"type\": \"object\",\n \"properties\": {\n \"alg\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"alg\"],\n \"additionalProperties\": false\n },\n \"LdpObject\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof_type\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"proof_type\"],\n \"additionalProperties\": false\n },\n \"DiObject\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof_type\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"cryptosuite\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"proof_type\", \"cryptosuite\"],\n \"additionalProperties\": false\n },\n \"SdJwtObject\": {\n \"type\": \"object\",\n \"properties\": {\n \"sd-jwt_alg_values\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"kb-jwt_alg_values\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"MsoMdocObject\": {\n \"type\": \"object\",\n \"properties\": {\n \"alg\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"alg\"],\n \"additionalProperties\": false\n },\n \"SubmissionRequirement\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"rule\": {\n \"$ref\": \"#/components/schemas/Rules\"\n },\n \"count\": {\n \"type\": \"number\"\n },\n \"min\": {\n \"type\": \"number\"\n },\n \"max\": {\n \"type\": \"number\"\n },\n \"from\": {\n \"type\": \"string\"\n },\n \"from_nested\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SubmissionRequirement\"\n }\n }\n },\n \"required\": [\"rule\"],\n \"additionalProperties\": false\n },\n \"Rules\": {\n \"type\": \"string\",\n \"enum\": [\"all\", \"pick\"]\n },\n \"InputDescriptorV1\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"group\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"schema\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Schema\"\n }\n },\n \"issuance\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Issuance\"\n }\n },\n \"constraints\": {\n \"$ref\": \"#/components/schemas/ConstraintsV1\"\n }\n },\n \"required\": [\"id\", \"schema\"],\n \"additionalProperties\": false\n },\n \"Schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"uri\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\"uri\"],\n \"additionalProperties\": false\n },\n \"Issuance\": {\n \"type\": \"object\",\n \"properties\": {\n \"manifest\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": {}\n },\n \"ConstraintsV1\": {\n \"type\": \"object\",\n \"properties\": {\n \"limit_disclosure\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n },\n \"statuses\": {\n \"$ref\": \"#/components/schemas/Statuses\"\n },\n \"fields\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/FieldV1\"\n }\n },\n \"subject_is_issuer\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n },\n \"is_holder\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/HolderSubject\"\n }\n },\n \"same_subject\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/HolderSubject\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"Optionality\": {\n \"type\": \"string\",\n \"enum\": [\"required\", \"preferred\"]\n },\n \"Statuses\": {\n \"type\": \"object\",\n \"properties\": {\n \"active\": {\n \"$ref\": \"#/components/schemas/PdStatus\"\n },\n \"suspended\": {\n \"$ref\": \"#/components/schemas/PdStatus\"\n },\n \"revoked\": {\n \"$ref\": \"#/components/schemas/PdStatus\"\n }\n },\n \"additionalProperties\": false\n },\n \"PdStatus\": {\n \"type\": \"object\",\n \"properties\": {\n \"directive\": {\n \"$ref\": \"#/components/schemas/Directives\"\n }\n },\n \"additionalProperties\": false\n },\n \"Directives\": {\n \"type\": \"string\",\n \"enum\": [\"required\", \"allowed\", \"disallowed\"]\n },\n \"FieldV1\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"filter\": {\n \"$ref\": \"#/components/schemas/FilterV1\"\n },\n \"predicate\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n }\n },\n \"required\": [\"path\"],\n \"additionalProperties\": false\n },\n \"FilterV1\": {\n \"type\": \"object\",\n \"properties\": {\n \"const\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n },\n \"enum\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n }\n },\n \"exclusiveMinimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"exclusiveMaximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"format\": {\n \"type\": \"string\"\n },\n \"minLength\": {\n \"type\": \"number\"\n },\n \"maxLength\": {\n \"type\": \"number\"\n },\n \"minimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"maximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"not\": {\n \"type\": \"object\"\n },\n \"pattern\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"OneOfNumberStringBoolean\": {\n \"type\": [\"boolean\", \"number\", \"string\"]\n },\n \"OneOfNumberString\": {\n \"type\": [\"number\", \"string\"]\n },\n \"HolderSubject\": {\n \"type\": \"object\",\n \"properties\": {\n \"field_id\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"directive\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n }\n },\n \"required\": [\"field_id\", \"directive\"],\n \"additionalProperties\": false\n },\n \"PresentationDefinitionV2\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"$ref\": \"#/components/schemas/Format\"\n },\n \"submission_requirements\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SubmissionRequirement\"\n }\n },\n \"input_descriptors\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/InputDescriptorV2\"\n }\n },\n \"frame\": {\n \"type\": \"object\"\n }\n },\n \"required\": [\"id\", \"input_descriptors\"],\n \"additionalProperties\": false\n },\n \"InputDescriptorV2\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"$ref\": \"#/components/schemas/Format\"\n },\n \"group\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"issuance\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Issuance\"\n }\n },\n \"constraints\": {\n \"$ref\": \"#/components/schemas/ConstraintsV2\"\n }\n },\n \"required\": [\"id\", \"constraints\"],\n \"additionalProperties\": false\n },\n \"ConstraintsV2\": {\n \"type\": \"object\",\n \"properties\": {\n \"limit_disclosure\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n },\n \"statuses\": {\n \"$ref\": \"#/components/schemas/Statuses\"\n },\n \"fields\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/FieldV2\"\n }\n },\n \"subject_is_issuer\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n },\n \"is_holder\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/HolderSubject\"\n }\n },\n \"same_subject\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/HolderSubject\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"FieldV2\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"filter\": {\n \"$ref\": \"#/components/schemas/FilterV2\"\n },\n \"predicate\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n },\n \"intent_to_retain\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\"path\"],\n \"additionalProperties\": false\n },\n \"FilterV2\": {\n \"type\": \"object\",\n \"properties\": {\n \"const\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n },\n \"enum\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n }\n },\n \"exclusiveMinimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"exclusiveMaximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"format\": {\n \"type\": \"string\"\n },\n \"formatMaximum\": {\n \"type\": \"string\"\n },\n \"formatMinimum\": {\n \"type\": \"string\"\n },\n \"formatExclusiveMaximum\": {\n \"type\": \"string\"\n },\n \"formatExclusiveMinimum\": {\n \"type\": \"string\"\n },\n \"minLength\": {\n \"type\": \"number\"\n },\n \"maxLength\": {\n \"type\": \"number\"\n },\n \"minimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"maximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"not\": {\n \"type\": \"object\"\n },\n \"pattern\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"contains\": {\n \"$ref\": \"#/components/schemas/FilterV2\"\n },\n \"items\": {\n \"$ref\": \"#/components/schemas/FilterV2Items\"\n }\n },\n \"additionalProperties\": false\n },\n \"FilterV2Items\": {\n \"type\": \"object\",\n \"properties\": {\n \"const\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n },\n \"enum\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n }\n },\n \"exclusiveMinimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"exclusiveMaximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"format\": {\n \"type\": \"string\"\n },\n \"formatMaximum\": {\n \"type\": \"string\"\n },\n \"formatMinimum\": {\n \"type\": \"string\"\n },\n \"formatExclusiveMaximum\": {\n \"type\": \"string\"\n },\n \"formatExclusiveMinimum\": {\n \"type\": \"string\"\n },\n \"minLength\": {\n \"type\": \"number\"\n },\n \"maxLength\": {\n \"type\": \"number\"\n },\n \"minimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"maximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"not\": {\n \"type\": \"object\"\n },\n \"pattern\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"contains\": {\n \"$ref\": \"#/components/schemas/FilterV2\"\n },\n \"items\": {\n \"$ref\": \"#/components/schemas/FilterV2Items\"\n }\n },\n \"additionalProperties\": false\n },\n \"DcqlQueryREST\": {\n \"type\": \"object\",\n \"properties\": {\n \"credentials\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DcqlCredentialQuery\"\n }\n }\n },\n \"required\": [\"credentials\"],\n \"additionalProperties\": false\n },\n \"DcqlCredentialQuery\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"type\": \"string\"\n },\n \"alg\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"claims\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DcqlClaim\"\n }\n },\n \"meta\": {\n \"$ref\": \"#/components/schemas/Record<string,any>\"\n }\n },\n \"required\": [\"id\", \"format\", \"claims\"],\n \"additionalProperties\": false\n },\n \"DcqlClaim\": {\n \"type\": \"object\",\n \"properties\": {\n \"namespace\": {\n \"type\": \"string\"\n },\n \"claim_name\": {\n \"type\": \"string\"\n },\n \"filter\": {\n \"$ref\": \"#/components/schemas/DcqlFilter\"\n }\n },\n \"required\": [\"namespace\", \"claim_name\"],\n \"additionalProperties\": false\n },\n \"DcqlFilter\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\"string\", \"number\", \"boolean\"]\n },\n \"pattern\": {\n \"type\": \"string\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"maximum\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\"type\"],\n \"additionalProperties\": false\n },\n \"Record<string,any>\": {\n \"type\": \"object\"\n },\n \"HasDefinitionItemArgs\": {\n \"$ref\": \"#/components/schemas/GetDefinitionItemArgs\"\n },\n \"HasDefinitionItemsArgs\": {\n \"$ref\": \"#/components/schemas/GetDefinitionItemsArgs\"\n },\n \"PersistDefinitionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"definitionItem\": {\n \"$ref\": \"#/components/schemas/PersistPresentationDefinitionItem\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/PersistOptions\"\n }\n },\n \"required\": [\"definitionItem\"],\n \"additionalProperties\": false\n },\n \"PersistPresentationDefinitionItem\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"definitionId\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n },\n \"tenantId\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"definitionPayload\": {\n \"$ref\": \"#/components/schemas/IPresentationDefinition\"\n },\n \"dcqlPayload\": {\n \"$ref\": \"#/components/schemas/DcqlQueryREST\"\n }\n },\n \"required\": [\"definitionPayload\"]\n },\n \"PersistOptions\": {\n \"type\": \"object\",\n \"properties\": {\n \"versionControlMode\": {\n \"$ref\": \"#/components/schemas/VersionControlMode\"\n },\n \"versionIncrementReleaseType\": {\n \"$ref\": \"#/components/schemas/ReleaseType\"\n }\n },\n \"additionalProperties\": false\n },\n \"VersionControlMode\": {\n \"type\": \"string\",\n \"enum\": [\"AutoIncrement\", \"Manual\", \"Overwrite\", \"OverwriteLatest\"]\n },\n \"ReleaseType\": {\n \"type\": \"string\",\n \"enum\": [\"major\", \"premajor\", \"minor\", \"preminor\", \"patch\", \"prepatch\", \"prerelease\", \"release\"]\n }\n },\n \"methods\": {\n \"pdmDeleteDefinition\": {\n \"description\": \"Delete a single presentation definition records by primary key\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/DeleteDefinitionItemArgs\"\n },\n \"returnType\": {\n \"type\": \"boolean\"\n }\n },\n \"pdmDeleteDefinitions\": {\n \"description\": \"Delete multiple presentation definitions records using filters\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/DeleteDefinitionItemsArgs\"\n },\n \"returnType\": {\n \"type\": \"number\"\n }\n },\n \"pdmGetDefinition\": {\n \"description\": \"Get a single presentation definition records by primary key\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/GetDefinitionItemArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/PresentationDefinitionItem\"\n }\n },\n \"pdmGetDefinitions\": {\n \"description\": \"Find one or more presentation definition records using filters\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/GetDefinitionItemsArgs\"\n },\n \"returnType\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/PresentationDefinitionItem\"\n }\n }\n },\n \"pdmHasDefinition\": {\n \"description\": \"Checks whether a presentation definition record exists by primary key\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/HasDefinitionItemArgs\"\n },\n \"returnType\": {\n \"type\": \"boolean\"\n }\n },\n \"pdmHasDefinitions\": {\n \"description\": \"Checks whether one or more presentation definition records exist using filters\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/HasDefinitionItemsArgs\"\n },\n \"returnType\": {\n \"type\": \"boolean\"\n }\n },\n \"pdmPersistDefinition\": {\n \"description\": \"Check in a presentation definition. It has version control logic which will add or update presentation definition records and has settings for automatic version numbering.\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/PersistDefinitionArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/PresentationDefinitionItem\"\n }\n }\n }\n }\n }\n}\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { PDManager, pdManagerMethods } from './agent/PDManager'\nexport * from './types/IPDManager'\n\nexport type { ReleaseType } from 'semver'\n","import { IAgentPlugin } from '@veramo/core'\nimport {\n DeleteDefinitionItemArgs,\n DeleteDefinitionItemsArgs,\n GetDefinitionItemArgs,\n GetDefinitionItemsArgs,\n HasDefinitionItemArgs,\n HasDefinitionItemsArgs,\n IPDManager,\n PersistDefinitionArgs,\n schema,\n} from '../index'\nimport {\n AbstractPDStore,\n isPresentationDefinitionEqual,\n NonPersistedPresentationDefinitionItem,\n PresentationDefinitionItem,\n} from '@sphereon/ssi-sdk.data-store'\nimport semver from 'semver/preload'\nimport { ReleaseType } from 'semver'\n\n// Exposing the methods here for any REST implementation\nexport const pdManagerMethods: Array<string> = [\n 'pdmHasDefinition',\n 'pdmHasGetDefinitions',\n 'pdmGetDefinition',\n 'pdmGetDefinitions',\n 'pdmPersistDefinition',\n 'pdmDeleteDefinition',\n 'pdmDeleteDefinitions',\n]\n\n/**\n * {@inheritDoc IPDManager}\n */\nexport class PDManager implements IAgentPlugin {\n readonly schema = schema.IPDManager\n readonly methods: IPDManager = {\n pdmPersistDefinition: this.pdmPersistDefinition.bind(this),\n pdmHasDefinition: this.pdmHasDefinition.bind(this),\n pdmHasDefinitions: this.pdmHasDefinitions.bind(this),\n pdmGetDefinition: this.pdmGetDefinition.bind(this),\n pdmGetDefinitions: this.pdmGetDefinitions.bind(this),\n pdmDeleteDefinition: this.pdmDeleteDefinition.bind(this),\n pdmDeleteDefinitions: this.pdmDeleteDefinitions.bind(this),\n }\n\n private readonly store: AbstractPDStore\n\n constructor(options: { store: AbstractPDStore }) {\n this.store = options.store\n }\n\n /** {@inheritDoc IPDManager.pdmHasDefinition} */\n private async pdmHasDefinition(args: HasDefinitionItemArgs): Promise<boolean> {\n const { itemId } = args\n return this.store.hasDefinition({ itemId })\n }\n\n /** {@inheritDoc IPDManager.pdmHasDefinitions} */\n private async pdmHasDefinitions(args: HasDefinitionItemsArgs): Promise<boolean> {\n const { filter } = args\n return this.store.hasDefinitions({ filter })\n }\n\n /** {@inheritDoc IPDManager.pdmGetDefinition} */\n private async pdmGetDefinition(args: GetDefinitionItemArgs): Promise<PresentationDefinitionItem> {\n const { itemId } = args\n return this.store.getDefinition({ itemId })\n }\n\n /** {@inheritDoc IPDManager.pdmGetDefinitions} */\n private async pdmGetDefinitions(args: GetDefinitionItemsArgs): Promise<Array<PresentationDefinitionItem>> {\n const { filter, opts } = args\n const allDefinitions = await this.store.getDefinitions({ filter })\n let definitions: PresentationDefinitionItem[] = []\n if (opts == undefined || opts.showVersionHistory !== true) {\n const groupedByDefinitionId = allDefinitions.reduce(\n (acc, entity) => {\n if (!acc[entity.definitionId]) {\n acc[entity.definitionId] = []\n }\n acc[entity.definitionId].push(entity)\n return acc\n },\n {} as Record<string, PresentationDefinitionItem[]>,\n )\n definitions = Object.values(groupedByDefinitionId).map((entities) =>\n entities.reduce((highestVersionItem, baseItem) => {\n const baseVersion = this.normalizeToSemverVersionFormat(baseItem.version)\n const highestVersion = this.normalizeToSemverVersionFormat(highestVersionItem.version)\n return semver.gt(baseVersion, highestVersion) ? baseItem : highestVersionItem\n }),\n )\n } else {\n definitions = allDefinitions\n }\n return definitions\n }\n\n /** {@inheritDoc IPDManager.pdmDeleteDefinition} */\n private async pdmDeleteDefinition(args: DeleteDefinitionItemArgs): Promise<boolean> {\n return this.store.deleteDefinition(args).then((value) => true)\n }\n\n /** {@inheritDoc IPDManager.pdmDeleteDefinitions} */\n private async pdmDeleteDefinitions(args: DeleteDefinitionItemsArgs): Promise<number> {\n return this.store.deleteDefinitions(args)\n }\n\n /** {@inheritDoc IPDManager.pdmPersistDefinition} */\n private async pdmPersistDefinition(args: PersistDefinitionArgs): Promise<PresentationDefinitionItem> {\n const { definitionItem, opts } = args\n const { versionControlMode, versionIncrementReleaseType } = opts ?? { versionControlMode: 'AutoIncrement' }\n const { version, tenantId } = definitionItem\n const definitionId = definitionItem.definitionId\n\n let { id } = definitionItem\n if (id !== undefined && versionControlMode !== 'Overwrite') {\n id = undefined\n }\n\n const nonPersistedDefinitionItem: NonPersistedPresentationDefinitionItem = {\n ...definitionItem,\n version: version ?? '1',\n }\n\n const existing = await this.store.getDefinitions({ filter: [{ id, definitionId, tenantId, version }] })\n const existingItem = existing[0]\n\n // Always fetch all definitions for the definitionId/tenantId and determine the truly latest version\n const allDefinitions = await this.store.getDefinitions({ filter: [{ definitionId, tenantId }] })\n allDefinitions.sort((a, b) => semver.compare(this.normalizeToSemverVersionFormat(a.version), this.normalizeToSemverVersionFormat(b.version)))\n const trulyLatestVersionItem = allDefinitions[allDefinitions.length - 1]\n\n let latestVersionItem: PresentationDefinitionItem | undefined = trulyLatestVersionItem\n\n // If a specific version exists and matches existingItem, we keep that as a base.\n // Otherwise we use the trulyLatestVersionItem\n if (existingItem && version) {\n latestVersionItem = trulyLatestVersionItem ?? existingItem\n }\n\n const isPayloadModified = !existingItem || !isPresentationDefinitionEqual(existingItem, definitionItem)\n if (!isPayloadModified) return existingItem\n\n switch (versionControlMode) {\n case 'Overwrite':\n return this.handleOverwriteMode(existingItem, nonPersistedDefinitionItem, version)\n case 'OverwriteLatest':\n return this.handleOverwriteLatestMode(latestVersionItem, nonPersistedDefinitionItem)\n case 'Manual':\n return this.handleManualMode(existingItem, nonPersistedDefinitionItem, tenantId, version)\n case 'AutoIncrement':\n return this.handleAutoIncrementMode(latestVersionItem, nonPersistedDefinitionItem, versionIncrementReleaseType ?? 'major')\n default:\n throw new Error(`Unknown version control mode: ${versionControlMode}`)\n }\n }\n\n private async handleOverwriteMode(\n existingItem: PresentationDefinitionItem | undefined,\n definitionItem: NonPersistedPresentationDefinitionItem,\n version: string | undefined,\n ): Promise<PresentationDefinitionItem> {\n if (existingItem) {\n existingItem.definitionId = definitionItem.definitionId\n existingItem.version = version ?? existingItem.version ?? '1'\n existingItem.tenantId = definitionItem.tenantId\n existingItem.name = definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name ?? definitionItem.name\n existingItem.purpose = definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose ?? definitionItem.purpose\n existingItem.dcqlPayload = definitionItem.dcqlPayload\n existingItem.definitionPayload = definitionItem.definitionPayload\n\n return await this.store.updateDefinition(existingItem)\n } else {\n // Apply the same field extraction logic for new items\n const newDefinitionItem = {\n ...definitionItem,\n name: definitionItem.name ?? definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name,\n purpose: definitionItem.purpose ?? definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose,\n }\n return await this.store.addDefinition(newDefinitionItem)\n }\n }\n\n private async handleOverwriteLatestMode(\n latestVersionItem: PresentationDefinitionItem | undefined,\n definitionItem: NonPersistedPresentationDefinitionItem,\n ): Promise<PresentationDefinitionItem> {\n if (latestVersionItem) {\n latestVersionItem.definitionId = definitionItem.definitionId\n latestVersionItem.tenantId = definitionItem.tenantId\n latestVersionItem.name = definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name ?? definitionItem.name\n latestVersionItem.purpose = definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose ?? definitionItem.purpose\n latestVersionItem.definitionPayload = definitionItem.definitionPayload\n latestVersionItem.dcqlPayload = definitionItem.dcqlPayload\n\n return await this.store.updateDefinition(latestVersionItem)\n } else {\n // Apply the same field extraction logic for new items\n const newDefinitionItem = {\n ...definitionItem,\n name: definitionItem.name ?? definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name,\n purpose: definitionItem.purpose ?? definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose,\n }\n return await this.store.addDefinition(newDefinitionItem)\n }\n }\n\n private async handleManualMode(\n existingItem: PresentationDefinitionItem | undefined,\n definitionItem: NonPersistedPresentationDefinitionItem,\n tenantId: string | undefined,\n version: string | undefined,\n ): Promise<PresentationDefinitionItem> {\n if (existingItem && !isPresentationDefinitionEqual(existingItem, definitionItem)) {\n throw Error(\n `Cannot update definition ${definitionItem.definitionId} for tenant ${tenantId} version ${version} because definition exists and manual version control is enabled.`,\n )\n } else {\n return await this.store.addDefinition(definitionItem)\n }\n }\n\n private async handleAutoIncrementMode(\n latestVersionItem: PresentationDefinitionItem | undefined,\n definitionItem: NonPersistedPresentationDefinitionItem,\n releaseType: ReleaseType,\n ): Promise<PresentationDefinitionItem> {\n const defaultVersion = '1'\n let currentVersion = latestVersionItem?.version ?? definitionItem.version ?? defaultVersion\n let resultVersion: string\n\n if (!latestVersionItem) {\n resultVersion = currentVersion\n } else {\n let [baseVersion, preReleaseSuffix] = currentVersion.split(/-(.+)/)\n\n // Normalize the base version to at least 'major.minor.patch', that's what semver needs as input\n let normalizedBaseVersion = semver.coerce(baseVersion)?.version ?? `${defaultVersion}.0.0`\n let preReleaseIdentifier = preReleaseSuffix ? preReleaseSuffix.match(/^[a-zA-Z]+/)?.[0] : undefined\n let fullVersionToIncrement = preReleaseIdentifier ? `${normalizedBaseVersion}-${preReleaseSuffix}` : normalizedBaseVersion\n\n // Use semver to increment the version\n let incrementedVersion = semver.inc(fullVersionToIncrement, releaseType, undefined, preReleaseIdentifier)\n if (!incrementedVersion) {\n throw new Error(`Could not increment ${releaseType} version on ${currentVersion} ${preReleaseSuffix}`)\n }\n\n // Extract new base version to match the original input format\n let [incrementedBaseVersion, incrementedSuffix] = incrementedVersion.split(/-(.+)/)\n let originalParts = baseVersion.split('.')\n let newParts = incrementedBaseVersion.split('.')\n while (newParts.length > originalParts.length) {\n newParts.pop() // Reduce to original length by removing extra .0s\n }\n resultVersion = newParts.join('.')\n if (incrementedSuffix) {\n resultVersion += `-${incrementedSuffix}`\n }\n }\n\n // Apply field extraction logic before adding\n const newDefinitionItem = {\n ...definitionItem,\n version: resultVersion,\n name: definitionItem.name ?? definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name,\n purpose: definitionItem.purpose ?? definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose,\n }\n\n return await this.store.addDefinition(newDefinitionItem)\n }\n private normalizeToSemverVersionFormat(version: string): string {\n const defaultVersion = '1.0.0'\n let [baseVersion, preReleaseSuffix] = version.split(/-(.+)/)\n\n // Normalize the base version to at least 'major.minor.patch', that's what semver needs as input\n let normalizedBaseVersion = semver.coerce(baseVersion)?.version ?? defaultVersion\n if (preReleaseSuffix) {\n normalizedBaseVersion += `-${preReleaseSuffix}`\n }\n\n return normalizedBaseVersion\n }\n}\n"],"mappings":"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","names":["module","pdManagerMethods","PDManager","schema","IPDManager","methods","pdmPersistDefinition","bind","pdmHasDefinition","pdmHasDefinitions","pdmGetDefinition","pdmGetDefinitions","pdmDeleteDefinition","pdmDeleteDefinitions","store","options","args","itemId","hasDefinition","filter","hasDefinitions","getDefinition","opts","allDefinitions","getDefinitions","definitions","undefined","showVersionHistory","groupedByDefinitionId","reduce","acc","entity","definitionId","push","Object","values","map","entities","highestVersionItem","baseItem","baseVersion","normalizeToSemverVersionFormat","version","highestVersion","semver","gt","deleteDefinition","then","value","deleteDefinitions","definitionItem","versionControlMode","versionIncrementReleaseType","tenantId","id","nonPersistedDefinitionItem","existing","existingItem","sort","a","b","compare","trulyLatestVersionItem","length","latestVersionItem","isPayloadModified","isPresentationDefinitionEqual","handleOverwriteMode","handleOverwriteLatestMode","handleManualMode","handleAutoIncrementMode","Error","name","dcqlPayload","definitionPayload","purpose","defaultPurpose","updateDefinition","newDefinitionItem","addDefinition","releaseType","defaultVersion","currentVersion","resultVersion","preReleaseSuffix","split","normalizedBaseVersion","coerce","preReleaseIdentifier","match","fullVersionToIncrement","incrementedVersion","inc","incrementedBaseVersion","incrementedSuffix","originalParts","newParts","pop","join","schema","require"]}
package/dist/index.d.cts CHANGED
@@ -90,9 +90,8 @@ type DeleteDefinitionItemArgs = {
90
90
  itemId: string;
91
91
  };
92
92
  type DeleteDefinitionItemsArgs = GetDefinitionItemsArgs;
93
- type PersistPresentationDefinitionItem = Omit<NonPersistedPresentationDefinitionItem, 'definitionId' | 'version'> & {
93
+ type PersistPresentationDefinitionItem = Omit<NonPersistedPresentationDefinitionItem, 'version'> & {
94
94
  id?: string;
95
- definitionId?: string;
96
95
  version?: string;
97
96
  };
98
97
  type PersistOptions = {
package/dist/index.d.ts CHANGED
@@ -90,9 +90,8 @@ type DeleteDefinitionItemArgs = {
90
90
  itemId: string;
91
91
  };
92
92
  type DeleteDefinitionItemsArgs = GetDefinitionItemsArgs;
93
- type PersistPresentationDefinitionItem = Omit<NonPersistedPresentationDefinitionItem, 'definitionId' | 'version'> & {
93
+ type PersistPresentationDefinitionItem = Omit<NonPersistedPresentationDefinitionItem, 'version'> & {
94
94
  id?: string;
95
- definitionId?: string;
96
95
  version?: string;
97
96
  };
98
97
  type PersistOptions = {
package/dist/index.js CHANGED
@@ -1129,14 +1129,13 @@ var PDManager = class {
1129
1129
  versionControlMode: "AutoIncrement"
1130
1130
  };
1131
1131
  const { version, tenantId } = definitionItem;
1132
- const definitionId = definitionItem.definitionId ?? definitionItem.definitionPayload.id;
1132
+ const definitionId = definitionItem.definitionId;
1133
1133
  let { id } = definitionItem;
1134
1134
  if (id !== void 0 && versionControlMode !== "Overwrite") {
1135
1135
  id = void 0;
1136
1136
  }
1137
1137
  const nonPersistedDefinitionItem = {
1138
1138
  ...definitionItem,
1139
- definitionId,
1140
1139
  version: version ?? "1"
1141
1140
  };
1142
1141
  const existing = await this.store.getDefinitions({
@@ -1184,24 +1183,36 @@ var PDManager = class {
1184
1183
  existingItem.definitionId = definitionItem.definitionId;
1185
1184
  existingItem.version = version ?? existingItem.version ?? "1";
1186
1185
  existingItem.tenantId = definitionItem.tenantId;
1187
- existingItem.name = definitionItem.definitionPayload.name ?? definitionItem.name;
1188
- existingItem.purpose = definitionItem.definitionPayload.purpose ?? definitionItem.purpose;
1186
+ existingItem.name = definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name ?? definitionItem.name;
1187
+ existingItem.purpose = definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose ?? definitionItem.purpose;
1188
+ existingItem.dcqlPayload = definitionItem.dcqlPayload;
1189
1189
  existingItem.definitionPayload = definitionItem.definitionPayload;
1190
1190
  return await this.store.updateDefinition(existingItem);
1191
1191
  } else {
1192
- return await this.store.addDefinition(definitionItem);
1192
+ const newDefinitionItem = {
1193
+ ...definitionItem,
1194
+ name: definitionItem.name ?? definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name,
1195
+ purpose: definitionItem.purpose ?? definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose
1196
+ };
1197
+ return await this.store.addDefinition(newDefinitionItem);
1193
1198
  }
1194
1199
  }
1195
1200
  async handleOverwriteLatestMode(latestVersionItem, definitionItem) {
1196
1201
  if (latestVersionItem) {
1197
1202
  latestVersionItem.definitionId = definitionItem.definitionId;
1198
1203
  latestVersionItem.tenantId = definitionItem.tenantId;
1199
- latestVersionItem.name = definitionItem.name;
1200
- latestVersionItem.purpose = definitionItem.purpose;
1204
+ latestVersionItem.name = definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name ?? definitionItem.name;
1205
+ latestVersionItem.purpose = definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose ?? definitionItem.purpose;
1201
1206
  latestVersionItem.definitionPayload = definitionItem.definitionPayload;
1207
+ latestVersionItem.dcqlPayload = definitionItem.dcqlPayload;
1202
1208
  return await this.store.updateDefinition(latestVersionItem);
1203
1209
  } else {
1204
- return await this.store.addDefinition(definitionItem);
1210
+ const newDefinitionItem = {
1211
+ ...definitionItem,
1212
+ name: definitionItem.name ?? definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name,
1213
+ purpose: definitionItem.purpose ?? definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose
1214
+ };
1215
+ return await this.store.addDefinition(newDefinitionItem);
1205
1216
  }
1206
1217
  }
1207
1218
  async handleManualMode(existingItem, definitionItem, tenantId, version) {
@@ -1237,8 +1248,13 @@ var PDManager = class {
1237
1248
  resultVersion += `-${incrementedSuffix}`;
1238
1249
  }
1239
1250
  }
1240
- definitionItem.version = resultVersion;
1241
- return await this.store.addDefinition(definitionItem);
1251
+ const newDefinitionItem = {
1252
+ ...definitionItem,
1253
+ version: resultVersion,
1254
+ name: definitionItem.name ?? definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name,
1255
+ purpose: definitionItem.purpose ?? definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose
1256
+ };
1257
+ return await this.store.addDefinition(newDefinitionItem);
1242
1258
  }
1243
1259
  normalizeToSemverVersionFormat(version) {
1244
1260
  const defaultVersion = "1.0.0";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../plugin.schema.json","../src/agent/PDManager.ts","../src/index.ts"],"sourcesContent":["{\n \"IPDManager\": {\n \"components\": {\n \"schemas\": {\n \"DeleteDefinitionItemArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"itemId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"itemId\"],\n \"additionalProperties\": false\n },\n \"DeleteDefinitionItemsArgs\": {\n \"$ref\": \"#/components/schemas/GetDefinitionItemsArgs\"\n },\n \"GetDefinitionItemsArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"filter\": {\n \"$ref\": \"#/components/schemas/FindDefinitionArgs\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/FetchOptions\"\n }\n },\n \"additionalProperties\": false\n },\n \"FindDefinitionArgs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/PresentationDefinitionItemFilter\"\n }\n },\n \"PresentationDefinitionItemFilter\": {\n \"$ref\": \"#/components/schemas/Partial<Omit<PresentationDefinitionItem,(\\\"definitionPayload\\\"|\\\"dcqlPayload\\\")>>\"\n },\n \"Partial<Omit<PresentationDefinitionItem,(\\\"definitionPayload\\\"|\\\"dcqlPayload\\\")>>\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"definitionId\": {\n \"type\": \"string\"\n },\n \"tenantId\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"lastUpdatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"additionalProperties\": false\n },\n \"FetchOptions\": {\n \"type\": \"object\",\n \"properties\": {\n \"showVersionHistory\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"GetDefinitionItemArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"itemId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"itemId\"],\n \"additionalProperties\": false\n },\n \"PresentationDefinitionItem\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"definitionId\": {\n \"type\": \"string\"\n },\n \"tenantId\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"definitionPayload\": {\n \"$ref\": \"#/components/schemas/IPresentationDefinition\"\n },\n \"dcqlPayload\": {\n \"$ref\": \"#/components/schemas/DcqlQueryREST\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"lastUpdatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\"id\", \"definitionId\", \"version\", \"definitionPayload\", \"createdAt\", \"lastUpdatedAt\"],\n \"additionalProperties\": false\n },\n \"IPresentationDefinition\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/PresentationDefinitionV1\"\n },\n {\n \"$ref\": \"#/components/schemas/PresentationDefinitionV2\"\n }\n ]\n },\n \"PresentationDefinitionV1\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"$ref\": \"#/components/schemas/Format\"\n },\n \"submission_requirements\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SubmissionRequirement\"\n }\n },\n \"input_descriptors\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/InputDescriptorV1\"\n }\n }\n },\n \"required\": [\"id\", \"input_descriptors\"],\n \"additionalProperties\": false\n },\n \"Format\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwt\": {\n \"$ref\": \"#/components/schemas/JwtObject\"\n },\n \"jwt_vc\": {\n \"$ref\": \"#/components/schemas/JwtObject\"\n },\n \"jwt_vc_json\": {\n \"$ref\": \"#/components/schemas/JwtObject\"\n },\n \"jwt_vp\": {\n \"$ref\": \"#/components/schemas/JwtObject\"\n },\n \"jwt_vp_json\": {\n \"$ref\": \"#/components/schemas/JwtObject\"\n },\n \"ldp\": {\n \"$ref\": \"#/components/schemas/LdpObject\"\n },\n \"ldp_vc\": {\n \"$ref\": \"#/components/schemas/LdpObject\"\n },\n \"ldp_vp\": {\n \"$ref\": \"#/components/schemas/LdpObject\"\n },\n \"di\": {\n \"$ref\": \"#/components/schemas/DiObject\"\n },\n \"di_vc\": {\n \"$ref\": \"#/components/schemas/DiObject\"\n },\n \"di_vp\": {\n \"$ref\": \"#/components/schemas/DiObject\"\n },\n \"dc+sd-jwt\": {\n \"$ref\": \"#/components/schemas/SdJwtObject\"\n },\n \"mso_mdoc\": {\n \"$ref\": \"#/components/schemas/MsoMdocObject\"\n }\n },\n \"additionalProperties\": false\n },\n \"JwtObject\": {\n \"type\": \"object\",\n \"properties\": {\n \"alg\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"alg\"],\n \"additionalProperties\": false\n },\n \"LdpObject\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof_type\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"proof_type\"],\n \"additionalProperties\": false\n },\n \"DiObject\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof_type\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"cryptosuite\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"proof_type\", \"cryptosuite\"],\n \"additionalProperties\": false\n },\n \"SdJwtObject\": {\n \"type\": \"object\",\n \"properties\": {\n \"sd-jwt_alg_values\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"kb-jwt_alg_values\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"MsoMdocObject\": {\n \"type\": \"object\",\n \"properties\": {\n \"alg\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"alg\"],\n \"additionalProperties\": false\n },\n \"SubmissionRequirement\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"rule\": {\n \"$ref\": \"#/components/schemas/Rules\"\n },\n \"count\": {\n \"type\": \"number\"\n },\n \"min\": {\n \"type\": \"number\"\n },\n \"max\": {\n \"type\": \"number\"\n },\n \"from\": {\n \"type\": \"string\"\n },\n \"from_nested\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SubmissionRequirement\"\n }\n }\n },\n \"required\": [\"rule\"],\n \"additionalProperties\": false\n },\n \"Rules\": {\n \"type\": \"string\",\n \"enum\": [\"all\", \"pick\"]\n },\n \"InputDescriptorV1\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"group\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"schema\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Schema\"\n }\n },\n \"issuance\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Issuance\"\n }\n },\n \"constraints\": {\n \"$ref\": \"#/components/schemas/ConstraintsV1\"\n }\n },\n \"required\": [\"id\", \"schema\"],\n \"additionalProperties\": false\n },\n \"Schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"uri\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\"uri\"],\n \"additionalProperties\": false\n },\n \"Issuance\": {\n \"type\": \"object\",\n \"properties\": {\n \"manifest\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": {}\n },\n \"ConstraintsV1\": {\n \"type\": \"object\",\n \"properties\": {\n \"limit_disclosure\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n },\n \"statuses\": {\n \"$ref\": \"#/components/schemas/Statuses\"\n },\n \"fields\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/FieldV1\"\n }\n },\n \"subject_is_issuer\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n },\n \"is_holder\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/HolderSubject\"\n }\n },\n \"same_subject\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/HolderSubject\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"Optionality\": {\n \"type\": \"string\",\n \"enum\": [\"required\", \"preferred\"]\n },\n \"Statuses\": {\n \"type\": \"object\",\n \"properties\": {\n \"active\": {\n \"$ref\": \"#/components/schemas/PdStatus\"\n },\n \"suspended\": {\n \"$ref\": \"#/components/schemas/PdStatus\"\n },\n \"revoked\": {\n \"$ref\": \"#/components/schemas/PdStatus\"\n }\n },\n \"additionalProperties\": false\n },\n \"PdStatus\": {\n \"type\": \"object\",\n \"properties\": {\n \"directive\": {\n \"$ref\": \"#/components/schemas/Directives\"\n }\n },\n \"additionalProperties\": false\n },\n \"Directives\": {\n \"type\": \"string\",\n \"enum\": [\"required\", \"allowed\", \"disallowed\"]\n },\n \"FieldV1\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"filter\": {\n \"$ref\": \"#/components/schemas/FilterV1\"\n },\n \"predicate\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n }\n },\n \"required\": [\"path\"],\n \"additionalProperties\": false\n },\n \"FilterV1\": {\n \"type\": \"object\",\n \"properties\": {\n \"const\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n },\n \"enum\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n }\n },\n \"exclusiveMinimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"exclusiveMaximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"format\": {\n \"type\": \"string\"\n },\n \"minLength\": {\n \"type\": \"number\"\n },\n \"maxLength\": {\n \"type\": \"number\"\n },\n \"minimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"maximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"not\": {\n \"type\": \"object\"\n },\n \"pattern\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"OneOfNumberStringBoolean\": {\n \"type\": [\"boolean\", \"number\", \"string\"]\n },\n \"OneOfNumberString\": {\n \"type\": [\"number\", \"string\"]\n },\n \"HolderSubject\": {\n \"type\": \"object\",\n \"properties\": {\n \"field_id\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"directive\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n }\n },\n \"required\": [\"field_id\", \"directive\"],\n \"additionalProperties\": false\n },\n \"PresentationDefinitionV2\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"$ref\": \"#/components/schemas/Format\"\n },\n \"submission_requirements\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SubmissionRequirement\"\n }\n },\n \"input_descriptors\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/InputDescriptorV2\"\n }\n },\n \"frame\": {\n \"type\": \"object\"\n }\n },\n \"required\": [\"id\", \"input_descriptors\"],\n \"additionalProperties\": false\n },\n \"InputDescriptorV2\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"$ref\": \"#/components/schemas/Format\"\n },\n \"group\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"issuance\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Issuance\"\n }\n },\n \"constraints\": {\n \"$ref\": \"#/components/schemas/ConstraintsV2\"\n }\n },\n \"required\": [\"id\", \"constraints\"],\n \"additionalProperties\": false\n },\n \"ConstraintsV2\": {\n \"type\": \"object\",\n \"properties\": {\n \"limit_disclosure\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n },\n \"statuses\": {\n \"$ref\": \"#/components/schemas/Statuses\"\n },\n \"fields\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/FieldV2\"\n }\n },\n \"subject_is_issuer\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n },\n \"is_holder\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/HolderSubject\"\n }\n },\n \"same_subject\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/HolderSubject\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"FieldV2\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"filter\": {\n \"$ref\": \"#/components/schemas/FilterV2\"\n },\n \"predicate\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n },\n \"intent_to_retain\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\"path\"],\n \"additionalProperties\": false\n },\n \"FilterV2\": {\n \"type\": \"object\",\n \"properties\": {\n \"const\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n },\n \"enum\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n }\n },\n \"exclusiveMinimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"exclusiveMaximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"format\": {\n \"type\": \"string\"\n },\n \"formatMaximum\": {\n \"type\": \"string\"\n },\n \"formatMinimum\": {\n \"type\": \"string\"\n },\n \"formatExclusiveMaximum\": {\n \"type\": \"string\"\n },\n \"formatExclusiveMinimum\": {\n \"type\": \"string\"\n },\n \"minLength\": {\n \"type\": \"number\"\n },\n \"maxLength\": {\n \"type\": \"number\"\n },\n \"minimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"maximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"not\": {\n \"type\": \"object\"\n },\n \"pattern\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"contains\": {\n \"$ref\": \"#/components/schemas/FilterV2\"\n },\n \"items\": {\n \"$ref\": \"#/components/schemas/FilterV2Items\"\n }\n },\n \"additionalProperties\": false\n },\n \"FilterV2Items\": {\n \"type\": \"object\",\n \"properties\": {\n \"const\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n },\n \"enum\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n }\n },\n \"exclusiveMinimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"exclusiveMaximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"format\": {\n \"type\": \"string\"\n },\n \"formatMaximum\": {\n \"type\": \"string\"\n },\n \"formatMinimum\": {\n \"type\": \"string\"\n },\n \"formatExclusiveMaximum\": {\n \"type\": \"string\"\n },\n \"formatExclusiveMinimum\": {\n \"type\": \"string\"\n },\n \"minLength\": {\n \"type\": \"number\"\n },\n \"maxLength\": {\n \"type\": \"number\"\n },\n \"minimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"maximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"not\": {\n \"type\": \"object\"\n },\n \"pattern\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"contains\": {\n \"$ref\": \"#/components/schemas/FilterV2\"\n },\n \"items\": {\n \"$ref\": \"#/components/schemas/FilterV2Items\"\n }\n },\n \"additionalProperties\": false\n },\n \"DcqlQueryREST\": {\n \"type\": \"object\",\n \"properties\": {\n \"credentials\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DcqlCredentialQuery\"\n }\n }\n },\n \"required\": [\"credentials\"],\n \"additionalProperties\": false\n },\n \"DcqlCredentialQuery\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"type\": \"string\"\n },\n \"alg\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"claims\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DcqlClaim\"\n }\n },\n \"meta\": {\n \"$ref\": \"#/components/schemas/Record<string,any>\"\n }\n },\n \"required\": [\"id\", \"format\", \"claims\"],\n \"additionalProperties\": false\n },\n \"DcqlClaim\": {\n \"type\": \"object\",\n \"properties\": {\n \"namespace\": {\n \"type\": \"string\"\n },\n \"claim_name\": {\n \"type\": \"string\"\n },\n \"filter\": {\n \"$ref\": \"#/components/schemas/DcqlFilter\"\n }\n },\n \"required\": [\"namespace\", \"claim_name\"],\n \"additionalProperties\": false\n },\n \"DcqlFilter\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\"string\", \"number\", \"boolean\"]\n },\n \"pattern\": {\n \"type\": \"string\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"maximum\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\"type\"],\n \"additionalProperties\": false\n },\n \"Record<string,any>\": {\n \"type\": \"object\"\n },\n \"HasDefinitionItemArgs\": {\n \"$ref\": \"#/components/schemas/GetDefinitionItemArgs\"\n },\n \"HasDefinitionItemsArgs\": {\n \"$ref\": \"#/components/schemas/GetDefinitionItemsArgs\"\n },\n \"PersistDefinitionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"definitionItem\": {\n \"$ref\": \"#/components/schemas/PersistPresentationDefinitionItem\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/PersistOptions\"\n }\n },\n \"required\": [\"definitionItem\"],\n \"additionalProperties\": false\n },\n \"PersistPresentationDefinitionItem\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"definitionId\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n },\n \"tenantId\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"definitionPayload\": {\n \"$ref\": \"#/components/schemas/IPresentationDefinition\"\n },\n \"dcqlPayload\": {\n \"$ref\": \"#/components/schemas/DcqlQueryREST\"\n }\n },\n \"required\": [\"definitionPayload\"]\n },\n \"PersistOptions\": {\n \"type\": \"object\",\n \"properties\": {\n \"versionControlMode\": {\n \"$ref\": \"#/components/schemas/VersionControlMode\"\n },\n \"versionIncrementReleaseType\": {\n \"$ref\": \"#/components/schemas/ReleaseType\"\n }\n },\n \"additionalProperties\": false\n },\n \"VersionControlMode\": {\n \"type\": \"string\",\n \"enum\": [\"AutoIncrement\", \"Manual\", \"Overwrite\", \"OverwriteLatest\"]\n },\n \"ReleaseType\": {\n \"type\": \"string\",\n \"enum\": [\"major\", \"premajor\", \"minor\", \"preminor\", \"patch\", \"prepatch\", \"prerelease\", \"release\"]\n }\n },\n \"methods\": {\n \"pdmDeleteDefinition\": {\n \"description\": \"Delete a single presentation definition records by primary key\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/DeleteDefinitionItemArgs\"\n },\n \"returnType\": {\n \"type\": \"boolean\"\n }\n },\n \"pdmDeleteDefinitions\": {\n \"description\": \"Delete multiple presentation definitions records using filters\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/DeleteDefinitionItemsArgs\"\n },\n \"returnType\": {\n \"type\": \"number\"\n }\n },\n \"pdmGetDefinition\": {\n \"description\": \"Get a single presentation definition records by primary key\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/GetDefinitionItemArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/PresentationDefinitionItem\"\n }\n },\n \"pdmGetDefinitions\": {\n \"description\": \"Find one or more presentation definition records using filters\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/GetDefinitionItemsArgs\"\n },\n \"returnType\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/PresentationDefinitionItem\"\n }\n }\n },\n \"pdmHasDefinition\": {\n \"description\": \"Checks whether a presentation definition record exists by primary key\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/HasDefinitionItemArgs\"\n },\n \"returnType\": {\n \"type\": \"boolean\"\n }\n },\n \"pdmHasDefinitions\": {\n \"description\": \"Checks whether one or more presentation definition records exist using filters\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/HasDefinitionItemsArgs\"\n },\n \"returnType\": {\n \"type\": \"boolean\"\n }\n },\n \"pdmPersistDefinition\": {\n \"description\": \"Check in a presentation definition. It has version control logic which will add or update presentation definition records and has settings for automatic version numbering.\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/PersistDefinitionArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/PresentationDefinitionItem\"\n }\n }\n }\n }\n }\n}\n","import { IAgentPlugin } from '@veramo/core'\nimport {\n DeleteDefinitionItemArgs,\n DeleteDefinitionItemsArgs,\n GetDefinitionItemArgs,\n GetDefinitionItemsArgs,\n HasDefinitionItemArgs,\n HasDefinitionItemsArgs,\n IPDManager,\n PersistDefinitionArgs,\n schema,\n} from '../index'\nimport {\n AbstractPDStore,\n isPresentationDefinitionEqual,\n NonPersistedPresentationDefinitionItem,\n PresentationDefinitionItem,\n} from '@sphereon/ssi-sdk.data-store'\nimport semver from 'semver/preload'\nimport { ReleaseType } from 'semver'\n\n// Exposing the methods here for any REST implementation\nexport const pdManagerMethods: Array<string> = [\n 'pdmHasDefinition',\n 'pdmHasGetDefinitions',\n 'pdmGetDefinition',\n 'pdmGetDefinitions',\n 'pdmPersistDefinition',\n 'pdmDeleteDefinition',\n 'pdmDeleteDefinitions',\n]\n\n/**\n * {@inheritDoc IPDManager}\n */\nexport class PDManager implements IAgentPlugin {\n readonly schema = schema.IPDManager\n readonly methods: IPDManager = {\n pdmPersistDefinition: this.pdmPersistDefinition.bind(this),\n pdmHasDefinition: this.pdmHasDefinition.bind(this),\n pdmHasDefinitions: this.pdmHasDefinitions.bind(this),\n pdmGetDefinition: this.pdmGetDefinition.bind(this),\n pdmGetDefinitions: this.pdmGetDefinitions.bind(this),\n pdmDeleteDefinition: this.pdmDeleteDefinition.bind(this),\n pdmDeleteDefinitions: this.pdmDeleteDefinitions.bind(this),\n }\n\n private readonly store: AbstractPDStore\n\n constructor(options: { store: AbstractPDStore }) {\n this.store = options.store\n }\n\n /** {@inheritDoc IPDManager.pdmHasDefinition} */\n private async pdmHasDefinition(args: HasDefinitionItemArgs): Promise<boolean> {\n const { itemId } = args\n return this.store.hasDefinition({ itemId })\n }\n\n /** {@inheritDoc IPDManager.pdmHasDefinitions} */\n private async pdmHasDefinitions(args: HasDefinitionItemsArgs): Promise<boolean> {\n const { filter } = args\n return this.store.hasDefinitions({ filter })\n }\n\n /** {@inheritDoc IPDManager.pdmGetDefinition} */\n private async pdmGetDefinition(args: GetDefinitionItemArgs): Promise<PresentationDefinitionItem> {\n const { itemId } = args\n return this.store.getDefinition({ itemId })\n }\n\n /** {@inheritDoc IPDManager.pdmGetDefinitions} */\n private async pdmGetDefinitions(args: GetDefinitionItemsArgs): Promise<Array<PresentationDefinitionItem>> {\n const { filter, opts } = args\n const allDefinitions = await this.store.getDefinitions({ filter })\n let definitions: PresentationDefinitionItem[] = []\n if (opts == undefined || opts.showVersionHistory !== true) {\n const groupedByDefinitionId = allDefinitions.reduce(\n (acc, entity) => {\n if (!acc[entity.definitionId]) {\n acc[entity.definitionId] = []\n }\n acc[entity.definitionId].push(entity)\n return acc\n },\n {} as Record<string, PresentationDefinitionItem[]>,\n )\n definitions = Object.values(groupedByDefinitionId).map((entities) =>\n entities.reduce((highestVersionItem, baseItem) => {\n const baseVersion = this.normalizeToSemverVersionFormat(baseItem.version)\n const highestVersion = this.normalizeToSemverVersionFormat(highestVersionItem.version)\n return semver.gt(baseVersion, highestVersion) ? baseItem : highestVersionItem\n }),\n )\n } else {\n definitions = allDefinitions\n }\n return definitions\n }\n\n /** {@inheritDoc IPDManager.pdmDeleteDefinition} */\n private async pdmDeleteDefinition(args: DeleteDefinitionItemArgs): Promise<boolean> {\n return this.store.deleteDefinition(args).then((value) => true)\n }\n\n /** {@inheritDoc IPDManager.pdmDeleteDefinitions} */\n private async pdmDeleteDefinitions(args: DeleteDefinitionItemsArgs): Promise<number> {\n return this.store.deleteDefinitions(args)\n }\n\n /** {@inheritDoc IPDManager.pdmPersistDefinition} */\n private async pdmPersistDefinition(args: PersistDefinitionArgs): Promise<PresentationDefinitionItem> {\n const { definitionItem, opts } = args\n const { versionControlMode, versionIncrementReleaseType } = opts ?? { versionControlMode: 'AutoIncrement' }\n const { version, tenantId } = definitionItem\n const definitionId = definitionItem.definitionId ?? definitionItem.definitionPayload.id\n\n let { id } = definitionItem\n if (id !== undefined && versionControlMode !== 'Overwrite') {\n id = undefined\n }\n\n const nonPersistedDefinitionItem: NonPersistedPresentationDefinitionItem = {\n ...definitionItem,\n definitionId: definitionId,\n version: version ?? '1',\n }\n\n const existing = await this.store.getDefinitions({ filter: [{ id, definitionId, tenantId, version }] })\n const existingItem = existing[0]\n\n // Always fetch all definitions for the definitionId/tenantId and determine the truly latest version\n const allDefinitions = await this.store.getDefinitions({ filter: [{ definitionId, tenantId }] })\n allDefinitions.sort((a, b) => semver.compare(this.normalizeToSemverVersionFormat(a.version), this.normalizeToSemverVersionFormat(b.version)))\n const trulyLatestVersionItem = allDefinitions[allDefinitions.length - 1]\n\n let latestVersionItem: PresentationDefinitionItem | undefined = trulyLatestVersionItem\n\n // If a specific version exists and matches existingItem, we keep that as a base.\n // Otherwise we use the trulyLatestVersionItem\n if (existingItem && version) {\n latestVersionItem = trulyLatestVersionItem ?? existingItem\n }\n\n const isPayloadModified = !existingItem || !isPresentationDefinitionEqual(existingItem, definitionItem)\n if (!isPayloadModified) return existingItem\n\n switch (versionControlMode) {\n case 'Overwrite':\n return this.handleOverwriteMode(existingItem, nonPersistedDefinitionItem, version)\n case 'OverwriteLatest':\n return this.handleOverwriteLatestMode(latestVersionItem, nonPersistedDefinitionItem)\n case 'Manual':\n return this.handleManualMode(existingItem, nonPersistedDefinitionItem, tenantId, version)\n case 'AutoIncrement':\n return this.handleAutoIncrementMode(latestVersionItem, nonPersistedDefinitionItem, versionIncrementReleaseType ?? 'major')\n default:\n throw new Error(`Unknown version control mode: ${versionControlMode}`)\n }\n }\n\n private async handleOverwriteMode(\n existingItem: PresentationDefinitionItem | undefined,\n definitionItem: NonPersistedPresentationDefinitionItem,\n version: string | undefined,\n ): Promise<PresentationDefinitionItem> {\n if (existingItem) {\n existingItem.definitionId = definitionItem.definitionId\n existingItem.version = version ?? existingItem.version ?? '1'\n existingItem.tenantId = definitionItem.tenantId\n existingItem.name = definitionItem.definitionPayload.name ?? definitionItem.name\n existingItem.purpose = definitionItem.definitionPayload.purpose ?? definitionItem.purpose\n existingItem.definitionPayload = definitionItem.definitionPayload\n\n return await this.store.updateDefinition(existingItem)\n } else {\n return await this.store.addDefinition(definitionItem)\n }\n }\n\n private async handleOverwriteLatestMode(\n latestVersionItem: PresentationDefinitionItem | undefined,\n definitionItem: NonPersistedPresentationDefinitionItem,\n ): Promise<PresentationDefinitionItem> {\n if (latestVersionItem) {\n latestVersionItem.definitionId = definitionItem.definitionId\n latestVersionItem.tenantId = definitionItem.tenantId\n latestVersionItem.name = definitionItem.name\n latestVersionItem.purpose = definitionItem.purpose\n latestVersionItem.definitionPayload = definitionItem.definitionPayload\n\n return await this.store.updateDefinition(latestVersionItem)\n } else {\n return await this.store.addDefinition(definitionItem)\n }\n }\n\n private async handleManualMode(\n existingItem: PresentationDefinitionItem | undefined,\n definitionItem: NonPersistedPresentationDefinitionItem,\n tenantId: string | undefined,\n version: string | undefined,\n ): Promise<PresentationDefinitionItem> {\n if (existingItem && !isPresentationDefinitionEqual(existingItem, definitionItem)) {\n throw Error(\n `Cannot update definition ${definitionItem.definitionId} for tenant ${tenantId} version ${version} because definition exists and manual version control is enabled.`,\n )\n } else {\n return await this.store.addDefinition(definitionItem)\n }\n }\n\n private async handleAutoIncrementMode(\n latestVersionItem: PresentationDefinitionItem | undefined,\n definitionItem: NonPersistedPresentationDefinitionItem,\n releaseType: ReleaseType,\n ): Promise<PresentationDefinitionItem> {\n const defaultVersion = '1'\n let currentVersion = latestVersionItem?.version ?? definitionItem.version ?? defaultVersion\n let resultVersion: string\n\n if (!latestVersionItem) {\n resultVersion = currentVersion\n } else {\n let [baseVersion, preReleaseSuffix] = currentVersion.split(/-(.+)/)\n\n // Normalize the base version to at least 'major.minor.patch', that's what semver needs as input\n let normalizedBaseVersion = semver.coerce(baseVersion)?.version ?? `${defaultVersion}.0.0`\n let preReleaseIdentifier = preReleaseSuffix ? preReleaseSuffix.match(/^[a-zA-Z]+/)?.[0] : undefined\n let fullVersionToIncrement = preReleaseIdentifier ? `${normalizedBaseVersion}-${preReleaseSuffix}` : normalizedBaseVersion\n\n // Use semver to increment the version\n let incrementedVersion = semver.inc(fullVersionToIncrement, releaseType, undefined, preReleaseIdentifier)\n if (!incrementedVersion) {\n throw new Error(`Could not increment ${releaseType} version on ${currentVersion} ${preReleaseSuffix}`)\n }\n\n // Extract new base version to match the original input format\n let [incrementedBaseVersion, incrementedSuffix] = incrementedVersion.split(/-(.+)/)\n let originalParts = baseVersion.split('.')\n let newParts = incrementedBaseVersion.split('.')\n while (newParts.length > originalParts.length) {\n newParts.pop() // Reduce to original length by removing extra .0s\n }\n resultVersion = newParts.join('.')\n if (incrementedSuffix) {\n resultVersion += `-${incrementedSuffix}`\n }\n }\n\n definitionItem.version = resultVersion\n return await this.store.addDefinition(definitionItem)\n }\n\n private normalizeToSemverVersionFormat(version: string): string {\n const defaultVersion = '1.0.0'\n let [baseVersion, preReleaseSuffix] = version.split(/-(.+)/)\n\n // Normalize the base version to at least 'major.minor.patch', that's what semver needs as input\n let normalizedBaseVersion = semver.coerce(baseVersion)?.version ?? defaultVersion\n if (preReleaseSuffix) {\n normalizedBaseVersion += `-${preReleaseSuffix}`\n }\n\n return normalizedBaseVersion\n }\n}\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { PDManager, pdManagerMethods } from './agent/PDManager'\nexport * from './types/IPDManager'\n\nexport type { ReleaseType } from 'semver'\n"],"mappings":"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","names":["isPresentationDefinitionEqual","semver","pdManagerMethods","PDManager","schema","IPDManager","methods","pdmPersistDefinition","bind","pdmHasDefinition","pdmHasDefinitions","pdmGetDefinition","pdmGetDefinitions","pdmDeleteDefinition","pdmDeleteDefinitions","store","options","args","itemId","hasDefinition","filter","hasDefinitions","getDefinition","opts","allDefinitions","getDefinitions","definitions","undefined","showVersionHistory","groupedByDefinitionId","reduce","acc","entity","definitionId","push","Object","values","map","entities","highestVersionItem","baseItem","baseVersion","normalizeToSemverVersionFormat","version","highestVersion","semver","gt","deleteDefinition","then","value","deleteDefinitions","definitionItem","versionControlMode","versionIncrementReleaseType","tenantId","definitionPayload","id","nonPersistedDefinitionItem","existing","existingItem","sort","a","b","compare","trulyLatestVersionItem","length","latestVersionItem","isPayloadModified","isPresentationDefinitionEqual","handleOverwriteMode","handleOverwriteLatestMode","handleManualMode","handleAutoIncrementMode","Error","name","purpose","updateDefinition","addDefinition","releaseType","defaultVersion","currentVersion","resultVersion","preReleaseSuffix","split","normalizedBaseVersion","coerce","preReleaseIdentifier","match","fullVersionToIncrement","incrementedVersion","inc","incrementedBaseVersion","incrementedSuffix","originalParts","newParts","pop","join","schema","require"]}
1
+ {"version":3,"sources":["../plugin.schema.json","../src/agent/PDManager.ts","../src/index.ts"],"sourcesContent":["{\n \"IPDManager\": {\n \"components\": {\n \"schemas\": {\n \"DeleteDefinitionItemArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"itemId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"itemId\"],\n \"additionalProperties\": false\n },\n \"DeleteDefinitionItemsArgs\": {\n \"$ref\": \"#/components/schemas/GetDefinitionItemsArgs\"\n },\n \"GetDefinitionItemsArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"filter\": {\n \"$ref\": \"#/components/schemas/FindDefinitionArgs\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/FetchOptions\"\n }\n },\n \"additionalProperties\": false\n },\n \"FindDefinitionArgs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/PresentationDefinitionItemFilter\"\n }\n },\n \"PresentationDefinitionItemFilter\": {\n \"$ref\": \"#/components/schemas/Partial<Omit<PresentationDefinitionItem,(\\\"definitionPayload\\\"|\\\"dcqlPayload\\\")>>\"\n },\n \"Partial<Omit<PresentationDefinitionItem,(\\\"definitionPayload\\\"|\\\"dcqlPayload\\\")>>\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"definitionId\": {\n \"type\": \"string\"\n },\n \"tenantId\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"lastUpdatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"additionalProperties\": false\n },\n \"FetchOptions\": {\n \"type\": \"object\",\n \"properties\": {\n \"showVersionHistory\": {\n \"type\": \"boolean\"\n }\n },\n \"additionalProperties\": false\n },\n \"GetDefinitionItemArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"itemId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"itemId\"],\n \"additionalProperties\": false\n },\n \"PresentationDefinitionItem\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"definitionId\": {\n \"type\": \"string\"\n },\n \"tenantId\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"definitionPayload\": {\n \"$ref\": \"#/components/schemas/IPresentationDefinition\"\n },\n \"dcqlPayload\": {\n \"$ref\": \"#/components/schemas/DcqlQueryREST\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"lastUpdatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\"id\", \"definitionId\", \"version\", \"definitionPayload\", \"createdAt\", \"lastUpdatedAt\"],\n \"additionalProperties\": false\n },\n \"IPresentationDefinition\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/PresentationDefinitionV1\"\n },\n {\n \"$ref\": \"#/components/schemas/PresentationDefinitionV2\"\n }\n ]\n },\n \"PresentationDefinitionV1\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"$ref\": \"#/components/schemas/Format\"\n },\n \"submission_requirements\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SubmissionRequirement\"\n }\n },\n \"input_descriptors\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/InputDescriptorV1\"\n }\n }\n },\n \"required\": [\"id\", \"input_descriptors\"],\n \"additionalProperties\": false\n },\n \"Format\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwt\": {\n \"$ref\": \"#/components/schemas/JwtObject\"\n },\n \"jwt_vc\": {\n \"$ref\": \"#/components/schemas/JwtObject\"\n },\n \"jwt_vc_json\": {\n \"$ref\": \"#/components/schemas/JwtObject\"\n },\n \"jwt_vp\": {\n \"$ref\": \"#/components/schemas/JwtObject\"\n },\n \"jwt_vp_json\": {\n \"$ref\": \"#/components/schemas/JwtObject\"\n },\n \"ldp\": {\n \"$ref\": \"#/components/schemas/LdpObject\"\n },\n \"ldp_vc\": {\n \"$ref\": \"#/components/schemas/LdpObject\"\n },\n \"ldp_vp\": {\n \"$ref\": \"#/components/schemas/LdpObject\"\n },\n \"di\": {\n \"$ref\": \"#/components/schemas/DiObject\"\n },\n \"di_vc\": {\n \"$ref\": \"#/components/schemas/DiObject\"\n },\n \"di_vp\": {\n \"$ref\": \"#/components/schemas/DiObject\"\n },\n \"dc+sd-jwt\": {\n \"$ref\": \"#/components/schemas/SdJwtObject\"\n },\n \"mso_mdoc\": {\n \"$ref\": \"#/components/schemas/MsoMdocObject\"\n }\n },\n \"additionalProperties\": false\n },\n \"JwtObject\": {\n \"type\": \"object\",\n \"properties\": {\n \"alg\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"alg\"],\n \"additionalProperties\": false\n },\n \"LdpObject\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof_type\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"proof_type\"],\n \"additionalProperties\": false\n },\n \"DiObject\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof_type\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"cryptosuite\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"proof_type\", \"cryptosuite\"],\n \"additionalProperties\": false\n },\n \"SdJwtObject\": {\n \"type\": \"object\",\n \"properties\": {\n \"sd-jwt_alg_values\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"kb-jwt_alg_values\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"MsoMdocObject\": {\n \"type\": \"object\",\n \"properties\": {\n \"alg\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"alg\"],\n \"additionalProperties\": false\n },\n \"SubmissionRequirement\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"rule\": {\n \"$ref\": \"#/components/schemas/Rules\"\n },\n \"count\": {\n \"type\": \"number\"\n },\n \"min\": {\n \"type\": \"number\"\n },\n \"max\": {\n \"type\": \"number\"\n },\n \"from\": {\n \"type\": \"string\"\n },\n \"from_nested\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SubmissionRequirement\"\n }\n }\n },\n \"required\": [\"rule\"],\n \"additionalProperties\": false\n },\n \"Rules\": {\n \"type\": \"string\",\n \"enum\": [\"all\", \"pick\"]\n },\n \"InputDescriptorV1\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"group\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"schema\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Schema\"\n }\n },\n \"issuance\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Issuance\"\n }\n },\n \"constraints\": {\n \"$ref\": \"#/components/schemas/ConstraintsV1\"\n }\n },\n \"required\": [\"id\", \"schema\"],\n \"additionalProperties\": false\n },\n \"Schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"uri\": {\n \"type\": \"string\"\n },\n \"required\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\"uri\"],\n \"additionalProperties\": false\n },\n \"Issuance\": {\n \"type\": \"object\",\n \"properties\": {\n \"manifest\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": {}\n },\n \"ConstraintsV1\": {\n \"type\": \"object\",\n \"properties\": {\n \"limit_disclosure\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n },\n \"statuses\": {\n \"$ref\": \"#/components/schemas/Statuses\"\n },\n \"fields\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/FieldV1\"\n }\n },\n \"subject_is_issuer\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n },\n \"is_holder\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/HolderSubject\"\n }\n },\n \"same_subject\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/HolderSubject\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"Optionality\": {\n \"type\": \"string\",\n \"enum\": [\"required\", \"preferred\"]\n },\n \"Statuses\": {\n \"type\": \"object\",\n \"properties\": {\n \"active\": {\n \"$ref\": \"#/components/schemas/PdStatus\"\n },\n \"suspended\": {\n \"$ref\": \"#/components/schemas/PdStatus\"\n },\n \"revoked\": {\n \"$ref\": \"#/components/schemas/PdStatus\"\n }\n },\n \"additionalProperties\": false\n },\n \"PdStatus\": {\n \"type\": \"object\",\n \"properties\": {\n \"directive\": {\n \"$ref\": \"#/components/schemas/Directives\"\n }\n },\n \"additionalProperties\": false\n },\n \"Directives\": {\n \"type\": \"string\",\n \"enum\": [\"required\", \"allowed\", \"disallowed\"]\n },\n \"FieldV1\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"filter\": {\n \"$ref\": \"#/components/schemas/FilterV1\"\n },\n \"predicate\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n }\n },\n \"required\": [\"path\"],\n \"additionalProperties\": false\n },\n \"FilterV1\": {\n \"type\": \"object\",\n \"properties\": {\n \"const\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n },\n \"enum\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n }\n },\n \"exclusiveMinimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"exclusiveMaximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"format\": {\n \"type\": \"string\"\n },\n \"minLength\": {\n \"type\": \"number\"\n },\n \"maxLength\": {\n \"type\": \"number\"\n },\n \"minimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"maximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"not\": {\n \"type\": \"object\"\n },\n \"pattern\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"OneOfNumberStringBoolean\": {\n \"type\": [\"boolean\", \"number\", \"string\"]\n },\n \"OneOfNumberString\": {\n \"type\": [\"number\", \"string\"]\n },\n \"HolderSubject\": {\n \"type\": \"object\",\n \"properties\": {\n \"field_id\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"directive\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n }\n },\n \"required\": [\"field_id\", \"directive\"],\n \"additionalProperties\": false\n },\n \"PresentationDefinitionV2\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"$ref\": \"#/components/schemas/Format\"\n },\n \"submission_requirements\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SubmissionRequirement\"\n }\n },\n \"input_descriptors\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/InputDescriptorV2\"\n }\n },\n \"frame\": {\n \"type\": \"object\"\n }\n },\n \"required\": [\"id\", \"input_descriptors\"],\n \"additionalProperties\": false\n },\n \"InputDescriptorV2\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"$ref\": \"#/components/schemas/Format\"\n },\n \"group\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"issuance\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Issuance\"\n }\n },\n \"constraints\": {\n \"$ref\": \"#/components/schemas/ConstraintsV2\"\n }\n },\n \"required\": [\"id\", \"constraints\"],\n \"additionalProperties\": false\n },\n \"ConstraintsV2\": {\n \"type\": \"object\",\n \"properties\": {\n \"limit_disclosure\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n },\n \"statuses\": {\n \"$ref\": \"#/components/schemas/Statuses\"\n },\n \"fields\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/FieldV2\"\n }\n },\n \"subject_is_issuer\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n },\n \"is_holder\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/HolderSubject\"\n }\n },\n \"same_subject\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/HolderSubject\"\n }\n }\n },\n \"additionalProperties\": false\n },\n \"FieldV2\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"filter\": {\n \"$ref\": \"#/components/schemas/FilterV2\"\n },\n \"predicate\": {\n \"$ref\": \"#/components/schemas/Optionality\"\n },\n \"intent_to_retain\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\"path\"],\n \"additionalProperties\": false\n },\n \"FilterV2\": {\n \"type\": \"object\",\n \"properties\": {\n \"const\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n },\n \"enum\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n }\n },\n \"exclusiveMinimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"exclusiveMaximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"format\": {\n \"type\": \"string\"\n },\n \"formatMaximum\": {\n \"type\": \"string\"\n },\n \"formatMinimum\": {\n \"type\": \"string\"\n },\n \"formatExclusiveMaximum\": {\n \"type\": \"string\"\n },\n \"formatExclusiveMinimum\": {\n \"type\": \"string\"\n },\n \"minLength\": {\n \"type\": \"number\"\n },\n \"maxLength\": {\n \"type\": \"number\"\n },\n \"minimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"maximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"not\": {\n \"type\": \"object\"\n },\n \"pattern\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"contains\": {\n \"$ref\": \"#/components/schemas/FilterV2\"\n },\n \"items\": {\n \"$ref\": \"#/components/schemas/FilterV2Items\"\n }\n },\n \"additionalProperties\": false\n },\n \"FilterV2Items\": {\n \"type\": \"object\",\n \"properties\": {\n \"const\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n },\n \"enum\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/OneOfNumberStringBoolean\"\n }\n },\n \"exclusiveMinimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"exclusiveMaximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"format\": {\n \"type\": \"string\"\n },\n \"formatMaximum\": {\n \"type\": \"string\"\n },\n \"formatMinimum\": {\n \"type\": \"string\"\n },\n \"formatExclusiveMaximum\": {\n \"type\": \"string\"\n },\n \"formatExclusiveMinimum\": {\n \"type\": \"string\"\n },\n \"minLength\": {\n \"type\": \"number\"\n },\n \"maxLength\": {\n \"type\": \"number\"\n },\n \"minimum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"maximum\": {\n \"$ref\": \"#/components/schemas/OneOfNumberString\"\n },\n \"not\": {\n \"type\": \"object\"\n },\n \"pattern\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"contains\": {\n \"$ref\": \"#/components/schemas/FilterV2\"\n },\n \"items\": {\n \"$ref\": \"#/components/schemas/FilterV2Items\"\n }\n },\n \"additionalProperties\": false\n },\n \"DcqlQueryREST\": {\n \"type\": \"object\",\n \"properties\": {\n \"credentials\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DcqlCredentialQuery\"\n }\n }\n },\n \"required\": [\"credentials\"],\n \"additionalProperties\": false\n },\n \"DcqlCredentialQuery\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"format\": {\n \"type\": \"string\"\n },\n \"alg\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"claims\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DcqlClaim\"\n }\n },\n \"meta\": {\n \"$ref\": \"#/components/schemas/Record<string,any>\"\n }\n },\n \"required\": [\"id\", \"format\", \"claims\"],\n \"additionalProperties\": false\n },\n \"DcqlClaim\": {\n \"type\": \"object\",\n \"properties\": {\n \"namespace\": {\n \"type\": \"string\"\n },\n \"claim_name\": {\n \"type\": \"string\"\n },\n \"filter\": {\n \"$ref\": \"#/components/schemas/DcqlFilter\"\n }\n },\n \"required\": [\"namespace\", \"claim_name\"],\n \"additionalProperties\": false\n },\n \"DcqlFilter\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\"string\", \"number\", \"boolean\"]\n },\n \"pattern\": {\n \"type\": \"string\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"maximum\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\"type\"],\n \"additionalProperties\": false\n },\n \"Record<string,any>\": {\n \"type\": \"object\"\n },\n \"HasDefinitionItemArgs\": {\n \"$ref\": \"#/components/schemas/GetDefinitionItemArgs\"\n },\n \"HasDefinitionItemsArgs\": {\n \"$ref\": \"#/components/schemas/GetDefinitionItemsArgs\"\n },\n \"PersistDefinitionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"definitionItem\": {\n \"$ref\": \"#/components/schemas/PersistPresentationDefinitionItem\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/PersistOptions\"\n }\n },\n \"required\": [\"definitionItem\"],\n \"additionalProperties\": false\n },\n \"PersistPresentationDefinitionItem\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"definitionId\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n },\n \"tenantId\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"purpose\": {\n \"type\": \"string\"\n },\n \"definitionPayload\": {\n \"$ref\": \"#/components/schemas/IPresentationDefinition\"\n },\n \"dcqlPayload\": {\n \"$ref\": \"#/components/schemas/DcqlQueryREST\"\n }\n },\n \"required\": [\"definitionPayload\"]\n },\n \"PersistOptions\": {\n \"type\": \"object\",\n \"properties\": {\n \"versionControlMode\": {\n \"$ref\": \"#/components/schemas/VersionControlMode\"\n },\n \"versionIncrementReleaseType\": {\n \"$ref\": \"#/components/schemas/ReleaseType\"\n }\n },\n \"additionalProperties\": false\n },\n \"VersionControlMode\": {\n \"type\": \"string\",\n \"enum\": [\"AutoIncrement\", \"Manual\", \"Overwrite\", \"OverwriteLatest\"]\n },\n \"ReleaseType\": {\n \"type\": \"string\",\n \"enum\": [\"major\", \"premajor\", \"minor\", \"preminor\", \"patch\", \"prepatch\", \"prerelease\", \"release\"]\n }\n },\n \"methods\": {\n \"pdmDeleteDefinition\": {\n \"description\": \"Delete a single presentation definition records by primary key\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/DeleteDefinitionItemArgs\"\n },\n \"returnType\": {\n \"type\": \"boolean\"\n }\n },\n \"pdmDeleteDefinitions\": {\n \"description\": \"Delete multiple presentation definitions records using filters\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/DeleteDefinitionItemsArgs\"\n },\n \"returnType\": {\n \"type\": \"number\"\n }\n },\n \"pdmGetDefinition\": {\n \"description\": \"Get a single presentation definition records by primary key\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/GetDefinitionItemArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/PresentationDefinitionItem\"\n }\n },\n \"pdmGetDefinitions\": {\n \"description\": \"Find one or more presentation definition records using filters\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/GetDefinitionItemsArgs\"\n },\n \"returnType\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/PresentationDefinitionItem\"\n }\n }\n },\n \"pdmHasDefinition\": {\n \"description\": \"Checks whether a presentation definition record exists by primary key\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/HasDefinitionItemArgs\"\n },\n \"returnType\": {\n \"type\": \"boolean\"\n }\n },\n \"pdmHasDefinitions\": {\n \"description\": \"Checks whether one or more presentation definition records exist using filters\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/HasDefinitionItemsArgs\"\n },\n \"returnType\": {\n \"type\": \"boolean\"\n }\n },\n \"pdmPersistDefinition\": {\n \"description\": \"Check in a presentation definition. It has version control logic which will add or update presentation definition records and has settings for automatic version numbering.\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/PersistDefinitionArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/PresentationDefinitionItem\"\n }\n }\n }\n }\n }\n}\n","import { IAgentPlugin } from '@veramo/core'\nimport {\n DeleteDefinitionItemArgs,\n DeleteDefinitionItemsArgs,\n GetDefinitionItemArgs,\n GetDefinitionItemsArgs,\n HasDefinitionItemArgs,\n HasDefinitionItemsArgs,\n IPDManager,\n PersistDefinitionArgs,\n schema,\n} from '../index'\nimport {\n AbstractPDStore,\n isPresentationDefinitionEqual,\n NonPersistedPresentationDefinitionItem,\n PresentationDefinitionItem,\n} from '@sphereon/ssi-sdk.data-store'\nimport semver from 'semver/preload'\nimport { ReleaseType } from 'semver'\n\n// Exposing the methods here for any REST implementation\nexport const pdManagerMethods: Array<string> = [\n 'pdmHasDefinition',\n 'pdmHasGetDefinitions',\n 'pdmGetDefinition',\n 'pdmGetDefinitions',\n 'pdmPersistDefinition',\n 'pdmDeleteDefinition',\n 'pdmDeleteDefinitions',\n]\n\n/**\n * {@inheritDoc IPDManager}\n */\nexport class PDManager implements IAgentPlugin {\n readonly schema = schema.IPDManager\n readonly methods: IPDManager = {\n pdmPersistDefinition: this.pdmPersistDefinition.bind(this),\n pdmHasDefinition: this.pdmHasDefinition.bind(this),\n pdmHasDefinitions: this.pdmHasDefinitions.bind(this),\n pdmGetDefinition: this.pdmGetDefinition.bind(this),\n pdmGetDefinitions: this.pdmGetDefinitions.bind(this),\n pdmDeleteDefinition: this.pdmDeleteDefinition.bind(this),\n pdmDeleteDefinitions: this.pdmDeleteDefinitions.bind(this),\n }\n\n private readonly store: AbstractPDStore\n\n constructor(options: { store: AbstractPDStore }) {\n this.store = options.store\n }\n\n /** {@inheritDoc IPDManager.pdmHasDefinition} */\n private async pdmHasDefinition(args: HasDefinitionItemArgs): Promise<boolean> {\n const { itemId } = args\n return this.store.hasDefinition({ itemId })\n }\n\n /** {@inheritDoc IPDManager.pdmHasDefinitions} */\n private async pdmHasDefinitions(args: HasDefinitionItemsArgs): Promise<boolean> {\n const { filter } = args\n return this.store.hasDefinitions({ filter })\n }\n\n /** {@inheritDoc IPDManager.pdmGetDefinition} */\n private async pdmGetDefinition(args: GetDefinitionItemArgs): Promise<PresentationDefinitionItem> {\n const { itemId } = args\n return this.store.getDefinition({ itemId })\n }\n\n /** {@inheritDoc IPDManager.pdmGetDefinitions} */\n private async pdmGetDefinitions(args: GetDefinitionItemsArgs): Promise<Array<PresentationDefinitionItem>> {\n const { filter, opts } = args\n const allDefinitions = await this.store.getDefinitions({ filter })\n let definitions: PresentationDefinitionItem[] = []\n if (opts == undefined || opts.showVersionHistory !== true) {\n const groupedByDefinitionId = allDefinitions.reduce(\n (acc, entity) => {\n if (!acc[entity.definitionId]) {\n acc[entity.definitionId] = []\n }\n acc[entity.definitionId].push(entity)\n return acc\n },\n {} as Record<string, PresentationDefinitionItem[]>,\n )\n definitions = Object.values(groupedByDefinitionId).map((entities) =>\n entities.reduce((highestVersionItem, baseItem) => {\n const baseVersion = this.normalizeToSemverVersionFormat(baseItem.version)\n const highestVersion = this.normalizeToSemverVersionFormat(highestVersionItem.version)\n return semver.gt(baseVersion, highestVersion) ? baseItem : highestVersionItem\n }),\n )\n } else {\n definitions = allDefinitions\n }\n return definitions\n }\n\n /** {@inheritDoc IPDManager.pdmDeleteDefinition} */\n private async pdmDeleteDefinition(args: DeleteDefinitionItemArgs): Promise<boolean> {\n return this.store.deleteDefinition(args).then((value) => true)\n }\n\n /** {@inheritDoc IPDManager.pdmDeleteDefinitions} */\n private async pdmDeleteDefinitions(args: DeleteDefinitionItemsArgs): Promise<number> {\n return this.store.deleteDefinitions(args)\n }\n\n /** {@inheritDoc IPDManager.pdmPersistDefinition} */\n private async pdmPersistDefinition(args: PersistDefinitionArgs): Promise<PresentationDefinitionItem> {\n const { definitionItem, opts } = args\n const { versionControlMode, versionIncrementReleaseType } = opts ?? { versionControlMode: 'AutoIncrement' }\n const { version, tenantId } = definitionItem\n const definitionId = definitionItem.definitionId\n\n let { id } = definitionItem\n if (id !== undefined && versionControlMode !== 'Overwrite') {\n id = undefined\n }\n\n const nonPersistedDefinitionItem: NonPersistedPresentationDefinitionItem = {\n ...definitionItem,\n version: version ?? '1',\n }\n\n const existing = await this.store.getDefinitions({ filter: [{ id, definitionId, tenantId, version }] })\n const existingItem = existing[0]\n\n // Always fetch all definitions for the definitionId/tenantId and determine the truly latest version\n const allDefinitions = await this.store.getDefinitions({ filter: [{ definitionId, tenantId }] })\n allDefinitions.sort((a, b) => semver.compare(this.normalizeToSemverVersionFormat(a.version), this.normalizeToSemverVersionFormat(b.version)))\n const trulyLatestVersionItem = allDefinitions[allDefinitions.length - 1]\n\n let latestVersionItem: PresentationDefinitionItem | undefined = trulyLatestVersionItem\n\n // If a specific version exists and matches existingItem, we keep that as a base.\n // Otherwise we use the trulyLatestVersionItem\n if (existingItem && version) {\n latestVersionItem = trulyLatestVersionItem ?? existingItem\n }\n\n const isPayloadModified = !existingItem || !isPresentationDefinitionEqual(existingItem, definitionItem)\n if (!isPayloadModified) return existingItem\n\n switch (versionControlMode) {\n case 'Overwrite':\n return this.handleOverwriteMode(existingItem, nonPersistedDefinitionItem, version)\n case 'OverwriteLatest':\n return this.handleOverwriteLatestMode(latestVersionItem, nonPersistedDefinitionItem)\n case 'Manual':\n return this.handleManualMode(existingItem, nonPersistedDefinitionItem, tenantId, version)\n case 'AutoIncrement':\n return this.handleAutoIncrementMode(latestVersionItem, nonPersistedDefinitionItem, versionIncrementReleaseType ?? 'major')\n default:\n throw new Error(`Unknown version control mode: ${versionControlMode}`)\n }\n }\n\n private async handleOverwriteMode(\n existingItem: PresentationDefinitionItem | undefined,\n definitionItem: NonPersistedPresentationDefinitionItem,\n version: string | undefined,\n ): Promise<PresentationDefinitionItem> {\n if (existingItem) {\n existingItem.definitionId = definitionItem.definitionId\n existingItem.version = version ?? existingItem.version ?? '1'\n existingItem.tenantId = definitionItem.tenantId\n existingItem.name = definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name ?? definitionItem.name\n existingItem.purpose = definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose ?? definitionItem.purpose\n existingItem.dcqlPayload = definitionItem.dcqlPayload\n existingItem.definitionPayload = definitionItem.definitionPayload\n\n return await this.store.updateDefinition(existingItem)\n } else {\n // Apply the same field extraction logic for new items\n const newDefinitionItem = {\n ...definitionItem,\n name: definitionItem.name ?? definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name,\n purpose: definitionItem.purpose ?? definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose,\n }\n return await this.store.addDefinition(newDefinitionItem)\n }\n }\n\n private async handleOverwriteLatestMode(\n latestVersionItem: PresentationDefinitionItem | undefined,\n definitionItem: NonPersistedPresentationDefinitionItem,\n ): Promise<PresentationDefinitionItem> {\n if (latestVersionItem) {\n latestVersionItem.definitionId = definitionItem.definitionId\n latestVersionItem.tenantId = definitionItem.tenantId\n latestVersionItem.name = definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name ?? definitionItem.name\n latestVersionItem.purpose = definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose ?? definitionItem.purpose\n latestVersionItem.definitionPayload = definitionItem.definitionPayload\n latestVersionItem.dcqlPayload = definitionItem.dcqlPayload\n\n return await this.store.updateDefinition(latestVersionItem)\n } else {\n // Apply the same field extraction logic for new items\n const newDefinitionItem = {\n ...definitionItem,\n name: definitionItem.name ?? definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name,\n purpose: definitionItem.purpose ?? definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose,\n }\n return await this.store.addDefinition(newDefinitionItem)\n }\n }\n\n private async handleManualMode(\n existingItem: PresentationDefinitionItem | undefined,\n definitionItem: NonPersistedPresentationDefinitionItem,\n tenantId: string | undefined,\n version: string | undefined,\n ): Promise<PresentationDefinitionItem> {\n if (existingItem && !isPresentationDefinitionEqual(existingItem, definitionItem)) {\n throw Error(\n `Cannot update definition ${definitionItem.definitionId} for tenant ${tenantId} version ${version} because definition exists and manual version control is enabled.`,\n )\n } else {\n return await this.store.addDefinition(definitionItem)\n }\n }\n\n private async handleAutoIncrementMode(\n latestVersionItem: PresentationDefinitionItem | undefined,\n definitionItem: NonPersistedPresentationDefinitionItem,\n releaseType: ReleaseType,\n ): Promise<PresentationDefinitionItem> {\n const defaultVersion = '1'\n let currentVersion = latestVersionItem?.version ?? definitionItem.version ?? defaultVersion\n let resultVersion: string\n\n if (!latestVersionItem) {\n resultVersion = currentVersion\n } else {\n let [baseVersion, preReleaseSuffix] = currentVersion.split(/-(.+)/)\n\n // Normalize the base version to at least 'major.minor.patch', that's what semver needs as input\n let normalizedBaseVersion = semver.coerce(baseVersion)?.version ?? `${defaultVersion}.0.0`\n let preReleaseIdentifier = preReleaseSuffix ? preReleaseSuffix.match(/^[a-zA-Z]+/)?.[0] : undefined\n let fullVersionToIncrement = preReleaseIdentifier ? `${normalizedBaseVersion}-${preReleaseSuffix}` : normalizedBaseVersion\n\n // Use semver to increment the version\n let incrementedVersion = semver.inc(fullVersionToIncrement, releaseType, undefined, preReleaseIdentifier)\n if (!incrementedVersion) {\n throw new Error(`Could not increment ${releaseType} version on ${currentVersion} ${preReleaseSuffix}`)\n }\n\n // Extract new base version to match the original input format\n let [incrementedBaseVersion, incrementedSuffix] = incrementedVersion.split(/-(.+)/)\n let originalParts = baseVersion.split('.')\n let newParts = incrementedBaseVersion.split('.')\n while (newParts.length > originalParts.length) {\n newParts.pop() // Reduce to original length by removing extra .0s\n }\n resultVersion = newParts.join('.')\n if (incrementedSuffix) {\n resultVersion += `-${incrementedSuffix}`\n }\n }\n\n // Apply field extraction logic before adding\n const newDefinitionItem = {\n ...definitionItem,\n version: resultVersion,\n name: definitionItem.name ?? definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name,\n purpose: definitionItem.purpose ?? definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose,\n }\n\n return await this.store.addDefinition(newDefinitionItem)\n }\n private normalizeToSemverVersionFormat(version: string): string {\n const defaultVersion = '1.0.0'\n let [baseVersion, preReleaseSuffix] = version.split(/-(.+)/)\n\n // Normalize the base version to at least 'major.minor.patch', that's what semver needs as input\n let normalizedBaseVersion = semver.coerce(baseVersion)?.version ?? defaultVersion\n if (preReleaseSuffix) {\n normalizedBaseVersion += `-${preReleaseSuffix}`\n }\n\n return normalizedBaseVersion\n }\n}\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { PDManager, pdManagerMethods } from './agent/PDManager'\nexport * from './types/IPDManager'\n\nexport type { ReleaseType } from 'semver'\n"],"mappings":"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","names":["isPresentationDefinitionEqual","semver","pdManagerMethods","PDManager","schema","IPDManager","methods","pdmPersistDefinition","bind","pdmHasDefinition","pdmHasDefinitions","pdmGetDefinition","pdmGetDefinitions","pdmDeleteDefinition","pdmDeleteDefinitions","store","options","args","itemId","hasDefinition","filter","hasDefinitions","getDefinition","opts","allDefinitions","getDefinitions","definitions","undefined","showVersionHistory","groupedByDefinitionId","reduce","acc","entity","definitionId","push","Object","values","map","entities","highestVersionItem","baseItem","baseVersion","normalizeToSemverVersionFormat","version","highestVersion","semver","gt","deleteDefinition","then","value","deleteDefinitions","definitionItem","versionControlMode","versionIncrementReleaseType","tenantId","id","nonPersistedDefinitionItem","existing","existingItem","sort","a","b","compare","trulyLatestVersionItem","length","latestVersionItem","isPayloadModified","isPresentationDefinitionEqual","handleOverwriteMode","handleOverwriteLatestMode","handleManualMode","handleAutoIncrementMode","Error","name","dcqlPayload","definitionPayload","purpose","defaultPurpose","updateDefinition","newDefinitionItem","addDefinition","releaseType","defaultVersion","currentVersion","resultVersion","preReleaseSuffix","split","normalizedBaseVersion","coerce","preReleaseIdentifier","match","fullVersionToIncrement","incrementedVersion","inc","incrementedBaseVersion","incrementedSuffix","originalParts","newParts","pop","join","schema","require"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sphereon/ssi-sdk.pd-manager",
3
- "version": "0.34.1-fix.117+6f692cf3",
3
+ "version": "0.34.1-fix.143+663555b2",
4
4
  "source": "src/index.ts",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -29,14 +29,16 @@
29
29
  "dependencies": {
30
30
  "@sphereon/pex": "5.0.0-unstable.28",
31
31
  "@sphereon/pex-models": "^2.3.2",
32
- "@sphereon/ssi-sdk.data-store": "0.34.1-fix.117+6f692cf3",
32
+ "@sphereon/ssi-sdk.data-store": "0.34.1-fix.143+663555b2",
33
+ "@sphereon/ssi-types": "0.34.1-fix.143+663555b2",
33
34
  "cross-fetch": "^4.1.0",
35
+ "dcql": "1.0.1",
34
36
  "debug": "^4.3.5",
35
37
  "semver": "^7.6.3",
36
38
  "typeorm": "0.3.20"
37
39
  },
38
40
  "devDependencies": {
39
- "@sphereon/ssi-sdk.agent-config": "0.34.1-fix.117+6f692cf3",
41
+ "@sphereon/ssi-sdk.agent-config": "0.34.1-fix.143+663555b2",
40
42
  "@types/semver": "^7.5.8",
41
43
  "@veramo/remote-client": "4.2.0",
42
44
  "@veramo/remote-server": "4.2.0"
@@ -62,5 +64,5 @@
62
64
  "Presentation Defintion Manager",
63
65
  "PD Manager"
64
66
  ],
65
- "gitHead": "6f692cf3d1fdd6a52c757b80010d830c3daf6799"
67
+ "gitHead": "663555b236defd6dd41c316274baee44683c6935"
66
68
  }
@@ -113,7 +113,7 @@ export class PDManager implements IAgentPlugin {
113
113
  const { definitionItem, opts } = args
114
114
  const { versionControlMode, versionIncrementReleaseType } = opts ?? { versionControlMode: 'AutoIncrement' }
115
115
  const { version, tenantId } = definitionItem
116
- const definitionId = definitionItem.definitionId ?? definitionItem.definitionPayload.id
116
+ const definitionId = definitionItem.definitionId
117
117
 
118
118
  let { id } = definitionItem
119
119
  if (id !== undefined && versionControlMode !== 'Overwrite') {
@@ -122,7 +122,6 @@ export class PDManager implements IAgentPlugin {
122
122
 
123
123
  const nonPersistedDefinitionItem: NonPersistedPresentationDefinitionItem = {
124
124
  ...definitionItem,
125
- definitionId: definitionId,
126
125
  version: version ?? '1',
127
126
  }
128
127
 
@@ -168,13 +167,20 @@ export class PDManager implements IAgentPlugin {
168
167
  existingItem.definitionId = definitionItem.definitionId
169
168
  existingItem.version = version ?? existingItem.version ?? '1'
170
169
  existingItem.tenantId = definitionItem.tenantId
171
- existingItem.name = definitionItem.definitionPayload.name ?? definitionItem.name
172
- existingItem.purpose = definitionItem.definitionPayload.purpose ?? definitionItem.purpose
170
+ existingItem.name = definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name ?? definitionItem.name
171
+ existingItem.purpose = definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose ?? definitionItem.purpose
172
+ existingItem.dcqlPayload = definitionItem.dcqlPayload
173
173
  existingItem.definitionPayload = definitionItem.definitionPayload
174
174
 
175
175
  return await this.store.updateDefinition(existingItem)
176
176
  } else {
177
- return await this.store.addDefinition(definitionItem)
177
+ // Apply the same field extraction logic for new items
178
+ const newDefinitionItem = {
179
+ ...definitionItem,
180
+ name: definitionItem.name ?? definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name,
181
+ purpose: definitionItem.purpose ?? definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose,
182
+ }
183
+ return await this.store.addDefinition(newDefinitionItem)
178
184
  }
179
185
  }
180
186
 
@@ -185,13 +191,20 @@ export class PDManager implements IAgentPlugin {
185
191
  if (latestVersionItem) {
186
192
  latestVersionItem.definitionId = definitionItem.definitionId
187
193
  latestVersionItem.tenantId = definitionItem.tenantId
188
- latestVersionItem.name = definitionItem.name
189
- latestVersionItem.purpose = definitionItem.purpose
194
+ latestVersionItem.name = definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name ?? definitionItem.name
195
+ latestVersionItem.purpose = definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose ?? definitionItem.purpose
190
196
  latestVersionItem.definitionPayload = definitionItem.definitionPayload
197
+ latestVersionItem.dcqlPayload = definitionItem.dcqlPayload
191
198
 
192
199
  return await this.store.updateDefinition(latestVersionItem)
193
200
  } else {
194
- return await this.store.addDefinition(definitionItem)
201
+ // Apply the same field extraction logic for new items
202
+ const newDefinitionItem = {
203
+ ...definitionItem,
204
+ name: definitionItem.name ?? definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name,
205
+ purpose: definitionItem.purpose ?? definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose,
206
+ }
207
+ return await this.store.addDefinition(newDefinitionItem)
195
208
  }
196
209
  }
197
210
 
@@ -248,10 +261,16 @@ export class PDManager implements IAgentPlugin {
248
261
  }
249
262
  }
250
263
 
251
- definitionItem.version = resultVersion
252
- return await this.store.addDefinition(definitionItem)
253
- }
264
+ // Apply field extraction logic before adding
265
+ const newDefinitionItem = {
266
+ ...definitionItem,
267
+ version: resultVersion,
268
+ name: definitionItem.name ?? definitionItem.dcqlPayload?.name ?? definitionItem.definitionPayload?.name,
269
+ purpose: definitionItem.purpose ?? definitionItem.dcqlPayload?.defaultPurpose ?? definitionItem.definitionPayload?.purpose,
270
+ }
254
271
 
272
+ return await this.store.addDefinition(newDefinitionItem)
273
+ }
255
274
  private normalizeToSemverVersionFormat(version: string): string {
256
275
  const defaultVersion = '1.0.0'
257
276
  let [baseVersion, preReleaseSuffix] = version.split(/-(.+)/)
@@ -72,9 +72,8 @@ export type DeleteDefinitionItemArgs = {
72
72
 
73
73
  export type DeleteDefinitionItemsArgs = GetDefinitionItemsArgs
74
74
 
75
- export type PersistPresentationDefinitionItem = Omit<NonPersistedPresentationDefinitionItem, 'definitionId' | 'version'> & {
75
+ export type PersistPresentationDefinitionItem = Omit<NonPersistedPresentationDefinitionItem, 'version'> & {
76
76
  id?: string
77
- definitionId?: string
78
77
  version?: string
79
78
  }
80
79