@twin.org/rights-management-service 0.0.3-next.2 → 0.0.3-next.3
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.
|
@@ -56,7 +56,7 @@ export function generateRestRoutesPolicyNegotiationPoint(baseRouteName, componen
|
|
|
56
56
|
id: "pnpGetNegotiationResponseExample",
|
|
57
57
|
response: {
|
|
58
58
|
body: {
|
|
59
|
-
"@context": DataspaceProtocolContexts.ContextRoot,
|
|
59
|
+
"@context": [DataspaceProtocolContexts.ContextRoot],
|
|
60
60
|
"@type": ContractNegotiationTypes.ContractNegotiation,
|
|
61
61
|
providerPid: "urn:contract-negotiation:002aa11bb.......ffff",
|
|
62
62
|
consumerPid: "urn:contract-negotiation:22aa11bb.......ffff",
|
|
@@ -92,7 +92,7 @@ export function generateRestRoutesPolicyNegotiationPoint(baseRouteName, componen
|
|
|
92
92
|
[HeaderTypes.Authorization]: "z3Vcuh2BP9ShC.z3Vcuh2BP9ShC.z3Vcuh2BP9ShC"
|
|
93
93
|
},
|
|
94
94
|
body: {
|
|
95
|
-
"@context": DataspaceProtocolContexts.ContextRoot,
|
|
95
|
+
"@context": [DataspaceProtocolContexts.ContextRoot],
|
|
96
96
|
"@type": ContractNegotiationTypes.ContractRequestMessage,
|
|
97
97
|
consumerPid: "urn:contract-negotiation:22aa11bb.......ffff",
|
|
98
98
|
offer: {
|
|
@@ -114,7 +114,7 @@ export function generateRestRoutesPolicyNegotiationPoint(baseRouteName, componen
|
|
|
114
114
|
id: "IPnpNegotiationRequestResponseExample",
|
|
115
115
|
response: {
|
|
116
116
|
body: {
|
|
117
|
-
"@context": DataspaceProtocolContexts.ContextRoot,
|
|
117
|
+
"@context": [DataspaceProtocolContexts.ContextRoot],
|
|
118
118
|
"@type": ContractNegotiationTypes.ContractNegotiation,
|
|
119
119
|
providerPid: "urn:contract-negotiation:00aa11bb.......ffff",
|
|
120
120
|
consumerPid: "urn:contract-negotiation:22aa11bb.......ffff",
|
|
@@ -153,7 +153,7 @@ export function generateRestRoutesPolicyNegotiationPoint(baseRouteName, componen
|
|
|
153
153
|
id: "urn:contract-negotiation:00aa11bb.......ffff"
|
|
154
154
|
},
|
|
155
155
|
body: {
|
|
156
|
-
"@context": DataspaceProtocolContexts.ContextRoot,
|
|
156
|
+
"@context": [DataspaceProtocolContexts.ContextRoot],
|
|
157
157
|
"@type": ContractNegotiationTypes.ContractRequestMessage,
|
|
158
158
|
consumerPid: "urn:contract-negotiation:22aa11bb.......ffff",
|
|
159
159
|
offer: {
|
|
@@ -208,7 +208,7 @@ export function generateRestRoutesPolicyNegotiationPoint(baseRouteName, componen
|
|
|
208
208
|
id: "urn:contract-negotiation:00aa11bb.......ffff"
|
|
209
209
|
},
|
|
210
210
|
body: {
|
|
211
|
-
"@context": DataspaceProtocolContexts.ContextRoot,
|
|
211
|
+
"@context": [DataspaceProtocolContexts.ContextRoot],
|
|
212
212
|
"@type": ContractNegotiationTypes.ContractRequestMessage,
|
|
213
213
|
providerPid: "urn:contract-negotiation:00aa11bb.......ffff",
|
|
214
214
|
consumerPid: "urn:contract-negotiation:22aa11bb.......ffff",
|
|
@@ -259,7 +259,7 @@ export function generateRestRoutesPolicyNegotiationPoint(baseRouteName, componen
|
|
|
259
259
|
id: "urn:contract-negotiation:00aa11bb.......ffff"
|
|
260
260
|
},
|
|
261
261
|
body: {
|
|
262
|
-
"@context": DataspaceProtocolContexts.ContextRoot,
|
|
262
|
+
"@context": [DataspaceProtocolContexts.ContextRoot],
|
|
263
263
|
"@type": ContractNegotiationTypes.ContractRequestMessage,
|
|
264
264
|
providerPid: "urn:contract-negotiation:00aa11bb.......ffff",
|
|
265
265
|
consumerPid: "urn:contract-negotiation:22aa11bb.......ffff"
|
|
@@ -309,7 +309,7 @@ export function generateRestRoutesPolicyNegotiationPoint(baseRouteName, componen
|
|
|
309
309
|
id: "urn:contract-negotiation:00aa11bb.......ffff"
|
|
310
310
|
},
|
|
311
311
|
body: {
|
|
312
|
-
"@context": DataspaceProtocolContexts.ContextRoot,
|
|
312
|
+
"@context": [DataspaceProtocolContexts.ContextRoot],
|
|
313
313
|
"@type": ContractNegotiationTypes.ContractRequestMessage,
|
|
314
314
|
providerPid: "urn:contract-negotiation:00aa11bb.......ffff",
|
|
315
315
|
consumerPid: "urn:contract-negotiation:22aa11bb.......ffff"
|
|
@@ -356,7 +356,7 @@ export function generateRestRoutesPolicyNegotiationPoint(baseRouteName, componen
|
|
|
356
356
|
[HeaderTypes.Authorization]: "z3Vcuh2BP9ShC.z3Vcuh2BP9ShC.z3Vcuh2BP9ShC"
|
|
357
357
|
},
|
|
358
358
|
body: {
|
|
359
|
-
"@context": DataspaceProtocolContexts.ContextRoot,
|
|
359
|
+
"@context": [DataspaceProtocolContexts.ContextRoot],
|
|
360
360
|
"@type": ContractNegotiationTypes.ContractRequestMessage,
|
|
361
361
|
providerPid: "urn:contract-negotiation:00aa11bb.......ffff",
|
|
362
362
|
consumerPid: "urn:contract-negotiation:22aa11bb.......ffff",
|
|
@@ -379,7 +379,7 @@ export function generateRestRoutesPolicyNegotiationPoint(baseRouteName, componen
|
|
|
379
379
|
id: "pnpNegotiationOfferResponseExample",
|
|
380
380
|
response: {
|
|
381
381
|
body: {
|
|
382
|
-
"@context": DataspaceProtocolContexts.ContextRoot,
|
|
382
|
+
"@context": [DataspaceProtocolContexts.ContextRoot],
|
|
383
383
|
"@type": ContractNegotiationTypes.ContractRequestMessage,
|
|
384
384
|
providerPid: "urn:contract-negotiation:00aa11bb.......ffff",
|
|
385
385
|
consumerPid: "urn:contract-negotiation:22aa11bb.......ffff"
|
|
@@ -417,7 +417,7 @@ export function generateRestRoutesPolicyNegotiationPoint(baseRouteName, componen
|
|
|
417
417
|
id: "urn:contract-negotiation:22aa11bb.......ffff"
|
|
418
418
|
},
|
|
419
419
|
body: {
|
|
420
|
-
"@context": DataspaceProtocolContexts.ContextRoot,
|
|
420
|
+
"@context": [DataspaceProtocolContexts.ContextRoot],
|
|
421
421
|
"@type": ContractNegotiationTypes.ContractRequestMessage,
|
|
422
422
|
providerPid: "urn:contract-negotiation:00aa11bb.......ffff",
|
|
423
423
|
consumerPid: "urn:contract-negotiation:22aa11bb.......ffff",
|
|
@@ -440,7 +440,7 @@ export function generateRestRoutesPolicyNegotiationPoint(baseRouteName, componen
|
|
|
440
440
|
id: "pnpNegotiationConsumerOfferResponseExample",
|
|
441
441
|
response: {
|
|
442
442
|
body: {
|
|
443
|
-
"@context": DataspaceProtocolContexts.ContextRoot,
|
|
443
|
+
"@context": [DataspaceProtocolContexts.ContextRoot],
|
|
444
444
|
"@type": ContractNegotiationTypes.ContractNegotiation,
|
|
445
445
|
providerPid: "urn:contract-negotiation:00aa11bb.......ffff",
|
|
446
446
|
consumerPid: "urn:contract-negotiation:22aa11bb.......ffff"
|
|
@@ -478,7 +478,7 @@ export function generateRestRoutesPolicyNegotiationPoint(baseRouteName, componen
|
|
|
478
478
|
id: "urn:contract-negotiation:22aa11bb.......ffff"
|
|
479
479
|
},
|
|
480
480
|
body: {
|
|
481
|
-
"@context": DataspaceProtocolContexts.ContextRoot,
|
|
481
|
+
"@context": [DataspaceProtocolContexts.ContextRoot],
|
|
482
482
|
"@type": ContractNegotiationTypes.ContractRequestMessage,
|
|
483
483
|
providerPid: "urn:contract-negotiation:00aa11bb.......ffff",
|
|
484
484
|
consumerPid: "urn:contract-negotiation:22aa11bb.......ffff",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policyNegotiationPointRoutes.js","sourceRoot":"","sources":["../../src/policyNegotiationPointRoutes.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IHttpRequestContext, IRestRoute, ITag } from \"@twin.org/api-models\";\nimport { ContextIdKeys } from \"@twin.org/context\";\nimport { ComponentFactory, Guards, Is } from \"@twin.org/core\";\nimport type { IIdentityAuthenticationActionRequest } from \"@twin.org/identity-authentication\";\nimport { nameof } from \"@twin.org/nameof\";\nimport type {\n\tIPnpAgreementRequest,\n\tIPnpAgreementVerificationRequest,\n\tIPnpContractNegotiationResponse,\n\tIPnpContractResponse,\n\tIPnpEventRequest,\n\tIPnpNegotiateRequest,\n\tIPnpNegotiationGetRequest,\n\tIPnpOfferRequest,\n\tIPnpTerminateRequest,\n\tIPolicyNegotiationPointComponent\n} from \"@twin.org/rights-management-models\";\nimport {\n\tContractNegotiationEventType,\n\tContractNegotiationStateType,\n\tContractNegotiationTypes,\n\tDataspaceProtocolContexts,\n\ttype IContractNegotiation,\n\ttype IContractNegotiationError\n} from \"@twin.org/standards-dataspace-protocol\";\nimport { OdrlContexts, OdrlTypes } from \"@twin.org/standards-w3c-odrl\";\nimport { HeaderTypes, HttpStatusCode, MimeTypes } from \"@twin.org/web\";\n\n/**\n * The source used when communicating about these routes.\n */\nconst ROUTES_SOURCE = \"policyNegotiationPointRoutes\";\n\n/**\n * The tag to associate with the routes.\n */\nexport const pnpTags: ITag[] = [\n\t{\n\t\tname: \"Policy Negotiation Point\",\n\t\tdescription: \"Endpoints for managing ODRL policies in the Policy Negotiation Point\"\n\t}\n];\n\n/**\n * The REST routes for the Policy Negotiation Point.\n * @param baseRouteName Prefix to prepend to the paths.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @returns The generated routes.\n */\nexport function generateRestRoutesPolicyNegotiationPoint(\n\tbaseRouteName: string,\n\tcomponentName: string\n): IRestRoute[] {\n\t// v\n\tconst pnpGetNegotiationRoute: IRestRoute<\n\t\tIPnpNegotiationGetRequest,\n\t\tIPnpContractNegotiationResponse\n\t> = {\n\t\toperationId: \"pnpGetNegotiation\",\n\t\tsummary: \"Get a negotiation\",\n\t\ttag: pnpTags[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/negotiations/:id`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tpnpGetNegotiation(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IPnpNegotiationGetRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"pnpGetNegotiationRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.JsonLd,\n\t\t\t\t\t\t\t[HeaderTypes.Authorization]: \"z3Vcuh2BP9ShC.z3Vcuh2BP9ShC.z3Vcuh2BP9ShC\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"urn:contract-negotiation:00aa11bb.......ffff\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IPnpContractNegotiationResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"pnpGetNegotiationResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": DataspaceProtocolContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractNegotiation,\n\t\t\t\t\t\t\t\tproviderPid: \"urn:contract-negotiation:002aa11bb.......ffff\",\n\t\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\",\n\t\t\t\t\t\t\t\tstate: ContractNegotiationStateType.REQUESTED\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\tskipAuth: true,\n\t\tprocessorFeatures: [\"verifiableCredential\"],\n\t\tprocessorData: {\n\t\t\tverifiableCredential: { contextId: ContextIdKeys.Organization }\n\t\t}\n\t};\n\n\t// https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiations-providerpid-request-post\n\tconst pnpNegotiationRequestRoute: IRestRoute<\n\t\tIPnpNegotiateRequest,\n\t\tIPnpContractNegotiationResponse | IPnpContractResponse\n\t> = {\n\t\toperationId: \"pnpNegotiationRequest\",\n\t\tsummary: \"Negotiate a policy\",\n\t\ttag: pnpTags[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/negotiations/request`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tpnpNegotiationRequest(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IPnpNegotiateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"pnpNegotiationRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.JsonLd,\n\t\t\t\t\t\t\t[HeaderTypes.Authorization]: \"z3Vcuh2BP9ShC.z3Vcuh2BP9ShC.z3Vcuh2BP9ShC\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\"@context\": DataspaceProtocolContexts.ContextRoot,\n\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractRequestMessage,\n\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\",\n\t\t\t\t\t\t\toffer: {\n\t\t\t\t\t\t\t\t\"@context\": OdrlContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\"@type\": OdrlTypes.Offer,\n\t\t\t\t\t\t\t\tuid: \"urn:offer-1\",\n\t\t\t\t\t\t\t\tassigner: \"urn:provider:node:1\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IPnpContractNegotiationResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"IPnpNegotiationRequestResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": DataspaceProtocolContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractNegotiation,\n\t\t\t\t\t\t\t\tproviderPid: \"urn:contract-negotiation:00aa11bb.......ffff\",\n\t\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\",\n\t\t\t\t\t\t\t\tstate: ContractNegotiationStateType.REQUESTED\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\tskipAuth: true,\n\t\tprocessorFeatures: [\"verifiableCredential\"],\n\t\tprocessorData: {\n\t\t\tverifiableCredential: { contextId: ContextIdKeys.Organization }\n\t\t}\n\t};\n\n\t// https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiations-providerpid-request-post\n\tconst pnpNegotiationProviderRequestRoute: IRestRoute<IPnpNegotiateRequest, IPnpContractResponse> =\n\t\t{\n\t\t\toperationId: \"pnpNegotiationProviderRequest\",\n\t\t\tsummary: \"Negotiate a policy with an existing provider id\",\n\t\t\ttag: pnpTags[0].name,\n\t\t\tmethod: \"POST\",\n\t\t\tpath: `${baseRouteName}/negotiations/:id/request`,\n\t\t\thandler: async (httpRequestContext, request) =>\n\t\t\t\tpnpNegotiationRequest(httpRequestContext, componentName, request),\n\t\t\trequestType: {\n\t\t\t\ttype: nameof<IPnpNegotiateRequest>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"pnpNegotiationProviderRequestExample\",\n\t\t\t\t\t\trequest: {\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.JsonLd,\n\t\t\t\t\t\t\t\t[HeaderTypes.Authorization]: \"z3Vcuh2BP9ShC.z3Vcuh2BP9ShC.z3Vcuh2BP9ShC\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\t\tid: \"urn:contract-negotiation:00aa11bb.......ffff\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": DataspaceProtocolContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractRequestMessage,\n\t\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\",\n\t\t\t\t\t\t\t\toffer: {\n\t\t\t\t\t\t\t\t\t\"@context\": OdrlContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\t\"@type\": OdrlTypes.Offer,\n\t\t\t\t\t\t\t\t\tuid: \"urn:offer-1\",\n\t\t\t\t\t\t\t\t\tassigner: \"urn:provider:node:1\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\tresponseType: [\n\t\t\t\t{\n\t\t\t\t\ttype: nameof<IPnpContractResponse>(),\n\t\t\t\t\texamples: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: \"IPnpNegotiationProviderRequestResponseExample\",\n\t\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\t\tbody: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t],\n\t\t\tskipAuth: true,\n\t\t\tprocessorFeatures: [\"verifiableCredential\"],\n\t\t\tprocessorData: {\n\t\t\t\tverifiableCredential: { contextId: ContextIdKeys.Organization }\n\t\t\t}\n\t\t};\n\n\t// https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiations-providerpid-events-post\n\tconst pnpNegotiationEventsRoute: IRestRoute<IPnpEventRequest, IPnpContractResponse> = {\n\t\toperationId: \"pnpNegotiationEvents\",\n\t\tsummary: \"Update the state of the negotiation\",\n\t\ttag: pnpTags[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/negotiations/:id/events`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tpnpNegotiationProviderEvents(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IPnpEventRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"pnpNegotiationEventsRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.JsonLd,\n\t\t\t\t\t\t\t[HeaderTypes.Authorization]: \"z3Vcuh2BP9ShC.z3Vcuh2BP9ShC.z3Vcuh2BP9ShC\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"urn:contract-negotiation:00aa11bb.......ffff\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\"@context\": DataspaceProtocolContexts.ContextRoot,\n\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractRequestMessage,\n\t\t\t\t\t\t\tproviderPid: \"urn:contract-negotiation:00aa11bb.......ffff\",\n\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\",\n\t\t\t\t\t\t\tevent: ContractNegotiationEventType.ACCEPTED\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IPnpContractResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"IPnpNegotiationRequestResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\tskipAuth: true,\n\t\tprocessorFeatures: [\"verifiableCredential\"],\n\t\tprocessorData: {\n\t\t\tverifiableCredential: { contextId: ContextIdKeys.Organization }\n\t\t}\n\t};\n\n\t// https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiations-providerpid-agreement-verification-post\n\tconst pnpNegotiationAgreementVerificationRoute: IRestRoute<\n\t\tIPnpAgreementVerificationRequest,\n\t\tIPnpContractResponse\n\t> = {\n\t\toperationId: \"pnpNegotiationAgreementVerification\",\n\t\tsummary: \"Set the agreement to verified\",\n\t\ttag: pnpTags[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/negotiations/:id/agreement/verification`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tpnpNegotiationAgreementVerification(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IPnpAgreementVerificationRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"pnpNegotiationAgreementVerificationRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.JsonLd,\n\t\t\t\t\t\t\t[HeaderTypes.Authorization]: \"z3Vcuh2BP9ShC.z3Vcuh2BP9ShC.z3Vcuh2BP9ShC\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"urn:contract-negotiation:00aa11bb.......ffff\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\"@context\": DataspaceProtocolContexts.ContextRoot,\n\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractRequestMessage,\n\t\t\t\t\t\t\tproviderPid: \"urn:contract-negotiation:00aa11bb.......ffff\",\n\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IPnpContractResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"IPnpNegotiationAgreementVerificationResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\tskipAuth: true,\n\t\tprocessorFeatures: [\"verifiableCredential\"],\n\t\tprocessorData: {\n\t\t\tverifiableCredential: { contextId: ContextIdKeys.Organization }\n\t\t}\n\t};\n\n\t// https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiations-providerpid-termination-post\n\tconst pnpNegotiationTerminationRoute: IRestRoute<IPnpTerminateRequest, IPnpContractResponse> = {\n\t\toperationId: \"pnpNegotiationTermination\",\n\t\tsummary: \"Set the agreement to terminated\",\n\t\ttag: pnpTags[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/negotiations/:id/termination`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tpnpNegotiationTermination(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IPnpTerminateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"pnpNegotiationTerminationRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.JsonLd,\n\t\t\t\t\t\t\t[HeaderTypes.Authorization]: \"z3Vcuh2BP9ShC.z3Vcuh2BP9ShC.z3Vcuh2BP9ShC\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"urn:contract-negotiation:00aa11bb.......ffff\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\"@context\": DataspaceProtocolContexts.ContextRoot,\n\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractRequestMessage,\n\t\t\t\t\t\t\tproviderPid: \"urn:contract-negotiation:00aa11bb.......ffff\",\n\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IPnpContractResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"pnpNegotiationTerminationResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\tskipAuth: true,\n\t\tprocessorFeatures: [\"verifiableCredential\"],\n\t\tprocessorData: {\n\t\t\tverifiableCredential: { contextId: ContextIdKeys.Organization }\n\t\t}\n\t};\n\n\t// https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiations-offers-post\n\tconst pnpNegotiationOfferRoute: IRestRoute<\n\t\tIPnpOfferRequest,\n\t\tIPnpContractNegotiationResponse | IPnpContractResponse\n\t> = {\n\t\toperationId: \"pnpNegotiationOffer\",\n\t\tsummary: \"Send the offer to the consumer\",\n\t\ttag: pnpTags[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/negotiations/offers`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tpnpNegotiationOffer(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IPnpOfferRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"pnpNegotiationOfferRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.JsonLd,\n\t\t\t\t\t\t\t[HeaderTypes.Authorization]: \"z3Vcuh2BP9ShC.z3Vcuh2BP9ShC.z3Vcuh2BP9ShC\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\"@context\": DataspaceProtocolContexts.ContextRoot,\n\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractRequestMessage,\n\t\t\t\t\t\t\tproviderPid: \"urn:contract-negotiation:00aa11bb.......ffff\",\n\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\",\n\t\t\t\t\t\t\toffer: {\n\t\t\t\t\t\t\t\t\"@context\": OdrlContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\"@type\": OdrlTypes.Offer,\n\t\t\t\t\t\t\t\tuid: \"urn:offer-1\",\n\t\t\t\t\t\t\t\tassigner: \"urn:provider:node:1\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IPnpContractResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"pnpNegotiationOfferResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": DataspaceProtocolContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractRequestMessage,\n\t\t\t\t\t\t\t\tproviderPid: \"urn:contract-negotiation:00aa11bb.......ffff\",\n\t\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\tskipAuth: true,\n\t\tprocessorFeatures: [\"verifiableCredential\"],\n\t\tprocessorData: {\n\t\t\tverifiableCredential: { contextId: ContextIdKeys.Organization }\n\t\t}\n\t};\n\n\t// https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiations-consumerpid-offers-post\n\tconst pnpNegotiationConsumerOfferRoute: IRestRoute<IPnpOfferRequest, IPnpContractResponse> = {\n\t\toperationId: \"pnpNegotiationConsumerOffer\",\n\t\tsummary: \"Send the offer to the consumer with existing id\",\n\t\ttag: pnpTags[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/negotiations/:id/offers`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tpnpNegotiationOffer(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IPnpOfferRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"pnpNegotiationConsumerOfferRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.JsonLd,\n\t\t\t\t\t\t\t[HeaderTypes.Authorization]: \"z3Vcuh2BP9ShC.z3Vcuh2BP9ShC.z3Vcuh2BP9ShC\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"urn:contract-negotiation:22aa11bb.......ffff\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\"@context\": DataspaceProtocolContexts.ContextRoot,\n\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractRequestMessage,\n\t\t\t\t\t\t\tproviderPid: \"urn:contract-negotiation:00aa11bb.......ffff\",\n\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\",\n\t\t\t\t\t\t\toffer: {\n\t\t\t\t\t\t\t\t\"@context\": OdrlContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\"@type\": OdrlTypes.Offer,\n\t\t\t\t\t\t\t\tuid: \"urn:offer-1\",\n\t\t\t\t\t\t\t\tassigner: \"urn:provider:node:1\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IPnpContractResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"pnpNegotiationConsumerOfferResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": DataspaceProtocolContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractNegotiation,\n\t\t\t\t\t\t\t\tproviderPid: \"urn:contract-negotiation:00aa11bb.......ffff\",\n\t\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\tskipAuth: true,\n\t\tprocessorFeatures: [\"verifiableCredential\"],\n\t\tprocessorData: {\n\t\t\tverifiableCredential: { contextId: ContextIdKeys.Organization }\n\t\t}\n\t};\n\n\t// https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiations-consumerpid-agreement-post\n\tconst pnpNegotiationAgreementRoute: IRestRoute<IPnpAgreementRequest, IPnpContractResponse> = {\n\t\toperationId: \"pnpNegotiationAgreement\",\n\t\tsummary: \"Send the agreement to the consumer\",\n\t\ttag: pnpTags[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/negotiations/:id/agreement`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tpnpNegotiationAgreement(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IPnpAgreementRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"pnpNegotiationAgreementRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.JsonLd,\n\t\t\t\t\t\t\t[HeaderTypes.Authorization]: \"z3Vcuh2BP9ShC.z3Vcuh2BP9ShC.z3Vcuh2BP9ShC\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"urn:contract-negotiation:22aa11bb.......ffff\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\"@context\": DataspaceProtocolContexts.ContextRoot,\n\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractRequestMessage,\n\t\t\t\t\t\t\tproviderPid: \"urn:contract-negotiation:00aa11bb.......ffff\",\n\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\",\n\t\t\t\t\t\t\tagreement: {\n\t\t\t\t\t\t\t\t\"@context\": OdrlContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\"@type\": OdrlTypes.Agreement,\n\t\t\t\t\t\t\t\tuid: \"urn:offer-1\",\n\t\t\t\t\t\t\t\tassigner: \"urn:provider:node:1\",\n\t\t\t\t\t\t\t\tassignee: \"urn:consumer:node:1\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IPnpContractResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"pnpNegotiationAgreementResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\tskipAuth: true,\n\t\tprocessorFeatures: [\"verifiableCredential\"],\n\t\tprocessorData: {\n\t\t\tverifiableCredential: { contextId: ContextIdKeys.Organization }\n\t\t}\n\t};\n\n\t// The consumer event and terminate routes are exactly the same as the pnpNegotiationEventsRoute and pnpNegotiationTerminationRoute\n\t// https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiations-consumerpid-events-post\n\t// https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiations-consumerpid-termination-post\n\n\treturn [\n\t\tpnpGetNegotiationRoute,\n\t\tpnpNegotiationRequestRoute,\n\t\tpnpNegotiationProviderRequestRoute,\n\t\tpnpNegotiationEventsRoute,\n\t\tpnpNegotiationAgreementVerificationRoute,\n\t\tpnpNegotiationTerminationRoute,\n\t\tpnpNegotiationOfferRoute,\n\t\tpnpNegotiationConsumerOfferRoute,\n\t\tpnpNegotiationAgreementRoute\n\t];\n}\n\n/**\n * Map the IDS result to an HTTP status code.\n * @param result The result to map.\n * @returns The mapped status code or undefined if no mapping was found or not an error.\n */\nfunction mapError(\n\tresult: IContractNegotiation | IContractNegotiationError | undefined\n): HttpStatusCode | undefined {\n\tif (\n\t\tresult?.[\"@type\"] === ContractNegotiationTypes.ContractNegotiationError &&\n\t\tIs.object<IContractNegotiationError>(result)\n\t) {\n\t\tif (Is.stringValue(result.code) && /notfound/i.test(result.code)) {\n\t\t\treturn HttpStatusCode.notFound;\n\t\t}\n\t\treturn HttpStatusCode.badRequest;\n\t}\n\n\treturn undefined;\n}\n\n/**\n * PNP: Get negotiation.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function pnpGetNegotiation(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IPnpNegotiationGetRequest\n): Promise<IPnpContractNegotiationResponse> {\n\tGuards.object<IPnpNegotiationGetRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IPnpNegotiationGetRequest[\"headers\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.headers),\n\t\trequest.headers\n\t);\n\tGuards.object<IPnpNegotiationGetRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\n\tconst mimeType = request.headers[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IPolicyNegotiationPointComponent>(componentName);\n\tconst result = await component.getNegotiation(\n\t\trequest.pathParams.id,\n\t\thttpRequestContext.processorState\n\t\t\t.verifiableCredentialSubject as IIdentityAuthenticationActionRequest\n\t);\n\n\treturn {\n\t\tstatusCode: mapError(result),\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * PNP: Request a negotiation.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function pnpNegotiationRequest(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IPnpNegotiateRequest\n): Promise<IPnpContractNegotiationResponse | IPnpContractResponse> {\n\tGuards.object<IPnpNegotiateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IPnpNegotiateRequest[\"headers\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.headers),\n\t\trequest.headers\n\t);\n\tGuards.object<IPnpNegotiateRequest[\"body\"]>(ROUTES_SOURCE, nameof(request.body), request.body);\n\n\tconst mimeType = request.headers[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IPolicyNegotiationPointComponent>(componentName);\n\tconst result = await component.requestFromConsumer(\n\t\trequest.body,\n\t\thttpRequestContext.processorState\n\t\t\t.verifiableCredentialSubject as IIdentityAuthenticationActionRequest\n\t);\n\n\tconst isUpdate = Is.stringValue(request.pathParams?.id);\n\n\tif (isUpdate) {\n\t\treturn {\n\t\t\tstatusCode: mapError(result),\n\t\t\theaders: {\n\t\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t\t}\n\t\t};\n\t}\n\treturn {\n\t\tstatusCode: mapError(result) ?? HttpStatusCode.created,\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * PNP: Update state of negotiation.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function pnpNegotiationProviderEvents(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IPnpEventRequest\n): Promise<IPnpContractResponse> {\n\tGuards.object<IPnpEventRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IPnpEventRequest[\"headers\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.headers),\n\t\trequest.headers\n\t);\n\tGuards.object<IPnpEventRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.object<IPnpEventRequest[\"body\"]>(ROUTES_SOURCE, nameof(request.body), request.body);\n\n\tconst mimeType = request.headers[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IPolicyNegotiationPointComponent>(componentName);\n\tconst result = await component.event(\n\t\trequest.body,\n\t\trequest.pathParams.id === request.body.providerPid ? \"provider\" : \"consumer\",\n\t\thttpRequestContext.processorState\n\t\t\t.verifiableCredentialSubject as IIdentityAuthenticationActionRequest\n\t);\n\n\treturn {\n\t\tstatusCode: mapError(result),\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * PNP: Set the agreement to verified.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function pnpNegotiationAgreementVerification(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IPnpAgreementVerificationRequest\n): Promise<IPnpContractResponse> {\n\tGuards.object<IPnpAgreementVerificationRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IPnpAgreementVerificationRequest[\"headers\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.headers),\n\t\trequest.headers\n\t);\n\tGuards.object<IPnpAgreementVerificationRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.object<IPnpAgreementVerificationRequest[\"body\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.body),\n\t\trequest.body\n\t);\n\n\tconst mimeType = request.headers[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IPolicyNegotiationPointComponent>(componentName);\n\tconst result = await component.agreementVerificationFromConsumer(\n\t\trequest.body,\n\t\thttpRequestContext.processorState\n\t\t\t.verifiableCredentialSubject as IIdentityAuthenticationActionRequest\n\t);\n\n\treturn {\n\t\tstatusCode: mapError(result),\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * PNP: Terminate the provider negotiation.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function pnpNegotiationTermination(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IPnpTerminateRequest\n): Promise<IPnpContractResponse> {\n\tGuards.object<IPnpTerminateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IPnpTerminateRequest[\"headers\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.headers),\n\t\trequest.headers\n\t);\n\tGuards.object<IPnpTerminateRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.object<IPnpTerminateRequest[\"body\"]>(ROUTES_SOURCE, nameof(request.body), request.body);\n\n\tconst mimeType = request.headers[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IPolicyNegotiationPointComponent>(componentName);\n\tconst result = await component.terminate(\n\t\trequest.body,\n\t\trequest.pathParams.id === request.body.providerPid ? \"provider\" : \"consumer\",\n\t\thttpRequestContext.processorState\n\t\t\t.verifiableCredentialSubject as IIdentityAuthenticationActionRequest\n\t);\n\n\treturn {\n\t\tstatusCode: mapError(result),\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * PNP: Send the offer to the consumer.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function pnpNegotiationOffer(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IPnpOfferRequest\n): Promise<IPnpContractNegotiationResponse | IPnpContractResponse> {\n\tGuards.object<IPnpOfferRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IPnpOfferRequest[\"headers\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.headers),\n\t\trequest.headers\n\t);\n\tGuards.object<IPnpOfferRequest[\"body\"]>(ROUTES_SOURCE, nameof(request.body), request.body);\n\n\tconst mimeType = request.headers[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IPolicyNegotiationPointComponent>(componentName);\n\tconst result = await component.offerFromProvider(\n\t\trequest.body,\n\t\thttpRequestContext.processorState\n\t\t\t.verifiableCredentialSubject as IIdentityAuthenticationActionRequest\n\t);\n\n\tconst isUpdate = Is.stringValue(request.pathParams?.id);\n\n\tif (isUpdate) {\n\t\treturn {\n\t\t\tstatusCode: mapError(result),\n\t\t\theaders: {\n\t\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t\t}\n\t\t};\n\t}\n\treturn {\n\t\tstatusCode: mapError(result) ?? HttpStatusCode.created,\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * PNP: Send the agreement to the consumer.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function pnpNegotiationAgreement(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IPnpAgreementRequest\n): Promise<IPnpContractResponse> {\n\tGuards.object<IPnpAgreementRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IPnpAgreementRequest[\"headers\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.headers),\n\t\trequest.headers\n\t);\n\tGuards.object<IPnpAgreementRequest[\"body\"]>(ROUTES_SOURCE, nameof(request.body), request.body);\n\tGuards.object<IPnpAgreementRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.body),\n\t\trequest.body\n\t);\n\n\tconst mimeType = request.headers[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IPolicyNegotiationPointComponent>(componentName);\n\tconst result = await component.agreementFromProvider(\n\t\trequest.body,\n\t\thttpRequestContext.processorState\n\t\t\t.verifiableCredentialSubject as IIdentityAuthenticationActionRequest\n\t);\n\n\treturn {\n\t\tstatusCode: mapError(result),\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"file":"policyNegotiationPointRoutes.js","sourceRoot":"","sources":["../../src/policyNegotiationPointRoutes.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IHttpRequestContext, IRestRoute, ITag } from \"@twin.org/api-models\";\nimport { ContextIdKeys } from \"@twin.org/context\";\nimport { ComponentFactory, Guards, Is } from \"@twin.org/core\";\nimport type { IIdentityAuthenticationActionRequest } from \"@twin.org/identity-authentication\";\nimport { nameof } from \"@twin.org/nameof\";\nimport type {\n\tIPnpAgreementRequest,\n\tIPnpAgreementVerificationRequest,\n\tIPnpContractNegotiationResponse,\n\tIPnpContractResponse,\n\tIPnpEventRequest,\n\tIPnpNegotiateRequest,\n\tIPnpNegotiationGetRequest,\n\tIPnpOfferRequest,\n\tIPnpTerminateRequest,\n\tIPolicyNegotiationPointComponent\n} from \"@twin.org/rights-management-models\";\nimport {\n\tContractNegotiationEventType,\n\tContractNegotiationStateType,\n\tContractNegotiationTypes,\n\tDataspaceProtocolContexts,\n\ttype IContractNegotiation,\n\ttype IContractNegotiationError\n} from \"@twin.org/standards-dataspace-protocol\";\nimport { OdrlContexts, OdrlTypes } from \"@twin.org/standards-w3c-odrl\";\nimport { HeaderTypes, HttpStatusCode, MimeTypes } from \"@twin.org/web\";\n\n/**\n * The source used when communicating about these routes.\n */\nconst ROUTES_SOURCE = \"policyNegotiationPointRoutes\";\n\n/**\n * The tag to associate with the routes.\n */\nexport const pnpTags: ITag[] = [\n\t{\n\t\tname: \"Policy Negotiation Point\",\n\t\tdescription: \"Endpoints for managing ODRL policies in the Policy Negotiation Point\"\n\t}\n];\n\n/**\n * The REST routes for the Policy Negotiation Point.\n * @param baseRouteName Prefix to prepend to the paths.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @returns The generated routes.\n */\nexport function generateRestRoutesPolicyNegotiationPoint(\n\tbaseRouteName: string,\n\tcomponentName: string\n): IRestRoute[] {\n\t// v\n\tconst pnpGetNegotiationRoute: IRestRoute<\n\t\tIPnpNegotiationGetRequest,\n\t\tIPnpContractNegotiationResponse\n\t> = {\n\t\toperationId: \"pnpGetNegotiation\",\n\t\tsummary: \"Get a negotiation\",\n\t\ttag: pnpTags[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/negotiations/:id`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tpnpGetNegotiation(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IPnpNegotiationGetRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"pnpGetNegotiationRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.JsonLd,\n\t\t\t\t\t\t\t[HeaderTypes.Authorization]: \"z3Vcuh2BP9ShC.z3Vcuh2BP9ShC.z3Vcuh2BP9ShC\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"urn:contract-negotiation:00aa11bb.......ffff\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IPnpContractNegotiationResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"pnpGetNegotiationResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [DataspaceProtocolContexts.ContextRoot],\n\t\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractNegotiation,\n\t\t\t\t\t\t\t\tproviderPid: \"urn:contract-negotiation:002aa11bb.......ffff\",\n\t\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\",\n\t\t\t\t\t\t\t\tstate: ContractNegotiationStateType.REQUESTED\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\tskipAuth: true,\n\t\tprocessorFeatures: [\"verifiableCredential\"],\n\t\tprocessorData: {\n\t\t\tverifiableCredential: { contextId: ContextIdKeys.Organization }\n\t\t}\n\t};\n\n\t// https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiations-providerpid-request-post\n\tconst pnpNegotiationRequestRoute: IRestRoute<\n\t\tIPnpNegotiateRequest,\n\t\tIPnpContractNegotiationResponse | IPnpContractResponse\n\t> = {\n\t\toperationId: \"pnpNegotiationRequest\",\n\t\tsummary: \"Negotiate a policy\",\n\t\ttag: pnpTags[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/negotiations/request`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tpnpNegotiationRequest(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IPnpNegotiateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"pnpNegotiationRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.JsonLd,\n\t\t\t\t\t\t\t[HeaderTypes.Authorization]: \"z3Vcuh2BP9ShC.z3Vcuh2BP9ShC.z3Vcuh2BP9ShC\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\"@context\": [DataspaceProtocolContexts.ContextRoot],\n\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractRequestMessage,\n\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\",\n\t\t\t\t\t\t\toffer: {\n\t\t\t\t\t\t\t\t\"@context\": OdrlContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\"@type\": OdrlTypes.Offer,\n\t\t\t\t\t\t\t\tuid: \"urn:offer-1\",\n\t\t\t\t\t\t\t\tassigner: \"urn:provider:node:1\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IPnpContractNegotiationResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"IPnpNegotiationRequestResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [DataspaceProtocolContexts.ContextRoot],\n\t\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractNegotiation,\n\t\t\t\t\t\t\t\tproviderPid: \"urn:contract-negotiation:00aa11bb.......ffff\",\n\t\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\",\n\t\t\t\t\t\t\t\tstate: ContractNegotiationStateType.REQUESTED\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\tskipAuth: true,\n\t\tprocessorFeatures: [\"verifiableCredential\"],\n\t\tprocessorData: {\n\t\t\tverifiableCredential: { contextId: ContextIdKeys.Organization }\n\t\t}\n\t};\n\n\t// https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiations-providerpid-request-post\n\tconst pnpNegotiationProviderRequestRoute: IRestRoute<IPnpNegotiateRequest, IPnpContractResponse> =\n\t\t{\n\t\t\toperationId: \"pnpNegotiationProviderRequest\",\n\t\t\tsummary: \"Negotiate a policy with an existing provider id\",\n\t\t\ttag: pnpTags[0].name,\n\t\t\tmethod: \"POST\",\n\t\t\tpath: `${baseRouteName}/negotiations/:id/request`,\n\t\t\thandler: async (httpRequestContext, request) =>\n\t\t\t\tpnpNegotiationRequest(httpRequestContext, componentName, request),\n\t\t\trequestType: {\n\t\t\t\ttype: nameof<IPnpNegotiateRequest>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"pnpNegotiationProviderRequestExample\",\n\t\t\t\t\t\trequest: {\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.JsonLd,\n\t\t\t\t\t\t\t\t[HeaderTypes.Authorization]: \"z3Vcuh2BP9ShC.z3Vcuh2BP9ShC.z3Vcuh2BP9ShC\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\t\tid: \"urn:contract-negotiation:00aa11bb.......ffff\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [DataspaceProtocolContexts.ContextRoot],\n\t\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractRequestMessage,\n\t\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\",\n\t\t\t\t\t\t\t\toffer: {\n\t\t\t\t\t\t\t\t\t\"@context\": OdrlContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\t\"@type\": OdrlTypes.Offer,\n\t\t\t\t\t\t\t\t\tuid: \"urn:offer-1\",\n\t\t\t\t\t\t\t\t\tassigner: \"urn:provider:node:1\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\tresponseType: [\n\t\t\t\t{\n\t\t\t\t\ttype: nameof<IPnpContractResponse>(),\n\t\t\t\t\texamples: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: \"IPnpNegotiationProviderRequestResponseExample\",\n\t\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\t\tbody: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t],\n\t\t\tskipAuth: true,\n\t\t\tprocessorFeatures: [\"verifiableCredential\"],\n\t\t\tprocessorData: {\n\t\t\t\tverifiableCredential: { contextId: ContextIdKeys.Organization }\n\t\t\t}\n\t\t};\n\n\t// https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiations-providerpid-events-post\n\tconst pnpNegotiationEventsRoute: IRestRoute<IPnpEventRequest, IPnpContractResponse> = {\n\t\toperationId: \"pnpNegotiationEvents\",\n\t\tsummary: \"Update the state of the negotiation\",\n\t\ttag: pnpTags[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/negotiations/:id/events`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tpnpNegotiationProviderEvents(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IPnpEventRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"pnpNegotiationEventsRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.JsonLd,\n\t\t\t\t\t\t\t[HeaderTypes.Authorization]: \"z3Vcuh2BP9ShC.z3Vcuh2BP9ShC.z3Vcuh2BP9ShC\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"urn:contract-negotiation:00aa11bb.......ffff\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\"@context\": [DataspaceProtocolContexts.ContextRoot],\n\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractRequestMessage,\n\t\t\t\t\t\t\tproviderPid: \"urn:contract-negotiation:00aa11bb.......ffff\",\n\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\",\n\t\t\t\t\t\t\tevent: ContractNegotiationEventType.ACCEPTED\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IPnpContractResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"IPnpNegotiationRequestResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\tskipAuth: true,\n\t\tprocessorFeatures: [\"verifiableCredential\"],\n\t\tprocessorData: {\n\t\t\tverifiableCredential: { contextId: ContextIdKeys.Organization }\n\t\t}\n\t};\n\n\t// https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiations-providerpid-agreement-verification-post\n\tconst pnpNegotiationAgreementVerificationRoute: IRestRoute<\n\t\tIPnpAgreementVerificationRequest,\n\t\tIPnpContractResponse\n\t> = {\n\t\toperationId: \"pnpNegotiationAgreementVerification\",\n\t\tsummary: \"Set the agreement to verified\",\n\t\ttag: pnpTags[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/negotiations/:id/agreement/verification`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tpnpNegotiationAgreementVerification(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IPnpAgreementVerificationRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"pnpNegotiationAgreementVerificationRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.JsonLd,\n\t\t\t\t\t\t\t[HeaderTypes.Authorization]: \"z3Vcuh2BP9ShC.z3Vcuh2BP9ShC.z3Vcuh2BP9ShC\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"urn:contract-negotiation:00aa11bb.......ffff\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\"@context\": [DataspaceProtocolContexts.ContextRoot],\n\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractRequestMessage,\n\t\t\t\t\t\t\tproviderPid: \"urn:contract-negotiation:00aa11bb.......ffff\",\n\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IPnpContractResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"IPnpNegotiationAgreementVerificationResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\tskipAuth: true,\n\t\tprocessorFeatures: [\"verifiableCredential\"],\n\t\tprocessorData: {\n\t\t\tverifiableCredential: { contextId: ContextIdKeys.Organization }\n\t\t}\n\t};\n\n\t// https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiations-providerpid-termination-post\n\tconst pnpNegotiationTerminationRoute: IRestRoute<IPnpTerminateRequest, IPnpContractResponse> = {\n\t\toperationId: \"pnpNegotiationTermination\",\n\t\tsummary: \"Set the agreement to terminated\",\n\t\ttag: pnpTags[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/negotiations/:id/termination`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tpnpNegotiationTermination(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IPnpTerminateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"pnpNegotiationTerminationRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.JsonLd,\n\t\t\t\t\t\t\t[HeaderTypes.Authorization]: \"z3Vcuh2BP9ShC.z3Vcuh2BP9ShC.z3Vcuh2BP9ShC\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"urn:contract-negotiation:00aa11bb.......ffff\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\"@context\": [DataspaceProtocolContexts.ContextRoot],\n\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractRequestMessage,\n\t\t\t\t\t\t\tproviderPid: \"urn:contract-negotiation:00aa11bb.......ffff\",\n\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IPnpContractResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"pnpNegotiationTerminationResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\tskipAuth: true,\n\t\tprocessorFeatures: [\"verifiableCredential\"],\n\t\tprocessorData: {\n\t\t\tverifiableCredential: { contextId: ContextIdKeys.Organization }\n\t\t}\n\t};\n\n\t// https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiations-offers-post\n\tconst pnpNegotiationOfferRoute: IRestRoute<\n\t\tIPnpOfferRequest,\n\t\tIPnpContractNegotiationResponse | IPnpContractResponse\n\t> = {\n\t\toperationId: \"pnpNegotiationOffer\",\n\t\tsummary: \"Send the offer to the consumer\",\n\t\ttag: pnpTags[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/negotiations/offers`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tpnpNegotiationOffer(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IPnpOfferRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"pnpNegotiationOfferRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.JsonLd,\n\t\t\t\t\t\t\t[HeaderTypes.Authorization]: \"z3Vcuh2BP9ShC.z3Vcuh2BP9ShC.z3Vcuh2BP9ShC\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\"@context\": [DataspaceProtocolContexts.ContextRoot],\n\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractRequestMessage,\n\t\t\t\t\t\t\tproviderPid: \"urn:contract-negotiation:00aa11bb.......ffff\",\n\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\",\n\t\t\t\t\t\t\toffer: {\n\t\t\t\t\t\t\t\t\"@context\": OdrlContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\"@type\": OdrlTypes.Offer,\n\t\t\t\t\t\t\t\tuid: \"urn:offer-1\",\n\t\t\t\t\t\t\t\tassigner: \"urn:provider:node:1\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IPnpContractResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"pnpNegotiationOfferResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [DataspaceProtocolContexts.ContextRoot],\n\t\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractRequestMessage,\n\t\t\t\t\t\t\t\tproviderPid: \"urn:contract-negotiation:00aa11bb.......ffff\",\n\t\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\tskipAuth: true,\n\t\tprocessorFeatures: [\"verifiableCredential\"],\n\t\tprocessorData: {\n\t\t\tverifiableCredential: { contextId: ContextIdKeys.Organization }\n\t\t}\n\t};\n\n\t// https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiations-consumerpid-offers-post\n\tconst pnpNegotiationConsumerOfferRoute: IRestRoute<IPnpOfferRequest, IPnpContractResponse> = {\n\t\toperationId: \"pnpNegotiationConsumerOffer\",\n\t\tsummary: \"Send the offer to the consumer with existing id\",\n\t\ttag: pnpTags[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/negotiations/:id/offers`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tpnpNegotiationOffer(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IPnpOfferRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"pnpNegotiationConsumerOfferRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.JsonLd,\n\t\t\t\t\t\t\t[HeaderTypes.Authorization]: \"z3Vcuh2BP9ShC.z3Vcuh2BP9ShC.z3Vcuh2BP9ShC\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"urn:contract-negotiation:22aa11bb.......ffff\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\"@context\": [DataspaceProtocolContexts.ContextRoot],\n\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractRequestMessage,\n\t\t\t\t\t\t\tproviderPid: \"urn:contract-negotiation:00aa11bb.......ffff\",\n\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\",\n\t\t\t\t\t\t\toffer: {\n\t\t\t\t\t\t\t\t\"@context\": OdrlContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\"@type\": OdrlTypes.Offer,\n\t\t\t\t\t\t\t\tuid: \"urn:offer-1\",\n\t\t\t\t\t\t\t\tassigner: \"urn:provider:node:1\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IPnpContractResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"pnpNegotiationConsumerOfferResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": [DataspaceProtocolContexts.ContextRoot],\n\t\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractNegotiation,\n\t\t\t\t\t\t\t\tproviderPid: \"urn:contract-negotiation:00aa11bb.......ffff\",\n\t\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\tskipAuth: true,\n\t\tprocessorFeatures: [\"verifiableCredential\"],\n\t\tprocessorData: {\n\t\t\tverifiableCredential: { contextId: ContextIdKeys.Organization }\n\t\t}\n\t};\n\n\t// https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiations-consumerpid-agreement-post\n\tconst pnpNegotiationAgreementRoute: IRestRoute<IPnpAgreementRequest, IPnpContractResponse> = {\n\t\toperationId: \"pnpNegotiationAgreement\",\n\t\tsummary: \"Send the agreement to the consumer\",\n\t\ttag: pnpTags[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/negotiations/:id/agreement`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tpnpNegotiationAgreement(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IPnpAgreementRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"pnpNegotiationAgreementRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t[HeaderTypes.Accept]: MimeTypes.JsonLd,\n\t\t\t\t\t\t\t[HeaderTypes.Authorization]: \"z3Vcuh2BP9ShC.z3Vcuh2BP9ShC.z3Vcuh2BP9ShC\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tid: \"urn:contract-negotiation:22aa11bb.......ffff\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\"@context\": [DataspaceProtocolContexts.ContextRoot],\n\t\t\t\t\t\t\t\"@type\": ContractNegotiationTypes.ContractRequestMessage,\n\t\t\t\t\t\t\tproviderPid: \"urn:contract-negotiation:00aa11bb.......ffff\",\n\t\t\t\t\t\t\tconsumerPid: \"urn:contract-negotiation:22aa11bb.......ffff\",\n\t\t\t\t\t\t\tagreement: {\n\t\t\t\t\t\t\t\t\"@context\": OdrlContexts.ContextRoot,\n\t\t\t\t\t\t\t\t\"@type\": OdrlTypes.Agreement,\n\t\t\t\t\t\t\t\tuid: \"urn:offer-1\",\n\t\t\t\t\t\t\t\tassigner: \"urn:provider:node:1\",\n\t\t\t\t\t\t\t\tassignee: \"urn:consumer:node:1\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IPnpContractResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"pnpNegotiationAgreementResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t],\n\t\tskipAuth: true,\n\t\tprocessorFeatures: [\"verifiableCredential\"],\n\t\tprocessorData: {\n\t\t\tverifiableCredential: { contextId: ContextIdKeys.Organization }\n\t\t}\n\t};\n\n\t// The consumer event and terminate routes are exactly the same as the pnpNegotiationEventsRoute and pnpNegotiationTerminationRoute\n\t// https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiations-consumerpid-events-post\n\t// https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1/#negotiations-consumerpid-termination-post\n\n\treturn [\n\t\tpnpGetNegotiationRoute,\n\t\tpnpNegotiationRequestRoute,\n\t\tpnpNegotiationProviderRequestRoute,\n\t\tpnpNegotiationEventsRoute,\n\t\tpnpNegotiationAgreementVerificationRoute,\n\t\tpnpNegotiationTerminationRoute,\n\t\tpnpNegotiationOfferRoute,\n\t\tpnpNegotiationConsumerOfferRoute,\n\t\tpnpNegotiationAgreementRoute\n\t];\n}\n\n/**\n * Map the IDS result to an HTTP status code.\n * @param result The result to map.\n * @returns The mapped status code or undefined if no mapping was found or not an error.\n */\nfunction mapError(\n\tresult: IContractNegotiation | IContractNegotiationError | undefined\n): HttpStatusCode | undefined {\n\tif (\n\t\tresult?.[\"@type\"] === ContractNegotiationTypes.ContractNegotiationError &&\n\t\tIs.object<IContractNegotiationError>(result)\n\t) {\n\t\tif (Is.stringValue(result.code) && /notfound/i.test(result.code)) {\n\t\t\treturn HttpStatusCode.notFound;\n\t\t}\n\t\treturn HttpStatusCode.badRequest;\n\t}\n\n\treturn undefined;\n}\n\n/**\n * PNP: Get negotiation.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function pnpGetNegotiation(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IPnpNegotiationGetRequest\n): Promise<IPnpContractNegotiationResponse> {\n\tGuards.object<IPnpNegotiationGetRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IPnpNegotiationGetRequest[\"headers\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.headers),\n\t\trequest.headers\n\t);\n\tGuards.object<IPnpNegotiationGetRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\n\tconst mimeType = request.headers[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IPolicyNegotiationPointComponent>(componentName);\n\tconst result = await component.getNegotiation(\n\t\trequest.pathParams.id,\n\t\thttpRequestContext.processorState\n\t\t\t.verifiableCredentialSubject as IIdentityAuthenticationActionRequest\n\t);\n\n\treturn {\n\t\tstatusCode: mapError(result),\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * PNP: Request a negotiation.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function pnpNegotiationRequest(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IPnpNegotiateRequest\n): Promise<IPnpContractNegotiationResponse | IPnpContractResponse> {\n\tGuards.object<IPnpNegotiateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IPnpNegotiateRequest[\"headers\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.headers),\n\t\trequest.headers\n\t);\n\tGuards.object<IPnpNegotiateRequest[\"body\"]>(ROUTES_SOURCE, nameof(request.body), request.body);\n\n\tconst mimeType = request.headers[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IPolicyNegotiationPointComponent>(componentName);\n\tconst result = await component.requestFromConsumer(\n\t\trequest.body,\n\t\thttpRequestContext.processorState\n\t\t\t.verifiableCredentialSubject as IIdentityAuthenticationActionRequest\n\t);\n\n\tconst isUpdate = Is.stringValue(request.pathParams?.id);\n\n\tif (isUpdate) {\n\t\treturn {\n\t\t\tstatusCode: mapError(result),\n\t\t\theaders: {\n\t\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t\t}\n\t\t};\n\t}\n\treturn {\n\t\tstatusCode: mapError(result) ?? HttpStatusCode.created,\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * PNP: Update state of negotiation.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function pnpNegotiationProviderEvents(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IPnpEventRequest\n): Promise<IPnpContractResponse> {\n\tGuards.object<IPnpEventRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IPnpEventRequest[\"headers\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.headers),\n\t\trequest.headers\n\t);\n\tGuards.object<IPnpEventRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.object<IPnpEventRequest[\"body\"]>(ROUTES_SOURCE, nameof(request.body), request.body);\n\n\tconst mimeType = request.headers[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IPolicyNegotiationPointComponent>(componentName);\n\tconst result = await component.event(\n\t\trequest.body,\n\t\trequest.pathParams.id === request.body.providerPid ? \"provider\" : \"consumer\",\n\t\thttpRequestContext.processorState\n\t\t\t.verifiableCredentialSubject as IIdentityAuthenticationActionRequest\n\t);\n\n\treturn {\n\t\tstatusCode: mapError(result),\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * PNP: Set the agreement to verified.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function pnpNegotiationAgreementVerification(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IPnpAgreementVerificationRequest\n): Promise<IPnpContractResponse> {\n\tGuards.object<IPnpAgreementVerificationRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IPnpAgreementVerificationRequest[\"headers\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.headers),\n\t\trequest.headers\n\t);\n\tGuards.object<IPnpAgreementVerificationRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.object<IPnpAgreementVerificationRequest[\"body\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.body),\n\t\trequest.body\n\t);\n\n\tconst mimeType = request.headers[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IPolicyNegotiationPointComponent>(componentName);\n\tconst result = await component.agreementVerificationFromConsumer(\n\t\trequest.body,\n\t\thttpRequestContext.processorState\n\t\t\t.verifiableCredentialSubject as IIdentityAuthenticationActionRequest\n\t);\n\n\treturn {\n\t\tstatusCode: mapError(result),\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * PNP: Terminate the provider negotiation.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function pnpNegotiationTermination(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IPnpTerminateRequest\n): Promise<IPnpContractResponse> {\n\tGuards.object<IPnpTerminateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IPnpTerminateRequest[\"headers\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.headers),\n\t\trequest.headers\n\t);\n\tGuards.object<IPnpTerminateRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.object<IPnpTerminateRequest[\"body\"]>(ROUTES_SOURCE, nameof(request.body), request.body);\n\n\tconst mimeType = request.headers[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IPolicyNegotiationPointComponent>(componentName);\n\tconst result = await component.terminate(\n\t\trequest.body,\n\t\trequest.pathParams.id === request.body.providerPid ? \"provider\" : \"consumer\",\n\t\thttpRequestContext.processorState\n\t\t\t.verifiableCredentialSubject as IIdentityAuthenticationActionRequest\n\t);\n\n\treturn {\n\t\tstatusCode: mapError(result),\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * PNP: Send the offer to the consumer.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function pnpNegotiationOffer(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IPnpOfferRequest\n): Promise<IPnpContractNegotiationResponse | IPnpContractResponse> {\n\tGuards.object<IPnpOfferRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IPnpOfferRequest[\"headers\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.headers),\n\t\trequest.headers\n\t);\n\tGuards.object<IPnpOfferRequest[\"body\"]>(ROUTES_SOURCE, nameof(request.body), request.body);\n\n\tconst mimeType = request.headers[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IPolicyNegotiationPointComponent>(componentName);\n\tconst result = await component.offerFromProvider(\n\t\trequest.body,\n\t\thttpRequestContext.processorState\n\t\t\t.verifiableCredentialSubject as IIdentityAuthenticationActionRequest\n\t);\n\n\tconst isUpdate = Is.stringValue(request.pathParams?.id);\n\n\tif (isUpdate) {\n\t\treturn {\n\t\t\tstatusCode: mapError(result),\n\t\t\theaders: {\n\t\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t\t}\n\t\t};\n\t}\n\treturn {\n\t\tstatusCode: mapError(result) ?? HttpStatusCode.created,\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * PNP: Send the agreement to the consumer.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function pnpNegotiationAgreement(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IPnpAgreementRequest\n): Promise<IPnpContractResponse> {\n\tGuards.object<IPnpAgreementRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IPnpAgreementRequest[\"headers\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.headers),\n\t\trequest.headers\n\t);\n\tGuards.object<IPnpAgreementRequest[\"body\"]>(ROUTES_SOURCE, nameof(request.body), request.body);\n\tGuards.object<IPnpAgreementRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.body),\n\t\trequest.body\n\t);\n\n\tconst mimeType = request.headers[HeaderTypes.Accept] === MimeTypes.JsonLd ? \"jsonld\" : \"json\";\n\n\tconst component = ComponentFactory.get<IPolicyNegotiationPointComponent>(componentName);\n\tconst result = await component.agreementFromProvider(\n\t\trequest.body,\n\t\thttpRequestContext.processorState\n\t\t\t.verifiableCredentialSubject as IIdentityAuthenticationActionRequest\n\t);\n\n\treturn {\n\t\tstatusCode: mapError(result),\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: mimeType === \"json\" ? MimeTypes.Json : MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n"]}
|
package/docs/changelog.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# @twin.org/rights-management-pap-service - Changelog
|
|
2
2
|
|
|
3
|
+
## [0.0.3-next.3](https://github.com/twinfoundation/rights-management/compare/rights-management-service-v0.0.3-next.2...rights-management-service-v0.0.3-next.3) (2025-11-28)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* update dataspace standards packages ([dbd5bf6](https://github.com/twinfoundation/rights-management/commit/dbd5bf62403a97c758ee2320d9cac378c568165b))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Dependencies
|
|
12
|
+
|
|
13
|
+
* The following workspace dependencies were updated
|
|
14
|
+
* dependencies
|
|
15
|
+
* @twin.org/rights-management-models bumped from 0.0.3-next.2 to 0.0.3-next.3
|
|
16
|
+
* devDependencies
|
|
17
|
+
* @twin.org/rights-management-pap-service bumped from 0.0.3-next.2 to 0.0.3-next.3
|
|
18
|
+
* @twin.org/rights-management-pdp-service bumped from 0.0.3-next.2 to 0.0.3-next.3
|
|
19
|
+
* @twin.org/rights-management-pep-service bumped from 0.0.3-next.2 to 0.0.3-next.3
|
|
20
|
+
* @twin.org/rights-management-pip-service bumped from 0.0.3-next.2 to 0.0.3-next.3
|
|
21
|
+
* @twin.org/rights-management-pmp-service bumped from 0.0.3-next.2 to 0.0.3-next.3
|
|
22
|
+
* @twin.org/rights-management-pnp-service bumped from 0.0.3-next.2 to 0.0.3-next.3
|
|
23
|
+
* @twin.org/rights-management-pxp-service bumped from 0.0.3-next.2 to 0.0.3-next.3
|
|
24
|
+
|
|
3
25
|
## [0.0.3-next.2](https://github.com/twinfoundation/rights-management/compare/rights-management-service-v0.0.3-next.1...rights-management-service-v0.0.3-next.2) (2025-11-20)
|
|
4
26
|
|
|
5
27
|
|
package/docs/open-api/spec.json
CHANGED
|
@@ -635,7 +635,9 @@
|
|
|
635
635
|
"examples": {
|
|
636
636
|
"pnpGetNegotiationResponseExample": {
|
|
637
637
|
"value": {
|
|
638
|
-
"@context":
|
|
638
|
+
"@context": [
|
|
639
|
+
"https://w3id.org/dspace/2025/1/context.json"
|
|
640
|
+
],
|
|
639
641
|
"@type": "ContractNegotiation",
|
|
640
642
|
"providerPid": "urn:contract-negotiation:002aa11bb.......ffff",
|
|
641
643
|
"consumerPid": "urn:contract-negotiation:22aa11bb.......ffff",
|
|
@@ -728,7 +730,9 @@
|
|
|
728
730
|
"examples": {
|
|
729
731
|
"pnpNegotiationRequestExample": {
|
|
730
732
|
"value": {
|
|
731
|
-
"@context":
|
|
733
|
+
"@context": [
|
|
734
|
+
"https://w3id.org/dspace/2025/1/context.json"
|
|
735
|
+
],
|
|
732
736
|
"@type": "ContractRequestMessage",
|
|
733
737
|
"consumerPid": "urn:contract-negotiation:22aa11bb.......ffff",
|
|
734
738
|
"offer": {
|
|
@@ -754,7 +758,9 @@
|
|
|
754
758
|
"examples": {
|
|
755
759
|
"IPnpNegotiationRequestResponseExample": {
|
|
756
760
|
"value": {
|
|
757
|
-
"@context":
|
|
761
|
+
"@context": [
|
|
762
|
+
"https://w3id.org/dspace/2025/1/context.json"
|
|
763
|
+
],
|
|
758
764
|
"@type": "ContractNegotiation",
|
|
759
765
|
"providerPid": "urn:contract-negotiation:00aa11bb.......ffff",
|
|
760
766
|
"consumerPid": "urn:contract-negotiation:22aa11bb.......ffff",
|
|
@@ -838,7 +844,9 @@
|
|
|
838
844
|
"examples": {
|
|
839
845
|
"pnpNegotiationProviderRequestExample": {
|
|
840
846
|
"value": {
|
|
841
|
-
"@context":
|
|
847
|
+
"@context": [
|
|
848
|
+
"https://w3id.org/dspace/2025/1/context.json"
|
|
849
|
+
],
|
|
842
850
|
"@type": "ContractRequestMessage",
|
|
843
851
|
"consumerPid": "urn:contract-negotiation:22aa11bb.......ffff",
|
|
844
852
|
"offer": {
|
|
@@ -957,7 +965,9 @@
|
|
|
957
965
|
"examples": {
|
|
958
966
|
"pnpNegotiationEventsRequestExample": {
|
|
959
967
|
"value": {
|
|
960
|
-
"@context":
|
|
968
|
+
"@context": [
|
|
969
|
+
"https://w3id.org/dspace/2025/1/context.json"
|
|
970
|
+
],
|
|
961
971
|
"@type": "ContractRequestMessage",
|
|
962
972
|
"providerPid": "urn:contract-negotiation:00aa11bb.......ffff",
|
|
963
973
|
"consumerPid": "urn:contract-negotiation:22aa11bb.......ffff",
|
|
@@ -1072,7 +1082,9 @@
|
|
|
1072
1082
|
"examples": {
|
|
1073
1083
|
"pnpNegotiationAgreementVerificationRequestExample": {
|
|
1074
1084
|
"value": {
|
|
1075
|
-
"@context":
|
|
1085
|
+
"@context": [
|
|
1086
|
+
"https://w3id.org/dspace/2025/1/context.json"
|
|
1087
|
+
],
|
|
1076
1088
|
"@type": "ContractRequestMessage",
|
|
1077
1089
|
"providerPid": "urn:contract-negotiation:00aa11bb.......ffff",
|
|
1078
1090
|
"consumerPid": "urn:contract-negotiation:22aa11bb.......ffff"
|
|
@@ -1186,7 +1198,9 @@
|
|
|
1186
1198
|
"examples": {
|
|
1187
1199
|
"pnpNegotiationTerminationRequestExample": {
|
|
1188
1200
|
"value": {
|
|
1189
|
-
"@context":
|
|
1201
|
+
"@context": [
|
|
1202
|
+
"https://w3id.org/dspace/2025/1/context.json"
|
|
1203
|
+
],
|
|
1190
1204
|
"@type": "ContractRequestMessage",
|
|
1191
1205
|
"providerPid": "urn:contract-negotiation:00aa11bb.......ffff",
|
|
1192
1206
|
"consumerPid": "urn:contract-negotiation:22aa11bb.......ffff"
|
|
@@ -1289,7 +1303,9 @@
|
|
|
1289
1303
|
"examples": {
|
|
1290
1304
|
"pnpNegotiationOfferRequestExample": {
|
|
1291
1305
|
"value": {
|
|
1292
|
-
"@context":
|
|
1306
|
+
"@context": [
|
|
1307
|
+
"https://w3id.org/dspace/2025/1/context.json"
|
|
1308
|
+
],
|
|
1293
1309
|
"@type": "ContractRequestMessage",
|
|
1294
1310
|
"providerPid": "urn:contract-negotiation:00aa11bb.......ffff",
|
|
1295
1311
|
"consumerPid": "urn:contract-negotiation:22aa11bb.......ffff",
|
|
@@ -1316,7 +1332,9 @@
|
|
|
1316
1332
|
"examples": {
|
|
1317
1333
|
"pnpNegotiationOfferResponseExample": {
|
|
1318
1334
|
"value": {
|
|
1319
|
-
"@context":
|
|
1335
|
+
"@context": [
|
|
1336
|
+
"https://w3id.org/dspace/2025/1/context.json"
|
|
1337
|
+
],
|
|
1320
1338
|
"@type": "ContractRequestMessage",
|
|
1321
1339
|
"providerPid": "urn:contract-negotiation:00aa11bb.......ffff",
|
|
1322
1340
|
"consumerPid": "urn:contract-negotiation:22aa11bb.......ffff"
|
|
@@ -1399,7 +1417,9 @@
|
|
|
1399
1417
|
"examples": {
|
|
1400
1418
|
"pnpNegotiationConsumerOfferRequestExample": {
|
|
1401
1419
|
"value": {
|
|
1402
|
-
"@context":
|
|
1420
|
+
"@context": [
|
|
1421
|
+
"https://w3id.org/dspace/2025/1/context.json"
|
|
1422
|
+
],
|
|
1403
1423
|
"@type": "ContractRequestMessage",
|
|
1404
1424
|
"providerPid": "urn:contract-negotiation:00aa11bb.......ffff",
|
|
1405
1425
|
"consumerPid": "urn:contract-negotiation:22aa11bb.......ffff",
|
|
@@ -1426,7 +1446,9 @@
|
|
|
1426
1446
|
"examples": {
|
|
1427
1447
|
"pnpNegotiationConsumerOfferResponseExample": {
|
|
1428
1448
|
"value": {
|
|
1429
|
-
"@context":
|
|
1449
|
+
"@context": [
|
|
1450
|
+
"https://w3id.org/dspace/2025/1/context.json"
|
|
1451
|
+
],
|
|
1430
1452
|
"@type": "ContractNegotiation",
|
|
1431
1453
|
"providerPid": "urn:contract-negotiation:00aa11bb.......ffff",
|
|
1432
1454
|
"consumerPid": "urn:contract-negotiation:22aa11bb.......ffff"
|
|
@@ -1529,7 +1551,9 @@
|
|
|
1529
1551
|
"examples": {
|
|
1530
1552
|
"pnpNegotiationAgreementRequestExample": {
|
|
1531
1553
|
"value": {
|
|
1532
|
-
"@context":
|
|
1554
|
+
"@context": [
|
|
1555
|
+
"https://w3id.org/dspace/2025/1/context.json"
|
|
1556
|
+
],
|
|
1533
1557
|
"@type": "ContractRequestMessage",
|
|
1534
1558
|
"providerPid": "urn:contract-negotiation:00aa11bb.......ffff",
|
|
1535
1559
|
"consumerPid": "urn:contract-negotiation:22aa11bb.......ffff",
|
|
@@ -2693,8 +2717,13 @@
|
|
|
2693
2717
|
"DataspaceProtocolContextType": {
|
|
2694
2718
|
"anyOf": [
|
|
2695
2719
|
{
|
|
2696
|
-
"type": "
|
|
2697
|
-
"
|
|
2720
|
+
"type": "array",
|
|
2721
|
+
"items": {
|
|
2722
|
+
"type": "string",
|
|
2723
|
+
"const": "https://w3id.org/dspace/2025/1/context.json"
|
|
2724
|
+
},
|
|
2725
|
+
"minItems": 1,
|
|
2726
|
+
"maxItems": 1
|
|
2698
2727
|
},
|
|
2699
2728
|
{
|
|
2700
2729
|
"type": "array",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@twin.org/rights-management-service",
|
|
3
|
-
"version": "0.0.3-next.
|
|
3
|
+
"version": "0.0.3-next.3",
|
|
4
4
|
"description": "Rights Management service implementation and REST endpoint definitions",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"@twin.org/entity": "next",
|
|
26
26
|
"@twin.org/identity-authentication": "next",
|
|
27
27
|
"@twin.org/nameof": "next",
|
|
28
|
-
"@twin.org/rights-management-models": "0.0.3-next.
|
|
28
|
+
"@twin.org/rights-management-models": "0.0.3-next.3",
|
|
29
29
|
"@twin.org/standards-dataspace-protocol": "next",
|
|
30
30
|
"@twin.org/standards-w3c-did": "next",
|
|
31
31
|
"@twin.org/standards-w3c-odrl": "next",
|