@sphereon/ssi-sdk.pd-manager 0.34.1-feature.SSISDK.65.redirect.fix.260 → 0.34.1-feature.SSISDK.70.integrate.digidentity.306

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
@@ -1146,58 +1146,63 @@ var PDManager = class {
1146
1146
  }
1147
1147
  /** {@inheritDoc IPDManager.pdmPersistDefinition} */
1148
1148
  async pdmPersistDefinition(args) {
1149
- const { definitionItem, opts } = args;
1150
- const { versionControlMode, versionIncrementReleaseType } = opts ?? {
1151
- versionControlMode: "AutoIncrement"
1152
- };
1153
- const { version, tenantId } = definitionItem;
1154
- const definitionId = definitionItem.queryId;
1155
- let { id } = definitionItem;
1156
- if (id !== void 0 && versionControlMode !== "Overwrite") {
1157
- id = void 0;
1158
- }
1159
- const nonPersistedDefinitionItem = {
1160
- ...definitionItem,
1161
- version: version ?? "1"
1162
- };
1163
- const existing = await this.store.getDefinitions({
1164
- filter: [
1165
- {
1166
- id,
1167
- queryId: definitionId,
1168
- tenantId,
1169
- version
1170
- }
1171
- ]
1172
- });
1173
- const existingItem = existing[0];
1174
- const allDefinitions = await this.store.getDefinitions({
1175
- filter: [
1176
- {
1177
- queryId: definitionId,
1178
- tenantId
1179
- }
1180
- ]
1181
- });
1182
- allDefinitions.sort((a, b) => import_preload.default.compare(this.normalizeToSemverVersionFormat(a.version), this.normalizeToSemverVersionFormat(b.version)));
1183
- const trulyLatestVersionItem = allDefinitions[allDefinitions.length - 1];
1184
- let latestVersionItem = trulyLatestVersionItem;
1185
- if (existingItem && version) {
1186
- latestVersionItem = trulyLatestVersionItem ?? existingItem;
1187
- }
1188
- const isPayloadModified = !existingItem || !(0, import_ssi_sdk.isPresentationDefinitionEqual)(existingItem, definitionItem);
1189
- if (!isPayloadModified) return existingItem;
1190
- switch (versionControlMode) {
1191
- case "Overwrite":
1192
- return this.handleOverwriteMode(existingItem, nonPersistedDefinitionItem, version);
1193
- case "OverwriteLatest":
1194
- return this.handleOverwriteLatestMode(latestVersionItem, nonPersistedDefinitionItem);
1195
- case "Manual":
1196
- return this.handleManualMode(existingItem, nonPersistedDefinitionItem, tenantId, version);
1197
- case "AutoIncrement":
1198
- return this.handleAutoIncrementMode(latestVersionItem, nonPersistedDefinitionItem, versionIncrementReleaseType ?? "major");
1199
- default:
1200
- throw new Error(`Unknown version control mode: ${versionControlMode}`);
1149
+ try {
1150
+ const { definitionItem, opts } = args;
1151
+ const { versionControlMode, versionIncrementReleaseType } = opts ?? {
1152
+ versionControlMode: "AutoIncrement"
1153
+ };
1154
+ const { version, tenantId } = definitionItem;
1155
+ const definitionId = definitionItem.queryId;
1156
+ let { id } = definitionItem;
1157
+ if (id !== void 0 && versionControlMode !== "Overwrite") {
1158
+ id = void 0;
1159
+ }
1160
+ const nonPersistedDefinitionItem = {
1161
+ ...definitionItem,
1162
+ version: version ?? "1"
1163
+ };
1164
+ const existing = await this.store.getDefinitions({
1165
+ filter: [
1166
+ {
1167
+ id,
1168
+ queryId: definitionId,
1169
+ tenantId,
1170
+ version
1171
+ }
1172
+ ]
1173
+ });
1174
+ const existingItem = existing[0];
1175
+ const allDefinitions = await this.store.getDefinitions({
1176
+ filter: [
1177
+ {
1178
+ queryId: definitionId,
1179
+ tenantId
1180
+ }
1181
+ ]
1182
+ });
1183
+ allDefinitions.sort((a, b) => import_preload.default.compare(this.normalizeToSemverVersionFormat(a.version), this.normalizeToSemverVersionFormat(b.version)));
1184
+ const trulyLatestVersionItem = allDefinitions[allDefinitions.length - 1];
1185
+ let latestVersionItem = trulyLatestVersionItem;
1186
+ if (existingItem && version) {
1187
+ latestVersionItem = trulyLatestVersionItem ?? existingItem;
1188
+ }
1189
+ const isPayloadModified = !existingItem || !(0, import_ssi_sdk.isPresentationDefinitionEqual)(existingItem, definitionItem);
1190
+ if (!isPayloadModified) return existingItem;
1191
+ switch (versionControlMode) {
1192
+ case "Overwrite":
1193
+ return this.handleOverwriteMode(existingItem, nonPersistedDefinitionItem, version);
1194
+ case "OverwriteLatest":
1195
+ return this.handleOverwriteLatestMode(latestVersionItem, nonPersistedDefinitionItem);
1196
+ case "Manual":
1197
+ return this.handleManualMode(existingItem, nonPersistedDefinitionItem, tenantId, version);
1198
+ case "AutoIncrement":
1199
+ return this.handleAutoIncrementMode(latestVersionItem, nonPersistedDefinitionItem, versionIncrementReleaseType ?? "major");
1200
+ default:
1201
+ throw new Error(`Unknown version control mode: ${versionControlMode}`);
1202
+ }
1203
+ } catch (e) {
1204
+ console.log("pdmPersistDefinition failed", e);
1205
+ throw e;
1201
1206
  }
1202
1207
  }
1203
1208
  async handleOverwriteMode(existingItem, definitionItem, version) {
@@ -1268,7 +1273,13 @@ var PDManager = class {
1268
1273
  ...definitionItem,
1269
1274
  version: resultVersion
1270
1275
  };
1271
- return await this.store.addDefinition(newDefinitionItem);
1276
+ try {
1277
+ const dcqlQueryItem = await this.store.addDefinition(newDefinitionItem);
1278
+ return dcqlQueryItem;
1279
+ } catch (e) {
1280
+ console.log(e);
1281
+ throw e;
1282
+ }
1272
1283
  }
1273
1284
  normalizeToSemverVersionFormat(version) {
1274
1285
  const defaultVersion = "1.0.0";
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../plugin.schema.json","../src/agent/PDManager.ts"],"sourcesContent":["/**\n * @public\n */\nimport schema from '../plugin.schema.json'\nexport { schema }\nexport { PDManager, pdManagerMethods } from './agent/PDManager'\nexport * from './types/IPDManager'\n\nexport type { ReleaseType } from 'semver'\nexport type { ImportDcqlQueryItem } from '@sphereon/ssi-sdk.data-store-types'\nexport type { DcqlQuery } from 'dcql'\n","{\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,(\\\"queryPayload\\\"|\\\"dcqlPayload\\\")>>\"\n },\n \"Partial<Omit<PresentationDefinitionItem,(\\\"queryPayload\\\"|\\\"dcqlPayload\\\")>>\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"queryId\": {\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 \"queryId\": {\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 \"dcqlPayload\": {\n \"$ref\": \"#/components/schemas/DcqlQuery\"\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\", \"queryId\", \"version\", \"query\", \"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 \"DcqlQuery\": {\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 \"queryItem\": {\n \"$ref\": \"#/components/schemas/PersistPresentationDefinitionItem\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/PersistOptions\"\n }\n },\n \"required\": [\"queryItem\"],\n \"additionalProperties\": false\n },\n \"PersistPresentationDefinitionItem\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"queryId\": {\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 \"dcqlPayload\": {\n \"$ref\": \"#/components/schemas/DcqlQuery\"\n }\n },\n \"required\": [\"queryPayload\"]\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 query 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 querys 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 query 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 query 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 query 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 query 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 query. It has version control logic which will add or update presentation query 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 DeleteDcqlQueryItemArgs,\n DeleteDcqlQueryItemsArgs,\n GetDcqlQueryItemArgs,\n GetDcqlQueryItemsArgs,\n HasDefinitionItemArgs,\n HasDcqlQueryItemsArgs,\n IPDManager,\n PersistDcqlQueryArgs,\n schema,\n} from '../index'\nimport { AbstractPDStore, NonPersistedDcqlQueryItem, DcqlQueryItem, AddDefinitionArgs } from '@sphereon/ssi-sdk.data-store-types'\nimport { isPresentationDefinitionEqual } from '@sphereon/ssi-sdk.data-store'\nimport semver from 'semver/preload.js'\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: HasDcqlQueryItemsArgs): Promise<boolean> {\n const { filter } = args\n return this.store.hasDefinitions({ filter })\n }\n\n /** {@inheritDoc IPDManager.pdmGetDefinition} */\n private async pdmGetDefinition(args: GetDcqlQueryItemArgs): Promise<DcqlQueryItem> {\n const { itemId } = args\n return this.store.getDefinition({ itemId })\n }\n\n /** {@inheritDoc IPDManager.pdmGetDefinitions} */\n private async pdmGetDefinitions(args: GetDcqlQueryItemsArgs): Promise<Array<DcqlQueryItem>> {\n const { filter, opts } = args\n const allDefinitions = await this.store.getDefinitions({ filter })\n let definitions: DcqlQueryItem[] = []\n if (opts == undefined || opts.showVersionHistory !== true) {\n const groupedByDefinitionId = allDefinitions.reduce(\n (acc, entity) => {\n if (!acc[entity.queryId]) {\n acc[entity.queryId] = []\n }\n acc[entity.queryId].push(entity)\n return acc\n },\n {} as Record<string, DcqlQueryItem[]>,\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: DeleteDcqlQueryItemArgs): Promise<boolean> {\n return this.store.deleteDefinition(args).then((value) => true)\n }\n\n /** {@inheritDoc IPDManager.pdmDeleteDefinitions} */\n private async pdmDeleteDefinitions(args: DeleteDcqlQueryItemsArgs): Promise<number> {\n return this.store.deleteDefinitions(args)\n }\n\n /** {@inheritDoc IPDManager.pdmPersistDefinition} */\n private async pdmPersistDefinition(args: PersistDcqlQueryArgs): Promise<DcqlQueryItem> {\n const { definitionItem, opts } = args\n const { versionControlMode, versionIncrementReleaseType } = opts ?? { versionControlMode: 'AutoIncrement' }\n const { version, tenantId } = definitionItem\n const definitionId = definitionItem.queryId\n\n let { id } = definitionItem\n if (id !== undefined && versionControlMode !== 'Overwrite') {\n id = undefined\n }\n\n const nonPersistedDefinitionItem: NonPersistedDcqlQueryItem = {\n ...definitionItem,\n version: version ?? '1',\n }\n\n const existing = await this.store.getDefinitions({ filter: [{ id, queryId: 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: [{ queryId: 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: DcqlQueryItem | 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: DcqlQueryItem | undefined,\n definitionItem: NonPersistedDcqlQueryItem,\n version: string | undefined,\n ): Promise<DcqlQueryItem> {\n if (existingItem) {\n existingItem.queryId = definitionItem.queryId\n existingItem.version = version ?? existingItem.version ?? '1'\n existingItem.tenantId = definitionItem.tenantId\n existingItem.name = definitionItem.name\n existingItem.purpose = definitionItem.purpose\n existingItem.query = definitionItem.query\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 } satisfies AddDefinitionArgs\n return await this.store.addDefinition(newDefinitionItem)\n }\n }\n\n private async handleOverwriteLatestMode(\n latestVersionItem: DcqlQueryItem | undefined,\n definitionItem: NonPersistedDcqlQueryItem,\n ): Promise<DcqlQueryItem> {\n if (latestVersionItem) {\n latestVersionItem.queryId = definitionItem.queryId\n latestVersionItem.tenantId = definitionItem.tenantId\n latestVersionItem.name = definitionItem.name\n latestVersionItem.purpose = definitionItem.purpose\n latestVersionItem.query = definitionItem.query\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 } satisfies AddDefinitionArgs\n return await this.store.addDefinition(newDefinitionItem)\n }\n }\n\n private async handleManualMode(\n existingItem: DcqlQueryItem | undefined,\n definitionItem: NonPersistedDcqlQueryItem,\n tenantId: string | undefined,\n version: string | undefined,\n ): Promise<DcqlQueryItem> {\n if (existingItem && !isPresentationDefinitionEqual(existingItem, definitionItem)) {\n throw Error(\n `Cannot update definition ${definitionItem.queryId} 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: DcqlQueryItem | undefined,\n definitionItem: NonPersistedDcqlQueryItem,\n releaseType: ReleaseType,\n ): Promise<DcqlQueryItem> {\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 } satisfies AddDefinitionArgs\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":["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","queryId","push","Object","values","map","entities","highestVersionItem","baseItem","baseVersion","normalizeToSemverVersionFormat","version","highestVersion","semver","gt","deleteDefinition","then","value","deleteDefinitions","definitionItem","versionControlMode","versionIncrementReleaseType","tenantId","definitionId","id","nonPersistedDefinitionItem","existing","existingItem","sort","a","b","compare","trulyLatestVersionItem","length","latestVersionItem","isPayloadModified","isPresentationDefinitionEqual","handleOverwriteMode","handleOverwriteLatestMode","handleManualMode","handleAutoIncrementMode","Error","name","purpose","query","updateDefinition","newDefinitionItem","addDefinition","releaseType","defaultVersion","currentVersion","resultVersion","preReleaseSuffix","split","normalizedBaseVersion","coerce","preReleaseIdentifier","match","fullVersionToIncrement","incrementedVersion","inc","incrementedBaseVersion","incrementedSuffix","originalParts","newParts","pop","join"]}
1
+ {"version":3,"sources":["../src/index.ts","../plugin.schema.json","../src/agent/PDManager.ts"],"sourcesContent":["/**\n * @public\n */\nimport schema from '../plugin.schema.json'\nexport { schema }\nexport { PDManager, pdManagerMethods } from './agent/PDManager'\nexport * from './types/IPDManager'\n\nexport type { ReleaseType } from 'semver'\nexport type { ImportDcqlQueryItem } from '@sphereon/ssi-sdk.data-store-types'\nexport type { DcqlQuery } from 'dcql'\n","{\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,(\\\"queryPayload\\\"|\\\"dcqlPayload\\\")>>\"\n },\n \"Partial<Omit<PresentationDefinitionItem,(\\\"queryPayload\\\"|\\\"dcqlPayload\\\")>>\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"queryId\": {\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 \"queryId\": {\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 \"dcqlPayload\": {\n \"$ref\": \"#/components/schemas/DcqlQuery\"\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\", \"queryId\", \"version\", \"query\", \"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 \"DcqlQuery\": {\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 \"queryItem\": {\n \"$ref\": \"#/components/schemas/PersistPresentationDefinitionItem\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/PersistOptions\"\n }\n },\n \"required\": [\"queryItem\"],\n \"additionalProperties\": false\n },\n \"PersistPresentationDefinitionItem\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"queryId\": {\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 \"dcqlPayload\": {\n \"$ref\": \"#/components/schemas/DcqlQuery\"\n }\n },\n \"required\": [\"queryPayload\"]\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 query 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 querys 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 query 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 query 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 query 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 query 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 query. It has version control logic which will add or update presentation query 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 DeleteDcqlQueryItemArgs,\n DeleteDcqlQueryItemsArgs,\n GetDcqlQueryItemArgs,\n GetDcqlQueryItemsArgs,\n HasDefinitionItemArgs,\n HasDcqlQueryItemsArgs,\n IPDManager,\n PersistDcqlQueryArgs,\n schema,\n} from '../index'\nimport { AbstractPDStore, NonPersistedDcqlQueryItem, DcqlQueryItem, AddDefinitionArgs } from '@sphereon/ssi-sdk.data-store-types'\nimport { isPresentationDefinitionEqual } from '@sphereon/ssi-sdk.data-store'\nimport semver from 'semver/preload.js'\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: HasDcqlQueryItemsArgs): Promise<boolean> {\n const { filter } = args\n return this.store.hasDefinitions({ filter })\n }\n\n /** {@inheritDoc IPDManager.pdmGetDefinition} */\n private async pdmGetDefinition(args: GetDcqlQueryItemArgs): Promise<DcqlQueryItem> {\n const { itemId } = args\n return this.store.getDefinition({ itemId })\n }\n\n /** {@inheritDoc IPDManager.pdmGetDefinitions} */\n private async pdmGetDefinitions(args: GetDcqlQueryItemsArgs): Promise<Array<DcqlQueryItem>> {\n const { filter, opts } = args\n const allDefinitions = await this.store.getDefinitions({ filter })\n let definitions: DcqlQueryItem[] = []\n if (opts == undefined || opts.showVersionHistory !== true) {\n const groupedByDefinitionId = allDefinitions.reduce(\n (acc, entity) => {\n if (!acc[entity.queryId]) {\n acc[entity.queryId] = []\n }\n acc[entity.queryId].push(entity)\n return acc\n },\n {} as Record<string, DcqlQueryItem[]>,\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: DeleteDcqlQueryItemArgs): Promise<boolean> {\n return this.store.deleteDefinition(args).then((value) => true)\n }\n\n /** {@inheritDoc IPDManager.pdmDeleteDefinitions} */\n private async pdmDeleteDefinitions(args: DeleteDcqlQueryItemsArgs): Promise<number> {\n return this.store.deleteDefinitions(args)\n }\n\n /** {@inheritDoc IPDManager.pdmPersistDefinition} */\n private async pdmPersistDefinition(args: PersistDcqlQueryArgs): Promise<DcqlQueryItem> {\n try {\n const { definitionItem, opts } = args\n const { versionControlMode, versionIncrementReleaseType } = opts ?? { versionControlMode: 'AutoIncrement' }\n const { version, tenantId } = definitionItem\n const definitionId = definitionItem.queryId\n\n let { id } = definitionItem\n if (id !== undefined && versionControlMode !== 'Overwrite') {\n id = undefined\n }\n\n const nonPersistedDefinitionItem: NonPersistedDcqlQueryItem = {\n ...definitionItem,\n version: version ?? '1',\n }\n\n const existing = await this.store.getDefinitions({ filter: [{ id, queryId: 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: [{ queryId: 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: DcqlQueryItem | 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 } catch (e) {\n console.log('pdmPersistDefinition failed', e)\n throw e\n }\n }\n\n private async handleOverwriteMode(\n existingItem: DcqlQueryItem | undefined,\n definitionItem: NonPersistedDcqlQueryItem,\n version: string | undefined,\n ): Promise<DcqlQueryItem> {\n if (existingItem) {\n existingItem.queryId = definitionItem.queryId\n existingItem.version = version ?? existingItem.version ?? '1'\n existingItem.tenantId = definitionItem.tenantId\n existingItem.name = definitionItem.name\n existingItem.purpose = definitionItem.purpose\n existingItem.query = definitionItem.query\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 } satisfies AddDefinitionArgs\n return await this.store.addDefinition(newDefinitionItem)\n }\n }\n\n private async handleOverwriteLatestMode(\n latestVersionItem: DcqlQueryItem | undefined,\n definitionItem: NonPersistedDcqlQueryItem,\n ): Promise<DcqlQueryItem> {\n if (latestVersionItem) {\n latestVersionItem.queryId = definitionItem.queryId\n latestVersionItem.tenantId = definitionItem.tenantId\n latestVersionItem.name = definitionItem.name\n latestVersionItem.purpose = definitionItem.purpose\n latestVersionItem.query = definitionItem.query\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 } satisfies AddDefinitionArgs\n return await this.store.addDefinition(newDefinitionItem)\n }\n }\n\n private async handleManualMode(\n existingItem: DcqlQueryItem | undefined,\n definitionItem: NonPersistedDcqlQueryItem,\n tenantId: string | undefined,\n version: string | undefined,\n ): Promise<DcqlQueryItem> {\n if (existingItem && !isPresentationDefinitionEqual(existingItem, definitionItem)) {\n throw Error(\n `Cannot update definition ${definitionItem.queryId} 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: DcqlQueryItem | undefined,\n definitionItem: NonPersistedDcqlQueryItem,\n releaseType: ReleaseType,\n ): Promise<DcqlQueryItem> {\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 } satisfies AddDefinitionArgs\n\n try {\n const dcqlQueryItem = await this.store.addDefinition(newDefinitionItem)\n return dcqlQueryItem\n } catch (e) {\n console.log(e)\n throw e\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":["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","queryId","push","Object","values","map","entities","highestVersionItem","baseItem","baseVersion","normalizeToSemverVersionFormat","version","highestVersion","semver","gt","deleteDefinition","then","value","deleteDefinitions","definitionItem","versionControlMode","versionIncrementReleaseType","tenantId","definitionId","id","nonPersistedDefinitionItem","existing","existingItem","sort","a","b","compare","trulyLatestVersionItem","length","latestVersionItem","isPayloadModified","isPresentationDefinitionEqual","handleOverwriteMode","handleOverwriteLatestMode","handleManualMode","handleAutoIncrementMode","Error","e","console","log","name","purpose","query","updateDefinition","newDefinitionItem","addDefinition","releaseType","defaultVersion","currentVersion","resultVersion","preReleaseSuffix","split","normalizedBaseVersion","coerce","preReleaseIdentifier","match","fullVersionToIncrement","incrementedVersion","inc","incrementedBaseVersion","incrementedSuffix","originalParts","newParts","pop","join","dcqlQueryItem"]}
package/dist/index.js CHANGED
@@ -1110,58 +1110,63 @@ var PDManager = class {
1110
1110
  }
1111
1111
  /** {@inheritDoc IPDManager.pdmPersistDefinition} */
1112
1112
  async pdmPersistDefinition(args) {
1113
- const { definitionItem, opts } = args;
1114
- const { versionControlMode, versionIncrementReleaseType } = opts ?? {
1115
- versionControlMode: "AutoIncrement"
1116
- };
1117
- const { version, tenantId } = definitionItem;
1118
- const definitionId = definitionItem.queryId;
1119
- let { id } = definitionItem;
1120
- if (id !== void 0 && versionControlMode !== "Overwrite") {
1121
- id = void 0;
1122
- }
1123
- const nonPersistedDefinitionItem = {
1124
- ...definitionItem,
1125
- version: version ?? "1"
1126
- };
1127
- const existing = await this.store.getDefinitions({
1128
- filter: [
1129
- {
1130
- id,
1131
- queryId: definitionId,
1132
- tenantId,
1133
- version
1134
- }
1135
- ]
1136
- });
1137
- const existingItem = existing[0];
1138
- const allDefinitions = await this.store.getDefinitions({
1139
- filter: [
1140
- {
1141
- queryId: definitionId,
1142
- tenantId
1143
- }
1144
- ]
1145
- });
1146
- allDefinitions.sort((a, b) => semver.compare(this.normalizeToSemverVersionFormat(a.version), this.normalizeToSemverVersionFormat(b.version)));
1147
- const trulyLatestVersionItem = allDefinitions[allDefinitions.length - 1];
1148
- let latestVersionItem = trulyLatestVersionItem;
1149
- if (existingItem && version) {
1150
- latestVersionItem = trulyLatestVersionItem ?? existingItem;
1151
- }
1152
- const isPayloadModified = !existingItem || !isPresentationDefinitionEqual(existingItem, definitionItem);
1153
- if (!isPayloadModified) return existingItem;
1154
- switch (versionControlMode) {
1155
- case "Overwrite":
1156
- return this.handleOverwriteMode(existingItem, nonPersistedDefinitionItem, version);
1157
- case "OverwriteLatest":
1158
- return this.handleOverwriteLatestMode(latestVersionItem, nonPersistedDefinitionItem);
1159
- case "Manual":
1160
- return this.handleManualMode(existingItem, nonPersistedDefinitionItem, tenantId, version);
1161
- case "AutoIncrement":
1162
- return this.handleAutoIncrementMode(latestVersionItem, nonPersistedDefinitionItem, versionIncrementReleaseType ?? "major");
1163
- default:
1164
- throw new Error(`Unknown version control mode: ${versionControlMode}`);
1113
+ try {
1114
+ const { definitionItem, opts } = args;
1115
+ const { versionControlMode, versionIncrementReleaseType } = opts ?? {
1116
+ versionControlMode: "AutoIncrement"
1117
+ };
1118
+ const { version, tenantId } = definitionItem;
1119
+ const definitionId = definitionItem.queryId;
1120
+ let { id } = definitionItem;
1121
+ if (id !== void 0 && versionControlMode !== "Overwrite") {
1122
+ id = void 0;
1123
+ }
1124
+ const nonPersistedDefinitionItem = {
1125
+ ...definitionItem,
1126
+ version: version ?? "1"
1127
+ };
1128
+ const existing = await this.store.getDefinitions({
1129
+ filter: [
1130
+ {
1131
+ id,
1132
+ queryId: definitionId,
1133
+ tenantId,
1134
+ version
1135
+ }
1136
+ ]
1137
+ });
1138
+ const existingItem = existing[0];
1139
+ const allDefinitions = await this.store.getDefinitions({
1140
+ filter: [
1141
+ {
1142
+ queryId: definitionId,
1143
+ tenantId
1144
+ }
1145
+ ]
1146
+ });
1147
+ allDefinitions.sort((a, b) => semver.compare(this.normalizeToSemverVersionFormat(a.version), this.normalizeToSemverVersionFormat(b.version)));
1148
+ const trulyLatestVersionItem = allDefinitions[allDefinitions.length - 1];
1149
+ let latestVersionItem = trulyLatestVersionItem;
1150
+ if (existingItem && version) {
1151
+ latestVersionItem = trulyLatestVersionItem ?? existingItem;
1152
+ }
1153
+ const isPayloadModified = !existingItem || !isPresentationDefinitionEqual(existingItem, definitionItem);
1154
+ if (!isPayloadModified) return existingItem;
1155
+ switch (versionControlMode) {
1156
+ case "Overwrite":
1157
+ return this.handleOverwriteMode(existingItem, nonPersistedDefinitionItem, version);
1158
+ case "OverwriteLatest":
1159
+ return this.handleOverwriteLatestMode(latestVersionItem, nonPersistedDefinitionItem);
1160
+ case "Manual":
1161
+ return this.handleManualMode(existingItem, nonPersistedDefinitionItem, tenantId, version);
1162
+ case "AutoIncrement":
1163
+ return this.handleAutoIncrementMode(latestVersionItem, nonPersistedDefinitionItem, versionIncrementReleaseType ?? "major");
1164
+ default:
1165
+ throw new Error(`Unknown version control mode: ${versionControlMode}`);
1166
+ }
1167
+ } catch (e) {
1168
+ console.log("pdmPersistDefinition failed", e);
1169
+ throw e;
1165
1170
  }
1166
1171
  }
1167
1172
  async handleOverwriteMode(existingItem, definitionItem, version) {
@@ -1232,7 +1237,13 @@ var PDManager = class {
1232
1237
  ...definitionItem,
1233
1238
  version: resultVersion
1234
1239
  };
1235
- return await this.store.addDefinition(newDefinitionItem);
1240
+ try {
1241
+ const dcqlQueryItem = await this.store.addDefinition(newDefinitionItem);
1242
+ return dcqlQueryItem;
1243
+ } catch (e) {
1244
+ console.log(e);
1245
+ throw e;
1246
+ }
1236
1247
  }
1237
1248
  normalizeToSemverVersionFormat(version) {
1238
1249
  const defaultVersion = "1.0.0";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../plugin.schema.json","../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,(\\\"queryPayload\\\"|\\\"dcqlPayload\\\")>>\"\n },\n \"Partial<Omit<PresentationDefinitionItem,(\\\"queryPayload\\\"|\\\"dcqlPayload\\\")>>\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"queryId\": {\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 \"queryId\": {\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 \"dcqlPayload\": {\n \"$ref\": \"#/components/schemas/DcqlQuery\"\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\", \"queryId\", \"version\", \"query\", \"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 \"DcqlQuery\": {\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 \"queryItem\": {\n \"$ref\": \"#/components/schemas/PersistPresentationDefinitionItem\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/PersistOptions\"\n }\n },\n \"required\": [\"queryItem\"],\n \"additionalProperties\": false\n },\n \"PersistPresentationDefinitionItem\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"queryId\": {\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 \"dcqlPayload\": {\n \"$ref\": \"#/components/schemas/DcqlQuery\"\n }\n },\n \"required\": [\"queryPayload\"]\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 query 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 querys 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 query 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 query 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 query 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 query 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 query. It has version control logic which will add or update presentation query 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 DeleteDcqlQueryItemArgs,\n DeleteDcqlQueryItemsArgs,\n GetDcqlQueryItemArgs,\n GetDcqlQueryItemsArgs,\n HasDefinitionItemArgs,\n HasDcqlQueryItemsArgs,\n IPDManager,\n PersistDcqlQueryArgs,\n schema,\n} from '../index'\nimport { AbstractPDStore, NonPersistedDcqlQueryItem, DcqlQueryItem, AddDefinitionArgs } from '@sphereon/ssi-sdk.data-store-types'\nimport { isPresentationDefinitionEqual } from '@sphereon/ssi-sdk.data-store'\nimport semver from 'semver/preload.js'\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: HasDcqlQueryItemsArgs): Promise<boolean> {\n const { filter } = args\n return this.store.hasDefinitions({ filter })\n }\n\n /** {@inheritDoc IPDManager.pdmGetDefinition} */\n private async pdmGetDefinition(args: GetDcqlQueryItemArgs): Promise<DcqlQueryItem> {\n const { itemId } = args\n return this.store.getDefinition({ itemId })\n }\n\n /** {@inheritDoc IPDManager.pdmGetDefinitions} */\n private async pdmGetDefinitions(args: GetDcqlQueryItemsArgs): Promise<Array<DcqlQueryItem>> {\n const { filter, opts } = args\n const allDefinitions = await this.store.getDefinitions({ filter })\n let definitions: DcqlQueryItem[] = []\n if (opts == undefined || opts.showVersionHistory !== true) {\n const groupedByDefinitionId = allDefinitions.reduce(\n (acc, entity) => {\n if (!acc[entity.queryId]) {\n acc[entity.queryId] = []\n }\n acc[entity.queryId].push(entity)\n return acc\n },\n {} as Record<string, DcqlQueryItem[]>,\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: DeleteDcqlQueryItemArgs): Promise<boolean> {\n return this.store.deleteDefinition(args).then((value) => true)\n }\n\n /** {@inheritDoc IPDManager.pdmDeleteDefinitions} */\n private async pdmDeleteDefinitions(args: DeleteDcqlQueryItemsArgs): Promise<number> {\n return this.store.deleteDefinitions(args)\n }\n\n /** {@inheritDoc IPDManager.pdmPersistDefinition} */\n private async pdmPersistDefinition(args: PersistDcqlQueryArgs): Promise<DcqlQueryItem> {\n const { definitionItem, opts } = args\n const { versionControlMode, versionIncrementReleaseType } = opts ?? { versionControlMode: 'AutoIncrement' }\n const { version, tenantId } = definitionItem\n const definitionId = definitionItem.queryId\n\n let { id } = definitionItem\n if (id !== undefined && versionControlMode !== 'Overwrite') {\n id = undefined\n }\n\n const nonPersistedDefinitionItem: NonPersistedDcqlQueryItem = {\n ...definitionItem,\n version: version ?? '1',\n }\n\n const existing = await this.store.getDefinitions({ filter: [{ id, queryId: 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: [{ queryId: 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: DcqlQueryItem | 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: DcqlQueryItem | undefined,\n definitionItem: NonPersistedDcqlQueryItem,\n version: string | undefined,\n ): Promise<DcqlQueryItem> {\n if (existingItem) {\n existingItem.queryId = definitionItem.queryId\n existingItem.version = version ?? existingItem.version ?? '1'\n existingItem.tenantId = definitionItem.tenantId\n existingItem.name = definitionItem.name\n existingItem.purpose = definitionItem.purpose\n existingItem.query = definitionItem.query\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 } satisfies AddDefinitionArgs\n return await this.store.addDefinition(newDefinitionItem)\n }\n }\n\n private async handleOverwriteLatestMode(\n latestVersionItem: DcqlQueryItem | undefined,\n definitionItem: NonPersistedDcqlQueryItem,\n ): Promise<DcqlQueryItem> {\n if (latestVersionItem) {\n latestVersionItem.queryId = definitionItem.queryId\n latestVersionItem.tenantId = definitionItem.tenantId\n latestVersionItem.name = definitionItem.name\n latestVersionItem.purpose = definitionItem.purpose\n latestVersionItem.query = definitionItem.query\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 } satisfies AddDefinitionArgs\n return await this.store.addDefinition(newDefinitionItem)\n }\n }\n\n private async handleManualMode(\n existingItem: DcqlQueryItem | undefined,\n definitionItem: NonPersistedDcqlQueryItem,\n tenantId: string | undefined,\n version: string | undefined,\n ): Promise<DcqlQueryItem> {\n if (existingItem && !isPresentationDefinitionEqual(existingItem, definitionItem)) {\n throw Error(\n `Cannot update definition ${definitionItem.queryId} 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: DcqlQueryItem | undefined,\n definitionItem: NonPersistedDcqlQueryItem,\n releaseType: ReleaseType,\n ): Promise<DcqlQueryItem> {\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 } satisfies AddDefinitionArgs\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":["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","queryId","push","Object","values","map","entities","highestVersionItem","baseItem","baseVersion","normalizeToSemverVersionFormat","version","highestVersion","semver","gt","deleteDefinition","then","value","deleteDefinitions","definitionItem","versionControlMode","versionIncrementReleaseType","tenantId","definitionId","id","nonPersistedDefinitionItem","existing","existingItem","sort","a","b","compare","trulyLatestVersionItem","length","latestVersionItem","isPayloadModified","isPresentationDefinitionEqual","handleOverwriteMode","handleOverwriteLatestMode","handleManualMode","handleAutoIncrementMode","Error","name","purpose","query","updateDefinition","newDefinitionItem","addDefinition","releaseType","defaultVersion","currentVersion","resultVersion","preReleaseSuffix","split","normalizedBaseVersion","coerce","preReleaseIdentifier","match","fullVersionToIncrement","incrementedVersion","inc","incrementedBaseVersion","incrementedSuffix","originalParts","newParts","pop","join"]}
1
+ {"version":3,"sources":["../plugin.schema.json","../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,(\\\"queryPayload\\\"|\\\"dcqlPayload\\\")>>\"\n },\n \"Partial<Omit<PresentationDefinitionItem,(\\\"queryPayload\\\"|\\\"dcqlPayload\\\")>>\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"queryId\": {\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 \"queryId\": {\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 \"dcqlPayload\": {\n \"$ref\": \"#/components/schemas/DcqlQuery\"\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\", \"queryId\", \"version\", \"query\", \"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 \"DcqlQuery\": {\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 \"queryItem\": {\n \"$ref\": \"#/components/schemas/PersistPresentationDefinitionItem\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/PersistOptions\"\n }\n },\n \"required\": [\"queryItem\"],\n \"additionalProperties\": false\n },\n \"PersistPresentationDefinitionItem\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"queryId\": {\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 \"dcqlPayload\": {\n \"$ref\": \"#/components/schemas/DcqlQuery\"\n }\n },\n \"required\": [\"queryPayload\"]\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 query 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 querys 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 query 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 query 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 query 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 query 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 query. It has version control logic which will add or update presentation query 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 DeleteDcqlQueryItemArgs,\n DeleteDcqlQueryItemsArgs,\n GetDcqlQueryItemArgs,\n GetDcqlQueryItemsArgs,\n HasDefinitionItemArgs,\n HasDcqlQueryItemsArgs,\n IPDManager,\n PersistDcqlQueryArgs,\n schema,\n} from '../index'\nimport { AbstractPDStore, NonPersistedDcqlQueryItem, DcqlQueryItem, AddDefinitionArgs } from '@sphereon/ssi-sdk.data-store-types'\nimport { isPresentationDefinitionEqual } from '@sphereon/ssi-sdk.data-store'\nimport semver from 'semver/preload.js'\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: HasDcqlQueryItemsArgs): Promise<boolean> {\n const { filter } = args\n return this.store.hasDefinitions({ filter })\n }\n\n /** {@inheritDoc IPDManager.pdmGetDefinition} */\n private async pdmGetDefinition(args: GetDcqlQueryItemArgs): Promise<DcqlQueryItem> {\n const { itemId } = args\n return this.store.getDefinition({ itemId })\n }\n\n /** {@inheritDoc IPDManager.pdmGetDefinitions} */\n private async pdmGetDefinitions(args: GetDcqlQueryItemsArgs): Promise<Array<DcqlQueryItem>> {\n const { filter, opts } = args\n const allDefinitions = await this.store.getDefinitions({ filter })\n let definitions: DcqlQueryItem[] = []\n if (opts == undefined || opts.showVersionHistory !== true) {\n const groupedByDefinitionId = allDefinitions.reduce(\n (acc, entity) => {\n if (!acc[entity.queryId]) {\n acc[entity.queryId] = []\n }\n acc[entity.queryId].push(entity)\n return acc\n },\n {} as Record<string, DcqlQueryItem[]>,\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: DeleteDcqlQueryItemArgs): Promise<boolean> {\n return this.store.deleteDefinition(args).then((value) => true)\n }\n\n /** {@inheritDoc IPDManager.pdmDeleteDefinitions} */\n private async pdmDeleteDefinitions(args: DeleteDcqlQueryItemsArgs): Promise<number> {\n return this.store.deleteDefinitions(args)\n }\n\n /** {@inheritDoc IPDManager.pdmPersistDefinition} */\n private async pdmPersistDefinition(args: PersistDcqlQueryArgs): Promise<DcqlQueryItem> {\n try {\n const { definitionItem, opts } = args\n const { versionControlMode, versionIncrementReleaseType } = opts ?? { versionControlMode: 'AutoIncrement' }\n const { version, tenantId } = definitionItem\n const definitionId = definitionItem.queryId\n\n let { id } = definitionItem\n if (id !== undefined && versionControlMode !== 'Overwrite') {\n id = undefined\n }\n\n const nonPersistedDefinitionItem: NonPersistedDcqlQueryItem = {\n ...definitionItem,\n version: version ?? '1',\n }\n\n const existing = await this.store.getDefinitions({ filter: [{ id, queryId: 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: [{ queryId: 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: DcqlQueryItem | 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 } catch (e) {\n console.log('pdmPersistDefinition failed', e)\n throw e\n }\n }\n\n private async handleOverwriteMode(\n existingItem: DcqlQueryItem | undefined,\n definitionItem: NonPersistedDcqlQueryItem,\n version: string | undefined,\n ): Promise<DcqlQueryItem> {\n if (existingItem) {\n existingItem.queryId = definitionItem.queryId\n existingItem.version = version ?? existingItem.version ?? '1'\n existingItem.tenantId = definitionItem.tenantId\n existingItem.name = definitionItem.name\n existingItem.purpose = definitionItem.purpose\n existingItem.query = definitionItem.query\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 } satisfies AddDefinitionArgs\n return await this.store.addDefinition(newDefinitionItem)\n }\n }\n\n private async handleOverwriteLatestMode(\n latestVersionItem: DcqlQueryItem | undefined,\n definitionItem: NonPersistedDcqlQueryItem,\n ): Promise<DcqlQueryItem> {\n if (latestVersionItem) {\n latestVersionItem.queryId = definitionItem.queryId\n latestVersionItem.tenantId = definitionItem.tenantId\n latestVersionItem.name = definitionItem.name\n latestVersionItem.purpose = definitionItem.purpose\n latestVersionItem.query = definitionItem.query\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 } satisfies AddDefinitionArgs\n return await this.store.addDefinition(newDefinitionItem)\n }\n }\n\n private async handleManualMode(\n existingItem: DcqlQueryItem | undefined,\n definitionItem: NonPersistedDcqlQueryItem,\n tenantId: string | undefined,\n version: string | undefined,\n ): Promise<DcqlQueryItem> {\n if (existingItem && !isPresentationDefinitionEqual(existingItem, definitionItem)) {\n throw Error(\n `Cannot update definition ${definitionItem.queryId} 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: DcqlQueryItem | undefined,\n definitionItem: NonPersistedDcqlQueryItem,\n releaseType: ReleaseType,\n ): Promise<DcqlQueryItem> {\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 } satisfies AddDefinitionArgs\n\n try {\n const dcqlQueryItem = await this.store.addDefinition(newDefinitionItem)\n return dcqlQueryItem\n } catch (e) {\n console.log(e)\n throw e\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":["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","queryId","push","Object","values","map","entities","highestVersionItem","baseItem","baseVersion","normalizeToSemverVersionFormat","version","highestVersion","semver","gt","deleteDefinition","then","value","deleteDefinitions","definitionItem","versionControlMode","versionIncrementReleaseType","tenantId","definitionId","id","nonPersistedDefinitionItem","existing","existingItem","sort","a","b","compare","trulyLatestVersionItem","length","latestVersionItem","isPayloadModified","isPresentationDefinitionEqual","handleOverwriteMode","handleOverwriteLatestMode","handleManualMode","handleAutoIncrementMode","Error","e","console","log","name","purpose","query","updateDefinition","newDefinitionItem","addDefinition","releaseType","defaultVersion","currentVersion","resultVersion","preReleaseSuffix","split","normalizedBaseVersion","coerce","preReleaseIdentifier","match","fullVersionToIncrement","incrementedVersion","inc","incrementedBaseVersion","incrementedSuffix","originalParts","newParts","pop","join","dcqlQueryItem"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sphereon/ssi-sdk.pd-manager",
3
- "version": "0.34.1-feature.SSISDK.65.redirect.fix.260+6e576ccc",
3
+ "version": "0.34.1-feature.SSISDK.70.integrate.digidentity.306+44911856",
4
4
  "source": "src/index.ts",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -29,9 +29,9 @@
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-feature.SSISDK.65.redirect.fix.260+6e576ccc",
33
- "@sphereon/ssi-sdk.data-store-types": "0.34.1-feature.SSISDK.65.redirect.fix.260+6e576ccc",
34
- "@sphereon/ssi-types": "0.34.1-feature.SSISDK.65.redirect.fix.260+6e576ccc",
32
+ "@sphereon/ssi-sdk.data-store": "0.34.1-feature.SSISDK.70.integrate.digidentity.306+44911856",
33
+ "@sphereon/ssi-sdk.data-store-types": "0.34.1-feature.SSISDK.70.integrate.digidentity.306+44911856",
34
+ "@sphereon/ssi-types": "0.34.1-feature.SSISDK.70.integrate.digidentity.306+44911856",
35
35
  "cross-fetch": "^4.1.0",
36
36
  "dcql": "1.0.1",
37
37
  "debug": "^4.3.5",
@@ -39,7 +39,7 @@
39
39
  "typeorm": "0.3.20"
40
40
  },
41
41
  "devDependencies": {
42
- "@sphereon/ssi-sdk.agent-config": "0.34.1-feature.SSISDK.65.redirect.fix.260+6e576ccc",
42
+ "@sphereon/ssi-sdk.agent-config": "0.34.1-feature.SSISDK.70.integrate.digidentity.306+44911856",
43
43
  "@types/semver": "^7.5.8",
44
44
  "@veramo/remote-client": "4.2.0",
45
45
  "@veramo/remote-server": "4.2.0"
@@ -65,5 +65,5 @@
65
65
  "Presentation Defintion Manager",
66
66
  "PD Manager"
67
67
  ],
68
- "gitHead": "6e576ccc1d43004dbedfd8c958193a0ff5884fae"
68
+ "gitHead": "4491185688c3daa30f33d7f435ff75c9b0a853cb"
69
69
  }
@@ -106,51 +106,56 @@ export class PDManager implements IAgentPlugin {
106
106
 
107
107
  /** {@inheritDoc IPDManager.pdmPersistDefinition} */
108
108
  private async pdmPersistDefinition(args: PersistDcqlQueryArgs): Promise<DcqlQueryItem> {
109
- const { definitionItem, opts } = args
110
- const { versionControlMode, versionIncrementReleaseType } = opts ?? { versionControlMode: 'AutoIncrement' }
111
- const { version, tenantId } = definitionItem
112
- const definitionId = definitionItem.queryId
113
-
114
- let { id } = definitionItem
115
- if (id !== undefined && versionControlMode !== 'Overwrite') {
116
- id = undefined
117
- }
109
+ try {
110
+ const { definitionItem, opts } = args
111
+ const { versionControlMode, versionIncrementReleaseType } = opts ?? { versionControlMode: 'AutoIncrement' }
112
+ const { version, tenantId } = definitionItem
113
+ const definitionId = definitionItem.queryId
114
+
115
+ let { id } = definitionItem
116
+ if (id !== undefined && versionControlMode !== 'Overwrite') {
117
+ id = undefined
118
+ }
118
119
 
119
- const nonPersistedDefinitionItem: NonPersistedDcqlQueryItem = {
120
- ...definitionItem,
121
- version: version ?? '1',
122
- }
120
+ const nonPersistedDefinitionItem: NonPersistedDcqlQueryItem = {
121
+ ...definitionItem,
122
+ version: version ?? '1',
123
+ }
123
124
 
124
- const existing = await this.store.getDefinitions({ filter: [{ id, queryId: definitionId, tenantId, version }] })
125
- const existingItem = existing[0]
125
+ const existing = await this.store.getDefinitions({ filter: [{ id, queryId: definitionId, tenantId, version }] })
126
+ const existingItem = existing[0]
126
127
 
127
- // Always fetch all definitions for the definitionId/tenantId and determine the truly latest version
128
- const allDefinitions = await this.store.getDefinitions({ filter: [{ queryId: definitionId, tenantId }] })
129
- allDefinitions.sort((a, b) => semver.compare(this.normalizeToSemverVersionFormat(a.version), this.normalizeToSemverVersionFormat(b.version)))
130
- const trulyLatestVersionItem = allDefinitions[allDefinitions.length - 1]
128
+ // Always fetch all definitions for the definitionId/tenantId and determine the truly latest version
129
+ const allDefinitions = await this.store.getDefinitions({ filter: [{ queryId: definitionId, tenantId }] })
130
+ allDefinitions.sort((a, b) => semver.compare(this.normalizeToSemverVersionFormat(a.version), this.normalizeToSemverVersionFormat(b.version)))
131
+ const trulyLatestVersionItem = allDefinitions[allDefinitions.length - 1]
131
132
 
132
- let latestVersionItem: DcqlQueryItem | undefined = trulyLatestVersionItem
133
+ let latestVersionItem: DcqlQueryItem | undefined = trulyLatestVersionItem
133
134
 
134
- // If a specific version exists and matches existingItem, we keep that as a base.
135
- // Otherwise we use the trulyLatestVersionItem
136
- if (existingItem && version) {
137
- latestVersionItem = trulyLatestVersionItem ?? existingItem
138
- }
135
+ // If a specific version exists and matches existingItem, we keep that as a base.
136
+ // Otherwise we use the trulyLatestVersionItem
137
+ if (existingItem && version) {
138
+ latestVersionItem = trulyLatestVersionItem ?? existingItem
139
+ }
139
140
 
140
- const isPayloadModified = !existingItem || !isPresentationDefinitionEqual(existingItem, definitionItem)
141
- if (!isPayloadModified) return existingItem
142
-
143
- switch (versionControlMode) {
144
- case 'Overwrite':
145
- return this.handleOverwriteMode(existingItem, nonPersistedDefinitionItem, version)
146
- case 'OverwriteLatest':
147
- return this.handleOverwriteLatestMode(latestVersionItem, nonPersistedDefinitionItem)
148
- case 'Manual':
149
- return this.handleManualMode(existingItem, nonPersistedDefinitionItem, tenantId, version)
150
- case 'AutoIncrement':
151
- return this.handleAutoIncrementMode(latestVersionItem, nonPersistedDefinitionItem, versionIncrementReleaseType ?? 'major')
152
- default:
153
- throw new Error(`Unknown version control mode: ${versionControlMode}`)
141
+ const isPayloadModified = !existingItem || !isPresentationDefinitionEqual(existingItem, definitionItem)
142
+ if (!isPayloadModified) return existingItem
143
+
144
+ switch (versionControlMode) {
145
+ case 'Overwrite':
146
+ return this.handleOverwriteMode(existingItem, nonPersistedDefinitionItem, version)
147
+ case 'OverwriteLatest':
148
+ return this.handleOverwriteLatestMode(latestVersionItem, nonPersistedDefinitionItem)
149
+ case 'Manual':
150
+ return this.handleManualMode(existingItem, nonPersistedDefinitionItem, tenantId, version)
151
+ case 'AutoIncrement':
152
+ return this.handleAutoIncrementMode(latestVersionItem, nonPersistedDefinitionItem, versionIncrementReleaseType ?? 'major')
153
+ default:
154
+ throw new Error(`Unknown version control mode: ${versionControlMode}`)
155
+ }
156
+ } catch (e) {
157
+ console.log('pdmPersistDefinition failed', e)
158
+ throw e
154
159
  }
155
160
  }
156
161
 
@@ -257,7 +262,13 @@ export class PDManager implements IAgentPlugin {
257
262
  version: resultVersion,
258
263
  } satisfies AddDefinitionArgs
259
264
 
260
- return await this.store.addDefinition(newDefinitionItem)
265
+ try {
266
+ const dcqlQueryItem = await this.store.addDefinition(newDefinitionItem)
267
+ return dcqlQueryItem
268
+ } catch (e) {
269
+ console.log(e)
270
+ throw e
271
+ }
261
272
  }
262
273
  private normalizeToSemverVersionFormat(version: string): string {
263
274
  const defaultVersion = '1.0.0'