@twin.org/identity-service 0.0.3-next.1 → 0.0.3-next.10

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.
@@ -48,7 +48,7 @@ export function generateRestRoutesIdentityResolver(baseRouteName, componentName)
48
48
  id: "identityResolveResponseExample",
49
49
  response: {
50
50
  body: {
51
- "@context": DidContexts.Context,
51
+ "@context": DidContexts.Namespace,
52
52
  id: "did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a",
53
53
  service: [
54
54
  {
@@ -1 +1 @@
1
- {"version":3,"file":"identityResolverRoutes.js","sourceRoot":"","sources":["../../src/identityResolverRoutes.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAO1D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D;;GAEG;AACH,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAW;IAC3C;QACC,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,8DAA8D;KAC3E;CACD,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,kCAAkC,CACjD,aAAqB,EACrB,aAAqB;IAErB,MAAM,oBAAoB,GAAkE;QAC3F,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,qBAAqB;QAC9B,GAAG,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI;QACjC,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,GAAG,aAAa,YAAY;QAClC,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,CAC9C,eAAe,CAAC,kBAAkB,EAAE,aAAa,EAAE,OAAO,CAAC;QAC5D,WAAW,EAAE;YACZ,IAAI,2BAAmC;YACvC,QAAQ,EAAE;gBACT;oBACC,EAAE,EAAE,+BAA+B;oBACnC,OAAO,EAAE;wBACR,UAAU,EAAE;4BACX,QAAQ,EACP,iFAAiF;yBAClF;qBACD;iBACD;aACD;SACD;QACD,YAAY,EAAE;YACb;gBACC,IAAI,4BAAoC;gBACxC,QAAQ,EAAE;oBACT;wBACC,EAAE,EAAE,gCAAgC;wBACpC,QAAQ,EAAE;4BACT,IAAI,EAAE;gCACL,UAAU,EAAE,WAAW,CAAC,OAAO;gCAC/B,EAAE,EAAE,iFAAiF;gCACrF,OAAO,EAAE;oCACR;wCACC,EAAE,EAAE,4FAA4F;wCAChG,IAAI,EAAE,sBAAsB;wCAC5B,eAAe,EAAE,oDAAoD;qCACrE;iCACD;6BACD;yBACD;qBACD;iBACD;aACD;SACD;QACD,QAAQ,EAAE,IAAI;KACd,CAAC;IAEF,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,kBAAuC,EACvC,aAAqB,EACrB,OAAgC;IAEhC,MAAM,CAAC,MAAM,CAA0B,aAAa,aAAmB,OAAO,CAAC,CAAC;IAChF,MAAM,CAAC,MAAM,CACZ,aAAa,wBAEb,OAAO,CAAC,UAAU,CAClB,CAAC;IACF,MAAM,CAAC,WAAW,CACjB,aAAa,iCAEb,OAAO,CAAC,UAAU,CAAC,QAAQ,CAC3B,CAAC;IAEF,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAA6B,aAAa,CAAC,CAAC;IAElF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE5E,OAAO;QACN,IAAI,EAAE,MAAM;KACZ,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IHttpRequestContext, IRestRoute, ITag } from \"@twin.org/api-models\";\nimport { ComponentFactory, Guards } from \"@twin.org/core\";\nimport type {\n\tIIdentityResolverComponent,\n\tIIdentityResolveRequest,\n\tIIdentityResolveResponse\n} from \"@twin.org/identity-models\";\nimport { nameof } from \"@twin.org/nameof\";\nimport { DidContexts } from \"@twin.org/standards-w3c-did\";\n\n/**\n * The source used when communicating about these routes.\n */\nconst ROUTES_SOURCE = \"identityResolverRoutes\";\n\n/**\n * The tag to associate with the routes.\n */\nexport const tagsIdentityResolver: ITag[] = [\n\t{\n\t\tname: \"Identity\",\n\t\tdescription: \"Service to provide all features related to digital identity.\"\n\t}\n];\n\n/**\n * The REST routes for identity.\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 generateRestRoutesIdentityResolver(\n\tbaseRouteName: string,\n\tcomponentName: string\n): IRestRoute[] {\n\tconst identityResolveRoute: IRestRoute<IIdentityResolveRequest, IIdentityResolveResponse> = {\n\t\toperationId: \"identityResolve\",\n\t\tsummary: \"Resolve an identity\",\n\t\ttag: tagsIdentityResolver[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:identity`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityResolve(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityResolveRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityResolveRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\"did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a\"\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<IIdentityResolveResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityResolveResponseExample\",\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\": DidContexts.Context,\n\t\t\t\t\t\t\t\tid: \"did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a\",\n\t\t\t\t\t\t\t\tservice: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tid: \"did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a#revocation\",\n\t\t\t\t\t\t\t\t\t\ttype: \"RevocationBitmap2022\",\n\t\t\t\t\t\t\t\t\t\tserviceEndpoint: \"data:application/octet-stream;base64,eJyzMmAAAwABr\"\n\t\t\t\t\t\t\t\t\t}\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],\n\t\tskipAuth: true\n\t};\n\n\treturn [identityResolveRoute];\n}\n\n/**\n * Resolve an identity.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityResolve(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityResolveRequest\n): Promise<IIdentityResolveResponse> {\n\tGuards.object<IIdentityResolveRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityResolveRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.identity),\n\t\trequest.pathParams.identity\n\t);\n\n\tconst component = ComponentFactory.get<IIdentityResolverComponent>(componentName);\n\n\tconst result = await component.identityResolve(request.pathParams.identity);\n\n\treturn {\n\t\tbody: result\n\t};\n}\n"]}
1
+ {"version":3,"file":"identityResolverRoutes.js","sourceRoot":"","sources":["../../src/identityResolverRoutes.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAO1D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D;;GAEG;AACH,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAW;IAC3C;QACC,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,8DAA8D;KAC3E;CACD,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,kCAAkC,CACjD,aAAqB,EACrB,aAAqB;IAErB,MAAM,oBAAoB,GAAkE;QAC3F,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,qBAAqB;QAC9B,GAAG,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI;QACjC,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,GAAG,aAAa,YAAY;QAClC,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,CAC9C,eAAe,CAAC,kBAAkB,EAAE,aAAa,EAAE,OAAO,CAAC;QAC5D,WAAW,EAAE;YACZ,IAAI,2BAAmC;YACvC,QAAQ,EAAE;gBACT;oBACC,EAAE,EAAE,+BAA+B;oBACnC,OAAO,EAAE;wBACR,UAAU,EAAE;4BACX,QAAQ,EACP,iFAAiF;yBAClF;qBACD;iBACD;aACD;SACD;QACD,YAAY,EAAE;YACb;gBACC,IAAI,4BAAoC;gBACxC,QAAQ,EAAE;oBACT;wBACC,EAAE,EAAE,gCAAgC;wBACpC,QAAQ,EAAE;4BACT,IAAI,EAAE;gCACL,UAAU,EAAE,WAAW,CAAC,SAAS;gCACjC,EAAE,EAAE,iFAAiF;gCACrF,OAAO,EAAE;oCACR;wCACC,EAAE,EAAE,4FAA4F;wCAChG,IAAI,EAAE,sBAAsB;wCAC5B,eAAe,EAAE,oDAAoD;qCACrE;iCACD;6BACD;yBACD;qBACD;iBACD;aACD;SACD;QACD,QAAQ,EAAE,IAAI;KACd,CAAC;IAEF,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,kBAAuC,EACvC,aAAqB,EACrB,OAAgC;IAEhC,MAAM,CAAC,MAAM,CAA0B,aAAa,aAAmB,OAAO,CAAC,CAAC;IAChF,MAAM,CAAC,MAAM,CACZ,aAAa,wBAEb,OAAO,CAAC,UAAU,CAClB,CAAC;IACF,MAAM,CAAC,WAAW,CACjB,aAAa,iCAEb,OAAO,CAAC,UAAU,CAAC,QAAQ,CAC3B,CAAC;IAEF,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAA6B,aAAa,CAAC,CAAC;IAElF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE5E,OAAO;QACN,IAAI,EAAE,MAAM;KACZ,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IHttpRequestContext, IRestRoute, ITag } from \"@twin.org/api-models\";\nimport { ComponentFactory, Guards } from \"@twin.org/core\";\nimport type {\n\tIIdentityResolverComponent,\n\tIIdentityResolveRequest,\n\tIIdentityResolveResponse\n} from \"@twin.org/identity-models\";\nimport { nameof } from \"@twin.org/nameof\";\nimport { DidContexts } from \"@twin.org/standards-w3c-did\";\n\n/**\n * The source used when communicating about these routes.\n */\nconst ROUTES_SOURCE = \"identityResolverRoutes\";\n\n/**\n * The tag to associate with the routes.\n */\nexport const tagsIdentityResolver: ITag[] = [\n\t{\n\t\tname: \"Identity\",\n\t\tdescription: \"Service to provide all features related to digital identity.\"\n\t}\n];\n\n/**\n * The REST routes for identity.\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 generateRestRoutesIdentityResolver(\n\tbaseRouteName: string,\n\tcomponentName: string\n): IRestRoute[] {\n\tconst identityResolveRoute: IRestRoute<IIdentityResolveRequest, IIdentityResolveResponse> = {\n\t\toperationId: \"identityResolve\",\n\t\tsummary: \"Resolve an identity\",\n\t\ttag: tagsIdentityResolver[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:identity`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityResolve(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityResolveRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityResolveRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\"did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a\"\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<IIdentityResolveResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityResolveResponseExample\",\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\": DidContexts.Namespace,\n\t\t\t\t\t\t\t\tid: \"did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a\",\n\t\t\t\t\t\t\t\tservice: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tid: \"did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a#revocation\",\n\t\t\t\t\t\t\t\t\t\ttype: \"RevocationBitmap2022\",\n\t\t\t\t\t\t\t\t\t\tserviceEndpoint: \"data:application/octet-stream;base64,eJyzMmAAAwABr\"\n\t\t\t\t\t\t\t\t\t}\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],\n\t\tskipAuth: true\n\t};\n\n\treturn [identityResolveRoute];\n}\n\n/**\n * Resolve an identity.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityResolve(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityResolveRequest\n): Promise<IIdentityResolveResponse> {\n\tGuards.object<IIdentityResolveRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityResolveRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.identity),\n\t\trequest.pathParams.identity\n\t);\n\n\tconst component = ComponentFactory.get<IIdentityResolverComponent>(componentName);\n\n\tconst result = await component.identityResolve(request.pathParams.identity);\n\n\treturn {\n\t\tbody: result\n\t};\n}\n"]}
@@ -47,7 +47,7 @@ export function generateRestRoutesIdentity(baseRouteName, componentName) {
47
47
  id: "identityCreateResponseExample",
48
48
  response: {
49
49
  body: {
50
- "@context": DidContexts.Context,
50
+ "@context": DidContexts.Namespace,
51
51
  id: "did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a",
52
52
  service: [
53
53
  {
@@ -382,7 +382,7 @@ export function generateRestRoutesIdentity(baseRouteName, componentName) {
382
382
  request: {
383
383
  pathParams: {
384
384
  identity: "did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a",
385
- revocationIndex: 5
385
+ revocationIndex: "5"
386
386
  }
387
387
  }
388
388
  }
@@ -417,7 +417,7 @@ export function generateRestRoutesIdentity(baseRouteName, componentName) {
417
417
  request: {
418
418
  pathParams: {
419
419
  identity: "did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a",
420
- revocationIndex: 5
420
+ revocationIndex: "5"
421
421
  }
422
422
  }
423
423
  }
@@ -1 +1 @@
1
- {"version":3,"file":"identityRoutes.js","sourceRoot":"","sources":["../../src/identityRoutes.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type {\n\tIHttpRequestContext,\n\tINoContentResponse,\n\tIRestRoute,\n\tITag\n} from \"@twin.org/api-models\";\nimport { ContextIdHelper, ContextIdKeys, ContextIdStore } from \"@twin.org/context\";\nimport { Coerce, ComponentFactory, Guards } from \"@twin.org/core\";\nimport {\n\tDocumentHelper,\n\ttype IIdentityComponent,\n\ttype IIdentityCreateRequest,\n\ttype IIdentityCreateResponse,\n\ttype IIdentityProofCreateRequest,\n\ttype IIdentityProofCreateResponse,\n\ttype IIdentityProofVerifyRequest,\n\ttype IIdentityProofVerifyResponse,\n\ttype IIdentityRemoveRequest,\n\ttype IIdentityServiceCreateRequest,\n\ttype IIdentityServiceCreateResponse,\n\ttype IIdentityServiceRemoveRequest,\n\ttype IIdentityVerifiableCredentialCreateRequest,\n\ttype IIdentityVerifiableCredentialCreateResponse,\n\ttype IIdentityVerifiableCredentialRevokeRequest,\n\ttype IIdentityVerifiableCredentialUnrevokeRequest,\n\ttype IIdentityVerifiableCredentialVerifyRequest,\n\ttype IIdentityVerifiableCredentialVerifyResponse,\n\ttype IIdentityVerifiablePresentationCreateRequest,\n\ttype IIdentityVerifiablePresentationCreateResponse,\n\ttype IIdentityVerifiablePresentationVerifyRequest,\n\ttype IIdentityVerifiablePresentationVerifyResponse,\n\ttype IIdentityVerificationMethodCreateRequest,\n\ttype IIdentityVerificationMethodCreateResponse,\n\ttype IIdentityVerificationMethodRemoveRequest\n} from \"@twin.org/identity-models\";\nimport { nameof } from \"@twin.org/nameof\";\nimport { DidContexts } from \"@twin.org/standards-w3c-did\";\nimport { HttpStatusCode } from \"@twin.org/web\";\n\n/**\n * The source used when communicating about these routes.\n */\nconst ROUTES_SOURCE = \"identityRoutes\";\n\n/**\n * The tag to associate with the routes.\n */\nexport const tagsIdentity: ITag[] = [\n\t{\n\t\tname: \"Identity\",\n\t\tdescription: \"Service to provide all features related to digital identity.\"\n\t}\n];\n\n/**\n * The REST routes for identity.\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 generateRestRoutesIdentity(\n\tbaseRouteName: string,\n\tcomponentName: string\n): IRestRoute[] {\n\tconst identityCreateRoute: IRestRoute<IIdentityCreateRequest, IIdentityCreateResponse> = {\n\t\toperationId: \"identityCreate\",\n\t\tsummary: \"Create an identity\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityCreate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityCreateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityCreateRequestExample\",\n\t\t\t\t\trequest: {}\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<IIdentityCreateResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityCreateResponseExample\",\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\": DidContexts.Context,\n\t\t\t\t\t\t\t\tid: \"did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a\",\n\t\t\t\t\t\t\t\tservice: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tid: \"did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a#revocation\",\n\t\t\t\t\t\t\t\t\t\ttype: \"RevocationBitmap2022\",\n\t\t\t\t\t\t\t\t\t\tserviceEndpoint: \"data:application/octet-stream;base64,eJyzMmAAAwABr\"\n\t\t\t\t\t\t\t\t\t}\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]\n\t};\n\n\tconst identityRemoveRoute: IRestRoute<IIdentityRemoveRequest, INoContentResponse> = {\n\t\toperationId: \"identityRemove\",\n\t\tsummary: \"Remove an identity\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"DELETE\",\n\t\tpath: `${baseRouteName}/:identity`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityRemove(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityRemoveRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityRemoveRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\"did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a\"\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<INoContentResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst identityVerificationMethodCreateRoute: IRestRoute<\n\t\tIIdentityVerificationMethodCreateRequest,\n\t\tIIdentityVerificationMethodCreateResponse\n\t> = {\n\t\toperationId: \"identityVerificationMethodCreate\",\n\t\tsummary: \"Create an identity verification method\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/:identity/verification-method`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityVerificationMethodCreate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityVerificationMethodCreateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityVerificationMethodCreateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\"did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tverificationMethodType: \"assertionMethod\",\n\t\t\t\t\t\t\tverificationMethodId: \"my-assertion\"\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<IIdentityVerificationMethodCreateResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityVerificationMethodCreateResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\tid: \"did:iota:tst:0x70ce5abe69e7c56dd69684dd6da65812b9758b03a0081331ca560b34d73d5ff0#my-assertion\",\n\t\t\t\t\t\t\t\tcontroller:\n\t\t\t\t\t\t\t\t\t\"did:iota:tst:0x70ce5abe69e7c56dd69684dd6da65812b9758b03a0081331ca560b34d73d5ff0\",\n\t\t\t\t\t\t\t\ttype: \"JsonWebKey2020\",\n\t\t\t\t\t\t\t\tpublicKeyJwk: {\n\t\t\t\t\t\t\t\t\tkty: \"OKP\",\n\t\t\t\t\t\t\t\t\talg: \"EdDSA\",\n\t\t\t\t\t\t\t\t\tkid: \"f_fj3rGsZFSYvnS_xv5MgyIBlExq-lgDciu0YQ--S3s\",\n\t\t\t\t\t\t\t\t\tcrv: \"Ed25519\",\n\t\t\t\t\t\t\t\t\tx: \"SFm32z7y9C17olpaTeocG25WV2CNTUl5MhM679Z4bok\"\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]\n\t};\n\n\tconst identityVerificationMethodRemoveRoute: IRestRoute<\n\t\tIIdentityVerificationMethodRemoveRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"identityVerificationMethodRemove\",\n\t\tsummary: \"Remove an identity verification method\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"DELETE\",\n\t\tpath: `${baseRouteName}/:identity/verification-method/:verificationMethodId`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityVerificationMethodRemove(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityVerificationMethodRemoveRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityVerificationMethodRemoveRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\"did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a\",\n\t\t\t\t\t\t\tverificationMethodId: \"my-assertion\"\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<INoContentResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityVerificationMethodCreateResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tstatusCode: HttpStatusCode.noContent\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};\n\n\tconst identityServiceCreateRoute: IRestRoute<\n\t\tIIdentityServiceCreateRequest,\n\t\tIIdentityServiceCreateResponse\n\t> = {\n\t\toperationId: \"identityServiceCreate\",\n\t\tsummary: \"Create an identity service\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/:identity/service`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityServiceCreate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityServiceCreateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityServiceCreateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\"did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tserviceId: \"did:example:123#linked-domain\",\n\t\t\t\t\t\t\ttype: \"LinkedDomains\",\n\t\t\t\t\t\t\tendpoint: \"https://bar.example.com\"\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<IIdentityServiceCreateResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityServiceCreateResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\tid: \"did:example:123#linked-domain\",\n\t\t\t\t\t\t\t\ttype: \"LinkedDomains\",\n\t\t\t\t\t\t\t\tserviceEndpoint: \"https://bar.example.com\"\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};\n\n\tconst identityServiceRemoveRoute: IRestRoute<IIdentityServiceRemoveRequest, INoContentResponse> =\n\t\t{\n\t\t\toperationId: \"identityServiceRemove\",\n\t\t\tsummary: \"Remove an identity service\",\n\t\t\ttag: tagsIdentity[0].name,\n\t\t\tmethod: \"DELETE\",\n\t\t\tpath: `${baseRouteName}/:identity/service/:serviceId`,\n\t\t\thandler: async (httpRequestContext, request) =>\n\t\t\t\tidentityServiceRemove(httpRequestContext, componentName, request),\n\t\t\trequestType: {\n\t\t\t\ttype: nameof<IIdentityServiceRemoveRequest>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityServiceRemoveRequestExample\",\n\t\t\t\t\t\trequest: {\n\t\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\t\"did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a\",\n\t\t\t\t\t\t\t\tserviceId: \"did:example:123#linked-domain\"\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<INoContentResponse>(),\n\t\t\t\t\texamples: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: \"identityServiceCreateResponseExample\",\n\t\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\t\tstatusCode: HttpStatusCode.noContent\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\n\tconst identityVerifiableCredentialCreateRoute: IRestRoute<\n\t\tIIdentityVerifiableCredentialCreateRequest,\n\t\tIIdentityVerifiableCredentialCreateResponse\n\t> = {\n\t\toperationId: \"identityVerifiableCredentialCreate\",\n\t\tsummary: \"Create an identity verifiable credential\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/:identity/verifiable-credential/:verificationMethodId`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityVerifiableCredentialCreate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityVerifiableCredentialCreateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityVerifiableCredentialCreateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\"did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a\",\n\t\t\t\t\t\t\tverificationMethodId: \"my-assertion\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tcredentialId: \"https://example.com/credentials/3732\",\n\t\t\t\t\t\t\tsubject: {\n\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\"@type\": \"Person\",\n\t\t\t\t\t\t\t\tid: \"did:entity-storage:0x4757993355b921a8229bd780f30921b6a0216a72e6c3f37a09d13b8426a17def\",\n\t\t\t\t\t\t\t\tname: \"Jane Doe\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\trevocationIndex: 5\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<IIdentityVerifiableCredentialCreateResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityVerifiableCredentialCreateResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\tverifiableCredential: {\n\t\t\t\t\t\t\t\t\t\"@context\": [\"https://www.w3.org/2018/credentials/v1\", \"https://schema.org\"],\n\t\t\t\t\t\t\t\t\tid: \"https://example.com/credentials/3732\",\n\t\t\t\t\t\t\t\t\ttype: [\"VerifiableCredential\", \"Person\"],\n\t\t\t\t\t\t\t\t\tcredentialSubject: {\n\t\t\t\t\t\t\t\t\t\tid: \"did:entity-storage:0x4757993355b921a8229bd780f30921b6a0216a72e6c3f37a09d13b8426a17def\",\n\t\t\t\t\t\t\t\t\t\tname: \"Jane Doe\"\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tissuer:\n\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a\",\n\t\t\t\t\t\t\t\t\tissuanceDate: \"2025-01-24T09:21:51.500Z\",\n\t\t\t\t\t\t\t\t\tcredentialStatus: {\n\t\t\t\t\t\t\t\t\t\tid: \"did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a#revocation\",\n\t\t\t\t\t\t\t\t\t\ttype: \"BitstringStatusList\",\n\t\t\t\t\t\t\t\t\t\trevocationBitmapIndex: \"5\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tjwt: \"eyJraWQiOi...D1Z3AQ\"\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};\n\n\tconst identityVerifiableCredentialVerifyRoute: IRestRoute<\n\t\tIIdentityVerifiableCredentialVerifyRequest,\n\t\tIIdentityVerifiableCredentialVerifyResponse\n\t> = {\n\t\toperationId: \"identityVerifiableCredentialVerify\",\n\t\tsummary: \"Verify an identity verifiable credential\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/verifiable-credential/verify`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityVerifiableCredentialVerify(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityVerifiableCredentialVerifyRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityVerifiableCredentialVerifyRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tjwt: \"eyJraWQiOi...D1Z3AQ\"\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<IIdentityVerifiableCredentialVerifyResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityVerifiableCredentialVerifyResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\trevoked: false,\n\t\t\t\t\t\t\t\tverifiableCredential: {\n\t\t\t\t\t\t\t\t\t\"@context\": [\"https://www.w3.org/2018/credentials/v1\", \"https://schema.org\"],\n\t\t\t\t\t\t\t\t\tid: \"https://example.com/credentials/3732\",\n\t\t\t\t\t\t\t\t\ttype: [\"VerifiableCredential\", \"Person\"],\n\t\t\t\t\t\t\t\t\tcredentialSubject: {\n\t\t\t\t\t\t\t\t\t\tid: \"did:entity-storage:0x4757993355b921a8229bd780f30921b6a0216a72e6c3f37a09d13b8426a17def\",\n\t\t\t\t\t\t\t\t\t\tname: \"Jane Doe\"\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tissuer:\n\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a\",\n\t\t\t\t\t\t\t\t\tissuanceDate: \"2025-01-24T09:21:51.500Z\",\n\t\t\t\t\t\t\t\t\tcredentialStatus: {\n\t\t\t\t\t\t\t\t\t\tid: \"did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a#revocation\",\n\t\t\t\t\t\t\t\t\t\ttype: \"BitstringStatusList\",\n\t\t\t\t\t\t\t\t\t\trevocationBitmapIndex: \"5\"\n\t\t\t\t\t\t\t\t\t}\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],\n\t\tskipAuth: true\n\t};\n\n\tconst identityVerifiableCredentialRevokeRoute: IRestRoute<\n\t\tIIdentityVerifiableCredentialRevokeRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"identityVerifiableCredentialRevoke\",\n\t\tsummary: \"Revoke an identity verifiable credential\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:identity/verifiable-credential/revoke/:revocationIndex`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityVerifiableCredentialRevoke(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityVerifiableCredentialRevokeRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityVerifiableCredentialRevokeRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\"did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a\",\n\t\t\t\t\t\t\trevocationIndex: 5\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<INoContentResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityServiceRevokeResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tstatusCode: HttpStatusCode.noContent\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};\n\n\tconst identityVerifiableCredentialUnrevokeRoute: IRestRoute<\n\t\tIIdentityVerifiableCredentialUnrevokeRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"identityVerifiableCredentialUnrevoke\",\n\t\tsummary: \"Unrevoke an identity verifiable credential\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:identity/verifiable-credential/unrevoke/:revocationIndex`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityVerifiableCredentialUnrevoke(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityVerifiableCredentialUnrevokeRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityVerifiableCredentialUnrevokeRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\"did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a\",\n\t\t\t\t\t\t\trevocationIndex: 5\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<INoContentResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityServiceUnrevokeResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tstatusCode: HttpStatusCode.noContent\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};\n\n\tconst identityVerifiablePresentationCreateRoute: IRestRoute<\n\t\tIIdentityVerifiablePresentationCreateRequest,\n\t\tIIdentityVerifiablePresentationCreateResponse\n\t> = {\n\t\toperationId: \"identityVerifiablePresentationCreate\",\n\t\tsummary: \"Create an identity verifiable presentation\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/:identity/verifiable-presentation/:verificationMethodId`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityVerifiablePresentationCreate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityVerifiablePresentationCreateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityVerifiablePresentationCreateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\"did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a\",\n\t\t\t\t\t\t\tverificationMethodId: \"my-assertion\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tpresentationId: \"https://example.com/presentation/3732\",\n\t\t\t\t\t\t\tverifiableCredentials: [\"eyJraWQiOi...D1Z3AQ\"]\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<IIdentityVerifiablePresentationCreateResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"IIdentityVerifiablePresentationCreateResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\tverifiablePresentation: {\n\t\t\t\t\t\t\t\t\t\"@context\": [\"https://www.w3.org/2018/credentials/v1\", \"https://schema.org\"],\n\t\t\t\t\t\t\t\t\tid: \"presentationId\",\n\t\t\t\t\t\t\t\t\ttype: [\"VerifiablePresentation\", \"Person\"],\n\t\t\t\t\t\t\t\t\tverifiableCredential: [\"eyJraWQiOi...D1Z3AQ\"],\n\t\t\t\t\t\t\t\t\tholder:\n\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0xcea318e06e89f3fb4048160770effd84d0cfa5801fee13dfa6f9413a00429cec\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tjwt: \"eyJraWQiOi...D1Z3AQ\"\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};\n\n\tconst identityVerifiablePresentationVerifyRoute: IRestRoute<\n\t\tIIdentityVerifiablePresentationVerifyRequest,\n\t\tIIdentityVerifiablePresentationVerifyResponse\n\t> = {\n\t\toperationId: \"identityVerifiablePresentationVerify\",\n\t\tsummary: \"Verify an identity verifiable presentation\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/verifiable-presentation/verify`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityVerifiablePresentationVerify(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityVerifiablePresentationVerifyRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityVerifiablePresentationVerifyRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tjwt: \"eyJraWQiOi...D1Z3AQ\"\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<IIdentityVerifiablePresentationVerifyResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityVerifiablePresentationVerifyResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\trevoked: false,\n\t\t\t\t\t\t\t\tverifiablePresentation: {\n\t\t\t\t\t\t\t\t\t\"@context\": [\"https://www.w3.org/2018/credentials/v1\", \"https://schema.org\"],\n\t\t\t\t\t\t\t\t\tid: \"presentationId\",\n\t\t\t\t\t\t\t\t\ttype: [\"VerifiablePresentation\", \"Person\"],\n\t\t\t\t\t\t\t\t\tverifiableCredential: [\"eyJraWQiOi...D1Z3AQ\"],\n\t\t\t\t\t\t\t\t\tholder:\n\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0xcea318e06e89f3fb4048160770effd84d0cfa5801fee13dfa6f9413a00429cec\"\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],\n\t\tskipAuth: true\n\t};\n\n\tconst identityProofCreateRoute: IRestRoute<\n\t\tIIdentityProofCreateRequest,\n\t\tIIdentityProofCreateResponse\n\t> = {\n\t\toperationId: \"identityProofCreate\",\n\t\tsummary: \"Create an identity proof\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/:identity/proof/:verificationMethodId`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityProofCreate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityProofCreateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityProofCreateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\"did:entity-storage:0xda2df3ebc91ee0d5229d6532ffd0f4426952a94f34988b0ca906694dfd366a6a\",\n\t\t\t\t\t\t\tverificationMethodId: \"my-verification-id\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tproofType: \"DataIntegrityProof\",\n\t\t\t\t\t\t\tdocument: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\"https://www.w3.org/2018/credentials/v1\",\n\t\t\t\t\t\t\t\t\t\"https://www.w3.org/2018/credentials/examples/v1\"\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tid: \"urn:uuid:58172aac-d8ba-11ed-83dd-0b3aef56cc33\",\n\t\t\t\t\t\t\t\ttype: [\"VerifiableCredential\", \"AlumniCredential\"],\n\t\t\t\t\t\t\t\tname: \"Alumni Credential\",\n\t\t\t\t\t\t\t\tdescription: \"A minimum viable example of an Alumni Credential.\",\n\t\t\t\t\t\t\t\tissuer: \"https://vc.example/issuers/5678\",\n\t\t\t\t\t\t\t\tvalidFrom: \"2023-01-01T00:00:00Z\",\n\t\t\t\t\t\t\t\tcredentialSubject: {\n\t\t\t\t\t\t\t\t\tid: \"did:example:abcdefgh\",\n\t\t\t\t\t\t\t\t\talumniOf: \"The School of Examples\"\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},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IIdentityProofCreateResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityProofCreateResponseExample\",\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\": [\n\t\t\t\t\t\t\t\t\t\"https://www.w3.org/ns/credentials/v2\",\n\t\t\t\t\t\t\t\t\t\"https://www.w3.org/ns/credentials/examples/v2\"\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: \"DataIntegrityProof\",\n\t\t\t\t\t\t\t\tcryptosuite: \"eddsa-jcs-2022\",\n\t\t\t\t\t\t\t\tcreated: \"2024-01-31T16:00:45.490Z\",\n\t\t\t\t\t\t\t\tverificationMethod:\n\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x0101010101010101010101010101010101010101010101010101010101010101#my-verification-id\",\n\t\t\t\t\t\t\t\tproofPurpose: \"assertionMethod\",\n\t\t\t\t\t\t\t\tproofValue:\n\t\t\t\t\t\t\t\t\t\"z2zGoejwpX6HH2T11BZaniEVZrqRKDpwbQSvPcL7eL9M7hV5P9zQQZxs85n6qyDzkkXCL8aFUWfwQD5bxVGqDK1fa\"\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};\n\n\tconst identityProofVerifyRoute: IRestRoute<\n\t\tIIdentityProofVerifyRequest,\n\t\tIIdentityProofVerifyResponse\n\t> = {\n\t\toperationId: \"identityProofVerify\",\n\t\tsummary: \"Verify an identity proof\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/proof/verify`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityProofVerify(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityProofVerifyRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityProofVerifyRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tdocument: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\"https://www.w3.org/2018/credentials/v1\",\n\t\t\t\t\t\t\t\t\t\"https://www.w3.org/2018/credentials/examples/v1\"\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tid: \"urn:uuid:58172aac-d8ba-11ed-83dd-0b3aef56cc33\",\n\t\t\t\t\t\t\t\ttype: [\"VerifiableCredential\", \"AlumniCredential\"],\n\t\t\t\t\t\t\t\tname: \"Alumni Credential\",\n\t\t\t\t\t\t\t\tdescription: \"A minimum viable example of an Alumni Credential.\",\n\t\t\t\t\t\t\t\tissuer: \"https://vc.example/issuers/5678\",\n\t\t\t\t\t\t\t\tvalidFrom: \"2023-01-01T00:00:00Z\",\n\t\t\t\t\t\t\t\tcredentialSubject: {\n\t\t\t\t\t\t\t\t\tid: \"did:example:abcdefgh\",\n\t\t\t\t\t\t\t\t\talumniOf: \"The School of Examples\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tproof: {\n\t\t\t\t\t\t\t\t\"@context\": \"https://www.w3.org/ns/credentials/v2\",\n\t\t\t\t\t\t\t\ttype: \"DataIntegrityProof\",\n\t\t\t\t\t\t\t\tcryptosuite: \"eddsa-jcs-2022\",\n\t\t\t\t\t\t\t\tcreated: \"2025-01-24T11:32:13.106Z\",\n\t\t\t\t\t\t\t\tverificationMethod:\n\t\t\t\t\t\t\t\t\t\"did:entity-storage:0xda2df3ebc91ee0d5229d6532ffd0f4426952a94f34988b0ca906694dfd366a6a#my-verification-id\",\n\t\t\t\t\t\t\t\tproofPurpose: \"assertionMethod\",\n\t\t\t\t\t\t\t\tproofValue:\n\t\t\t\t\t\t\t\t\t\"2fVLgANruCBoRPBCJavi54mZtkQdyMz6T2N4XVyB96asawiriKrVWoktcSQ7dMGrBTiemBBDpcLE2HfiTBCGuBmq\"\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<IIdentityProofVerifyResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityProofVerifyResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\tverified: true\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};\n\n\treturn [\n\t\tidentityCreateRoute,\n\t\tidentityRemoveRoute,\n\t\tidentityVerificationMethodCreateRoute,\n\t\tidentityVerificationMethodRemoveRoute,\n\t\tidentityServiceCreateRoute,\n\t\tidentityServiceRemoveRoute,\n\t\tidentityVerifiableCredentialCreateRoute,\n\t\tidentityVerifiableCredentialVerifyRoute,\n\t\tidentityVerifiableCredentialRevokeRoute,\n\t\tidentityVerifiableCredentialUnrevokeRoute,\n\t\tidentityVerifiablePresentationCreateRoute,\n\t\tidentityVerifiablePresentationVerifyRoute,\n\t\tidentityProofCreateRoute,\n\t\tidentityProofVerifyRoute\n\t];\n}\n\n/**\n * Create an identity.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityCreateRequest\n): Promise<IIdentityCreateResponse> {\n\tGuards.object<IIdentityCreateRequest>(ROUTES_SOURCE, nameof(request), request);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.identityCreate(\n\t\trequest.body?.namespace,\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tbody: result\n\t};\n}\n\n/**\n * Remove an identity.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityRemove(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityRemoveRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IIdentityRemoveRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityRemoveRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tawait component.identityRemove(\n\t\trequest.pathParams.identity,\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Create an identity verification method.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityVerificationMethodCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityVerificationMethodCreateRequest\n): Promise<IIdentityVerificationMethodCreateResponse> {\n\tGuards.object<IIdentityVerificationMethodCreateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityVerificationMethodCreateRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.identity),\n\t\trequest.pathParams.identity\n\t);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.verificationMethodCreate(\n\t\trequest.pathParams.identity,\n\t\trequest.body.verificationMethodType,\n\t\trequest.body.verificationMethodId,\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tbody: result\n\t};\n}\n\n/**\n * Remove an identity verification method.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityVerificationMethodRemove(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityVerificationMethodRemoveRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IIdentityVerificationMethodRemoveRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityVerificationMethodRemoveRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.identity),\n\t\trequest.pathParams.identity\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.verificationMethodId),\n\t\trequest.pathParams.verificationMethodId\n\t);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tawait component.verificationMethodRemove(\n\t\tDocumentHelper.joinId(request.pathParams.identity, request.pathParams.verificationMethodId),\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Create an identity service.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityServiceCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityServiceCreateRequest\n): Promise<IIdentityServiceCreateResponse> {\n\tGuards.object<IIdentityServiceCreateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityServiceCreateRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.identity),\n\t\trequest.pathParams.identity\n\t);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.serviceCreate(\n\t\trequest.pathParams.identity,\n\t\trequest.body.serviceId,\n\t\trequest.body.type,\n\t\trequest.body.endpoint,\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tbody: result\n\t};\n}\n\n/**\n * Remove an identity service.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityServiceRemove(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityServiceRemoveRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IIdentityServiceRemoveRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityServiceRemoveRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.identity),\n\t\trequest.pathParams.identity\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.serviceId),\n\t\trequest.pathParams.serviceId\n\t);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tawait component.serviceRemove(\n\t\tDocumentHelper.joinId(request.pathParams.identity, request.pathParams.serviceId),\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Create a verifiable credential.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityVerifiableCredentialCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityVerifiableCredentialCreateRequest\n): Promise<IIdentityVerifiableCredentialCreateResponse> {\n\tGuards.object<IIdentityVerifiableCredentialCreateRequest>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request),\n\t\trequest\n\t);\n\tGuards.object<IIdentityVerifiableCredentialCreateRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.identity),\n\t\trequest.pathParams.identity\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.verificationMethodId),\n\t\trequest.pathParams.verificationMethodId\n\t);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.verifiableCredentialCreate(\n\t\tDocumentHelper.joinId(request.pathParams.identity, request.pathParams.verificationMethodId),\n\t\trequest.body.credentialId,\n\t\trequest.body.subject,\n\t\t{\n\t\t\trevocationIndex: request.body.revocationIndex,\n\t\t\texpirationDate: Coerce.date(request.body.expirationDate)\n\t\t},\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tbody: result\n\t};\n}\n\n/**\n * Verify a verifiable credential.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityVerifiableCredentialVerify(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityVerifiableCredentialVerifyRequest\n): Promise<IIdentityVerifiableCredentialVerifyResponse> {\n\tGuards.object<IIdentityVerifiableCredentialVerifyRequest>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request),\n\t\trequest\n\t);\n\tGuards.object<IIdentityVerifiableCredentialVerifyRequest[\"query\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.query),\n\t\trequest.query\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.query.jwt), request.query.jwt);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.verifiableCredentialVerify(request.query.jwt);\n\n\treturn {\n\t\tbody: result\n\t};\n}\n\n/**\n * Revoke a verifiable credential.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityVerifiableCredentialRevoke(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityVerifiableCredentialRevokeRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IIdentityVerifiableCredentialRevokeRequest>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request),\n\t\trequest\n\t);\n\tGuards.object<IIdentityVerifiableCredentialRevokeRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.identity),\n\t\trequest.pathParams.identity\n\t);\n\n\tconst revocationIndex = Coerce.number(request.pathParams.revocationIndex);\n\tGuards.integer(ROUTES_SOURCE, nameof(request.pathParams.revocationIndex), revocationIndex);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tawait component.verifiableCredentialRevoke(\n\t\trequest.pathParams.identity,\n\t\trevocationIndex,\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Unrevoke a verifiable credential.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityVerifiableCredentialUnrevoke(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityVerifiableCredentialUnrevokeRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IIdentityVerifiableCredentialUnrevokeRequest>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request),\n\t\trequest\n\t);\n\tGuards.object<IIdentityVerifiableCredentialUnrevokeRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.identity),\n\t\trequest.pathParams.identity\n\t);\n\n\tconst revocationIndex = Coerce.number(request.pathParams.revocationIndex);\n\tGuards.integer(ROUTES_SOURCE, nameof(request.pathParams.revocationIndex), revocationIndex);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tawait component.verifiableCredentialUnrevoke(\n\t\trequest.pathParams.identity,\n\t\trevocationIndex,\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Create a verifiable presentation.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityVerifiablePresentationCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityVerifiablePresentationCreateRequest\n): Promise<IIdentityVerifiablePresentationCreateResponse> {\n\tGuards.object<IIdentityVerifiablePresentationCreateRequest>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request),\n\t\trequest\n\t);\n\tGuards.object<IIdentityVerifiablePresentationCreateRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.identity),\n\t\trequest.pathParams.identity\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.verificationMethodId),\n\t\trequest.pathParams.verificationMethodId\n\t);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.verifiablePresentationCreate(\n\t\tDocumentHelper.joinId(request.pathParams.identity, request.pathParams.verificationMethodId),\n\t\trequest.body.presentationId,\n\t\trequest.body.contexts,\n\t\trequest.body.types,\n\t\trequest.body.verifiableCredentials,\n\t\trequest.body.expiresInMinutes,\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tbody: result\n\t};\n}\n\n/**\n * Verify a verifiable presentation.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityVerifiablePresentationVerify(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityVerifiablePresentationVerifyRequest\n): Promise<IIdentityVerifiablePresentationVerifyResponse> {\n\tGuards.object<IIdentityVerifiablePresentationVerifyRequest>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request),\n\t\trequest\n\t);\n\tGuards.object<IIdentityVerifiablePresentationVerifyRequest[\"query\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.query),\n\t\trequest.query\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.query.jwt), request.query.jwt);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.verifiablePresentationVerify(request.query.jwt);\n\n\treturn {\n\t\tbody: result\n\t};\n}\n\n/**\n * Create an identity proof.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityProofCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityProofCreateRequest\n): Promise<IIdentityProofCreateResponse> {\n\tGuards.object<IIdentityProofCreateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityProofCreateRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.identity),\n\t\trequest.pathParams.identity\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.verificationMethodId),\n\t\trequest.pathParams.verificationMethodId\n\t);\n\tGuards.object<IIdentityProofCreateRequest[\"body\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.body),\n\t\trequest.body\n\t);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.proofCreate(\n\t\trequest.pathParams.identity,\n\t\trequest.body.proofType,\n\t\trequest.body.document,\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tbody: result\n\t};\n}\n\n/**\n * Verify an identity proof.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityProofVerify(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityProofVerifyRequest\n): Promise<IIdentityProofVerifyResponse> {\n\tGuards.object<IIdentityProofVerifyRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityProofCreateRequest[\"body\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.body),\n\t\trequest.body\n\t);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.proofVerify(request.body.document, request.body.proof);\n\n\treturn {\n\t\tbody: {\n\t\t\tverified: result\n\t\t}\n\t};\n}\n"]}
1
+ {"version":3,"file":"identityRoutes.js","sourceRoot":"","sources":["../../src/identityRoutes.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type {\n\tIHttpRequestContext,\n\tINoContentResponse,\n\tIRestRoute,\n\tITag\n} from \"@twin.org/api-models\";\nimport { ContextIdHelper, ContextIdKeys, ContextIdStore } from \"@twin.org/context\";\nimport { Coerce, ComponentFactory, Guards } from \"@twin.org/core\";\nimport {\n\tDocumentHelper,\n\ttype IIdentityComponent,\n\ttype IIdentityCreateRequest,\n\ttype IIdentityCreateResponse,\n\ttype IIdentityProofCreateRequest,\n\ttype IIdentityProofCreateResponse,\n\ttype IIdentityProofVerifyRequest,\n\ttype IIdentityProofVerifyResponse,\n\ttype IIdentityRemoveRequest,\n\ttype IIdentityServiceCreateRequest,\n\ttype IIdentityServiceCreateResponse,\n\ttype IIdentityServiceRemoveRequest,\n\ttype IIdentityVerifiableCredentialCreateRequest,\n\ttype IIdentityVerifiableCredentialCreateResponse,\n\ttype IIdentityVerifiableCredentialRevokeRequest,\n\ttype IIdentityVerifiableCredentialUnrevokeRequest,\n\ttype IIdentityVerifiableCredentialVerifyRequest,\n\ttype IIdentityVerifiableCredentialVerifyResponse,\n\ttype IIdentityVerifiablePresentationCreateRequest,\n\ttype IIdentityVerifiablePresentationCreateResponse,\n\ttype IIdentityVerifiablePresentationVerifyRequest,\n\ttype IIdentityVerifiablePresentationVerifyResponse,\n\ttype IIdentityVerificationMethodCreateRequest,\n\ttype IIdentityVerificationMethodCreateResponse,\n\ttype IIdentityVerificationMethodRemoveRequest\n} from \"@twin.org/identity-models\";\nimport { nameof } from \"@twin.org/nameof\";\nimport { DidContexts } from \"@twin.org/standards-w3c-did\";\nimport { HttpStatusCode } from \"@twin.org/web\";\n\n/**\n * The source used when communicating about these routes.\n */\nconst ROUTES_SOURCE = \"identityRoutes\";\n\n/**\n * The tag to associate with the routes.\n */\nexport const tagsIdentity: ITag[] = [\n\t{\n\t\tname: \"Identity\",\n\t\tdescription: \"Service to provide all features related to digital identity.\"\n\t}\n];\n\n/**\n * The REST routes for identity.\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 generateRestRoutesIdentity(\n\tbaseRouteName: string,\n\tcomponentName: string\n): IRestRoute[] {\n\tconst identityCreateRoute: IRestRoute<IIdentityCreateRequest, IIdentityCreateResponse> = {\n\t\toperationId: \"identityCreate\",\n\t\tsummary: \"Create an identity\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityCreate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityCreateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityCreateRequestExample\",\n\t\t\t\t\trequest: {}\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<IIdentityCreateResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityCreateResponseExample\",\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\": DidContexts.Namespace,\n\t\t\t\t\t\t\t\tid: \"did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a\",\n\t\t\t\t\t\t\t\tservice: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tid: \"did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a#revocation\",\n\t\t\t\t\t\t\t\t\t\ttype: \"RevocationBitmap2022\",\n\t\t\t\t\t\t\t\t\t\tserviceEndpoint: \"data:application/octet-stream;base64,eJyzMmAAAwABr\"\n\t\t\t\t\t\t\t\t\t}\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]\n\t};\n\n\tconst identityRemoveRoute: IRestRoute<IIdentityRemoveRequest, INoContentResponse> = {\n\t\toperationId: \"identityRemove\",\n\t\tsummary: \"Remove an identity\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"DELETE\",\n\t\tpath: `${baseRouteName}/:identity`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityRemove(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityRemoveRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityRemoveRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\"did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a\"\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<INoContentResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst identityVerificationMethodCreateRoute: IRestRoute<\n\t\tIIdentityVerificationMethodCreateRequest,\n\t\tIIdentityVerificationMethodCreateResponse\n\t> = {\n\t\toperationId: \"identityVerificationMethodCreate\",\n\t\tsummary: \"Create an identity verification method\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/:identity/verification-method`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityVerificationMethodCreate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityVerificationMethodCreateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityVerificationMethodCreateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\"did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tverificationMethodType: \"assertionMethod\",\n\t\t\t\t\t\t\tverificationMethodId: \"my-assertion\"\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<IIdentityVerificationMethodCreateResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityVerificationMethodCreateResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\tid: \"did:iota:tst:0x70ce5abe69e7c56dd69684dd6da65812b9758b03a0081331ca560b34d73d5ff0#my-assertion\",\n\t\t\t\t\t\t\t\tcontroller:\n\t\t\t\t\t\t\t\t\t\"did:iota:tst:0x70ce5abe69e7c56dd69684dd6da65812b9758b03a0081331ca560b34d73d5ff0\",\n\t\t\t\t\t\t\t\ttype: \"JsonWebKey2020\",\n\t\t\t\t\t\t\t\tpublicKeyJwk: {\n\t\t\t\t\t\t\t\t\tkty: \"OKP\",\n\t\t\t\t\t\t\t\t\talg: \"EdDSA\",\n\t\t\t\t\t\t\t\t\tkid: \"f_fj3rGsZFSYvnS_xv5MgyIBlExq-lgDciu0YQ--S3s\",\n\t\t\t\t\t\t\t\t\tcrv: \"Ed25519\",\n\t\t\t\t\t\t\t\t\tx: \"SFm32z7y9C17olpaTeocG25WV2CNTUl5MhM679Z4bok\"\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]\n\t};\n\n\tconst identityVerificationMethodRemoveRoute: IRestRoute<\n\t\tIIdentityVerificationMethodRemoveRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"identityVerificationMethodRemove\",\n\t\tsummary: \"Remove an identity verification method\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"DELETE\",\n\t\tpath: `${baseRouteName}/:identity/verification-method/:verificationMethodId`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityVerificationMethodRemove(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityVerificationMethodRemoveRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityVerificationMethodRemoveRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\"did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a\",\n\t\t\t\t\t\t\tverificationMethodId: \"my-assertion\"\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<INoContentResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityVerificationMethodCreateResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tstatusCode: HttpStatusCode.noContent\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};\n\n\tconst identityServiceCreateRoute: IRestRoute<\n\t\tIIdentityServiceCreateRequest,\n\t\tIIdentityServiceCreateResponse\n\t> = {\n\t\toperationId: \"identityServiceCreate\",\n\t\tsummary: \"Create an identity service\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/:identity/service`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityServiceCreate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityServiceCreateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityServiceCreateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\"did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tserviceId: \"did:example:123#linked-domain\",\n\t\t\t\t\t\t\ttype: \"LinkedDomains\",\n\t\t\t\t\t\t\tendpoint: \"https://bar.example.com\"\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<IIdentityServiceCreateResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityServiceCreateResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\tid: \"did:example:123#linked-domain\",\n\t\t\t\t\t\t\t\ttype: \"LinkedDomains\",\n\t\t\t\t\t\t\t\tserviceEndpoint: \"https://bar.example.com\"\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};\n\n\tconst identityServiceRemoveRoute: IRestRoute<IIdentityServiceRemoveRequest, INoContentResponse> =\n\t\t{\n\t\t\toperationId: \"identityServiceRemove\",\n\t\t\tsummary: \"Remove an identity service\",\n\t\t\ttag: tagsIdentity[0].name,\n\t\t\tmethod: \"DELETE\",\n\t\t\tpath: `${baseRouteName}/:identity/service/:serviceId`,\n\t\t\thandler: async (httpRequestContext, request) =>\n\t\t\t\tidentityServiceRemove(httpRequestContext, componentName, request),\n\t\t\trequestType: {\n\t\t\t\ttype: nameof<IIdentityServiceRemoveRequest>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityServiceRemoveRequestExample\",\n\t\t\t\t\t\trequest: {\n\t\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\t\"did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a\",\n\t\t\t\t\t\t\t\tserviceId: \"did:example:123#linked-domain\"\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<INoContentResponse>(),\n\t\t\t\t\texamples: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: \"identityServiceCreateResponseExample\",\n\t\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\t\tstatusCode: HttpStatusCode.noContent\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\n\tconst identityVerifiableCredentialCreateRoute: IRestRoute<\n\t\tIIdentityVerifiableCredentialCreateRequest,\n\t\tIIdentityVerifiableCredentialCreateResponse\n\t> = {\n\t\toperationId: \"identityVerifiableCredentialCreate\",\n\t\tsummary: \"Create an identity verifiable credential\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/:identity/verifiable-credential/:verificationMethodId`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityVerifiableCredentialCreate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityVerifiableCredentialCreateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityVerifiableCredentialCreateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\"did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a\",\n\t\t\t\t\t\t\tverificationMethodId: \"my-assertion\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tcredentialId: \"https://example.com/credentials/3732\",\n\t\t\t\t\t\t\tsubject: {\n\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\"@type\": \"Person\",\n\t\t\t\t\t\t\t\tid: \"did:entity-storage:0x4757993355b921a8229bd780f30921b6a0216a72e6c3f37a09d13b8426a17def\",\n\t\t\t\t\t\t\t\tname: \"Jane Doe\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\trevocationIndex: 5\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<IIdentityVerifiableCredentialCreateResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityVerifiableCredentialCreateResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\tverifiableCredential: {\n\t\t\t\t\t\t\t\t\t\"@context\": [\"https://www.w3.org/2018/credentials/v1\", \"https://schema.org\"],\n\t\t\t\t\t\t\t\t\tid: \"https://example.com/credentials/3732\",\n\t\t\t\t\t\t\t\t\ttype: [\"VerifiableCredential\", \"Person\"],\n\t\t\t\t\t\t\t\t\tcredentialSubject: {\n\t\t\t\t\t\t\t\t\t\tid: \"did:entity-storage:0x4757993355b921a8229bd780f30921b6a0216a72e6c3f37a09d13b8426a17def\",\n\t\t\t\t\t\t\t\t\t\tname: \"Jane Doe\"\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tissuer:\n\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a\",\n\t\t\t\t\t\t\t\t\tissuanceDate: \"2025-01-24T09:21:51.500Z\",\n\t\t\t\t\t\t\t\t\tcredentialStatus: {\n\t\t\t\t\t\t\t\t\t\tid: \"did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a#revocation\",\n\t\t\t\t\t\t\t\t\t\ttype: \"BitstringStatusList\",\n\t\t\t\t\t\t\t\t\t\trevocationBitmapIndex: \"5\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tjwt: \"eyJraWQiOi...D1Z3AQ\"\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};\n\n\tconst identityVerifiableCredentialVerifyRoute: IRestRoute<\n\t\tIIdentityVerifiableCredentialVerifyRequest,\n\t\tIIdentityVerifiableCredentialVerifyResponse\n\t> = {\n\t\toperationId: \"identityVerifiableCredentialVerify\",\n\t\tsummary: \"Verify an identity verifiable credential\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/verifiable-credential/verify`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityVerifiableCredentialVerify(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityVerifiableCredentialVerifyRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityVerifiableCredentialVerifyRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tjwt: \"eyJraWQiOi...D1Z3AQ\"\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<IIdentityVerifiableCredentialVerifyResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityVerifiableCredentialVerifyResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\trevoked: false,\n\t\t\t\t\t\t\t\tverifiableCredential: {\n\t\t\t\t\t\t\t\t\t\"@context\": [\"https://www.w3.org/2018/credentials/v1\", \"https://schema.org\"],\n\t\t\t\t\t\t\t\t\tid: \"https://example.com/credentials/3732\",\n\t\t\t\t\t\t\t\t\ttype: [\"VerifiableCredential\", \"Person\"],\n\t\t\t\t\t\t\t\t\tcredentialSubject: {\n\t\t\t\t\t\t\t\t\t\tid: \"did:entity-storage:0x4757993355b921a8229bd780f30921b6a0216a72e6c3f37a09d13b8426a17def\",\n\t\t\t\t\t\t\t\t\t\tname: \"Jane Doe\"\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tissuer:\n\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a\",\n\t\t\t\t\t\t\t\t\tissuanceDate: \"2025-01-24T09:21:51.500Z\",\n\t\t\t\t\t\t\t\t\tcredentialStatus: {\n\t\t\t\t\t\t\t\t\t\tid: \"did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a#revocation\",\n\t\t\t\t\t\t\t\t\t\ttype: \"BitstringStatusList\",\n\t\t\t\t\t\t\t\t\t\trevocationBitmapIndex: \"5\"\n\t\t\t\t\t\t\t\t\t}\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],\n\t\tskipAuth: true\n\t};\n\n\tconst identityVerifiableCredentialRevokeRoute: IRestRoute<\n\t\tIIdentityVerifiableCredentialRevokeRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"identityVerifiableCredentialRevoke\",\n\t\tsummary: \"Revoke an identity verifiable credential\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:identity/verifiable-credential/revoke/:revocationIndex`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityVerifiableCredentialRevoke(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityVerifiableCredentialRevokeRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityVerifiableCredentialRevokeRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\"did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a\",\n\t\t\t\t\t\t\trevocationIndex: \"5\"\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<INoContentResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityServiceRevokeResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tstatusCode: HttpStatusCode.noContent\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};\n\n\tconst identityVerifiableCredentialUnrevokeRoute: IRestRoute<\n\t\tIIdentityVerifiableCredentialUnrevokeRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"identityVerifiableCredentialUnrevoke\",\n\t\tsummary: \"Unrevoke an identity verifiable credential\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:identity/verifiable-credential/unrevoke/:revocationIndex`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityVerifiableCredentialUnrevoke(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityVerifiableCredentialUnrevokeRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityVerifiableCredentialUnrevokeRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\"did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a\",\n\t\t\t\t\t\t\trevocationIndex: \"5\"\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<INoContentResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityServiceUnrevokeResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tstatusCode: HttpStatusCode.noContent\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};\n\n\tconst identityVerifiablePresentationCreateRoute: IRestRoute<\n\t\tIIdentityVerifiablePresentationCreateRequest,\n\t\tIIdentityVerifiablePresentationCreateResponse\n\t> = {\n\t\toperationId: \"identityVerifiablePresentationCreate\",\n\t\tsummary: \"Create an identity verifiable presentation\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/:identity/verifiable-presentation/:verificationMethodId`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityVerifiablePresentationCreate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityVerifiablePresentationCreateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityVerifiablePresentationCreateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\"did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a\",\n\t\t\t\t\t\t\tverificationMethodId: \"my-assertion\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tpresentationId: \"https://example.com/presentation/3732\",\n\t\t\t\t\t\t\tverifiableCredentials: [\"eyJraWQiOi...D1Z3AQ\"]\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<IIdentityVerifiablePresentationCreateResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"IIdentityVerifiablePresentationCreateResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\tverifiablePresentation: {\n\t\t\t\t\t\t\t\t\t\"@context\": [\"https://www.w3.org/2018/credentials/v1\", \"https://schema.org\"],\n\t\t\t\t\t\t\t\t\tid: \"presentationId\",\n\t\t\t\t\t\t\t\t\ttype: [\"VerifiablePresentation\", \"Person\"],\n\t\t\t\t\t\t\t\t\tverifiableCredential: [\"eyJraWQiOi...D1Z3AQ\"],\n\t\t\t\t\t\t\t\t\tholder:\n\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0xcea318e06e89f3fb4048160770effd84d0cfa5801fee13dfa6f9413a00429cec\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tjwt: \"eyJraWQiOi...D1Z3AQ\"\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};\n\n\tconst identityVerifiablePresentationVerifyRoute: IRestRoute<\n\t\tIIdentityVerifiablePresentationVerifyRequest,\n\t\tIIdentityVerifiablePresentationVerifyResponse\n\t> = {\n\t\toperationId: \"identityVerifiablePresentationVerify\",\n\t\tsummary: \"Verify an identity verifiable presentation\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/verifiable-presentation/verify`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityVerifiablePresentationVerify(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityVerifiablePresentationVerifyRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityVerifiablePresentationVerifyRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tjwt: \"eyJraWQiOi...D1Z3AQ\"\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<IIdentityVerifiablePresentationVerifyResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityVerifiablePresentationVerifyResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\trevoked: false,\n\t\t\t\t\t\t\t\tverifiablePresentation: {\n\t\t\t\t\t\t\t\t\t\"@context\": [\"https://www.w3.org/2018/credentials/v1\", \"https://schema.org\"],\n\t\t\t\t\t\t\t\t\tid: \"presentationId\",\n\t\t\t\t\t\t\t\t\ttype: [\"VerifiablePresentation\", \"Person\"],\n\t\t\t\t\t\t\t\t\tverifiableCredential: [\"eyJraWQiOi...D1Z3AQ\"],\n\t\t\t\t\t\t\t\t\tholder:\n\t\t\t\t\t\t\t\t\t\t\"did:entity-storage:0xcea318e06e89f3fb4048160770effd84d0cfa5801fee13dfa6f9413a00429cec\"\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],\n\t\tskipAuth: true\n\t};\n\n\tconst identityProofCreateRoute: IRestRoute<\n\t\tIIdentityProofCreateRequest,\n\t\tIIdentityProofCreateResponse\n\t> = {\n\t\toperationId: \"identityProofCreate\",\n\t\tsummary: \"Create an identity proof\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/:identity/proof/:verificationMethodId`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityProofCreate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityProofCreateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityProofCreateRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tpathParams: {\n\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\"did:entity-storage:0xda2df3ebc91ee0d5229d6532ffd0f4426952a94f34988b0ca906694dfd366a6a\",\n\t\t\t\t\t\t\tverificationMethodId: \"my-verification-id\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tproofType: \"DataIntegrityProof\",\n\t\t\t\t\t\t\tdocument: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\"https://www.w3.org/2018/credentials/v1\",\n\t\t\t\t\t\t\t\t\t\"https://www.w3.org/2018/credentials/examples/v1\"\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tid: \"urn:uuid:58172aac-d8ba-11ed-83dd-0b3aef56cc33\",\n\t\t\t\t\t\t\t\ttype: [\"VerifiableCredential\", \"AlumniCredential\"],\n\t\t\t\t\t\t\t\tname: \"Alumni Credential\",\n\t\t\t\t\t\t\t\tdescription: \"A minimum viable example of an Alumni Credential.\",\n\t\t\t\t\t\t\t\tissuer: \"https://vc.example/issuers/5678\",\n\t\t\t\t\t\t\t\tvalidFrom: \"2023-01-01T00:00:00Z\",\n\t\t\t\t\t\t\t\tcredentialSubject: {\n\t\t\t\t\t\t\t\t\tid: \"did:example:abcdefgh\",\n\t\t\t\t\t\t\t\t\talumniOf: \"The School of Examples\"\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},\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<IIdentityProofCreateResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityProofCreateResponseExample\",\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\": [\n\t\t\t\t\t\t\t\t\t\"https://www.w3.org/ns/credentials/v2\",\n\t\t\t\t\t\t\t\t\t\"https://www.w3.org/ns/credentials/examples/v2\"\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\ttype: \"DataIntegrityProof\",\n\t\t\t\t\t\t\t\tcryptosuite: \"eddsa-jcs-2022\",\n\t\t\t\t\t\t\t\tcreated: \"2024-01-31T16:00:45.490Z\",\n\t\t\t\t\t\t\t\tverificationMethod:\n\t\t\t\t\t\t\t\t\t\"did:entity-storage:0x0101010101010101010101010101010101010101010101010101010101010101#my-verification-id\",\n\t\t\t\t\t\t\t\tproofPurpose: \"assertionMethod\",\n\t\t\t\t\t\t\t\tproofValue:\n\t\t\t\t\t\t\t\t\t\"z2zGoejwpX6HH2T11BZaniEVZrqRKDpwbQSvPcL7eL9M7hV5P9zQQZxs85n6qyDzkkXCL8aFUWfwQD5bxVGqDK1fa\"\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};\n\n\tconst identityProofVerifyRoute: IRestRoute<\n\t\tIIdentityProofVerifyRequest,\n\t\tIIdentityProofVerifyResponse\n\t> = {\n\t\toperationId: \"identityProofVerify\",\n\t\tsummary: \"Verify an identity proof\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/proof/verify`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityProofVerify(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityProofVerifyRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityProofVerifyRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tdocument: {\n\t\t\t\t\t\t\t\t\"@context\": [\n\t\t\t\t\t\t\t\t\t\"https://www.w3.org/2018/credentials/v1\",\n\t\t\t\t\t\t\t\t\t\"https://www.w3.org/2018/credentials/examples/v1\"\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tid: \"urn:uuid:58172aac-d8ba-11ed-83dd-0b3aef56cc33\",\n\t\t\t\t\t\t\t\ttype: [\"VerifiableCredential\", \"AlumniCredential\"],\n\t\t\t\t\t\t\t\tname: \"Alumni Credential\",\n\t\t\t\t\t\t\t\tdescription: \"A minimum viable example of an Alumni Credential.\",\n\t\t\t\t\t\t\t\tissuer: \"https://vc.example/issuers/5678\",\n\t\t\t\t\t\t\t\tvalidFrom: \"2023-01-01T00:00:00Z\",\n\t\t\t\t\t\t\t\tcredentialSubject: {\n\t\t\t\t\t\t\t\t\tid: \"did:example:abcdefgh\",\n\t\t\t\t\t\t\t\t\talumniOf: \"The School of Examples\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tproof: {\n\t\t\t\t\t\t\t\t\"@context\": \"https://www.w3.org/ns/credentials/v2\",\n\t\t\t\t\t\t\t\ttype: \"DataIntegrityProof\",\n\t\t\t\t\t\t\t\tcryptosuite: \"eddsa-jcs-2022\",\n\t\t\t\t\t\t\t\tcreated: \"2025-01-24T11:32:13.106Z\",\n\t\t\t\t\t\t\t\tverificationMethod:\n\t\t\t\t\t\t\t\t\t\"did:entity-storage:0xda2df3ebc91ee0d5229d6532ffd0f4426952a94f34988b0ca906694dfd366a6a#my-verification-id\",\n\t\t\t\t\t\t\t\tproofPurpose: \"assertionMethod\",\n\t\t\t\t\t\t\t\tproofValue:\n\t\t\t\t\t\t\t\t\t\"2fVLgANruCBoRPBCJavi54mZtkQdyMz6T2N4XVyB96asawiriKrVWoktcSQ7dMGrBTiemBBDpcLE2HfiTBCGuBmq\"\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<IIdentityProofVerifyResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityProofVerifyResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\tverified: true\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};\n\n\treturn [\n\t\tidentityCreateRoute,\n\t\tidentityRemoveRoute,\n\t\tidentityVerificationMethodCreateRoute,\n\t\tidentityVerificationMethodRemoveRoute,\n\t\tidentityServiceCreateRoute,\n\t\tidentityServiceRemoveRoute,\n\t\tidentityVerifiableCredentialCreateRoute,\n\t\tidentityVerifiableCredentialVerifyRoute,\n\t\tidentityVerifiableCredentialRevokeRoute,\n\t\tidentityVerifiableCredentialUnrevokeRoute,\n\t\tidentityVerifiablePresentationCreateRoute,\n\t\tidentityVerifiablePresentationVerifyRoute,\n\t\tidentityProofCreateRoute,\n\t\tidentityProofVerifyRoute\n\t];\n}\n\n/**\n * Create an identity.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityCreateRequest\n): Promise<IIdentityCreateResponse> {\n\tGuards.object<IIdentityCreateRequest>(ROUTES_SOURCE, nameof(request), request);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.identityCreate(\n\t\trequest.body?.namespace,\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tbody: result\n\t};\n}\n\n/**\n * Remove an identity.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityRemove(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityRemoveRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IIdentityRemoveRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityRemoveRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tawait component.identityRemove(\n\t\trequest.pathParams.identity,\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Create an identity verification method.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityVerificationMethodCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityVerificationMethodCreateRequest\n): Promise<IIdentityVerificationMethodCreateResponse> {\n\tGuards.object<IIdentityVerificationMethodCreateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityVerificationMethodCreateRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.identity),\n\t\trequest.pathParams.identity\n\t);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.verificationMethodCreate(\n\t\trequest.pathParams.identity,\n\t\trequest.body.verificationMethodType,\n\t\trequest.body.verificationMethodId,\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tbody: result\n\t};\n}\n\n/**\n * Remove an identity verification method.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityVerificationMethodRemove(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityVerificationMethodRemoveRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IIdentityVerificationMethodRemoveRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityVerificationMethodRemoveRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.identity),\n\t\trequest.pathParams.identity\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.verificationMethodId),\n\t\trequest.pathParams.verificationMethodId\n\t);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tawait component.verificationMethodRemove(\n\t\tDocumentHelper.joinId(request.pathParams.identity, request.pathParams.verificationMethodId),\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Create an identity service.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityServiceCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityServiceCreateRequest\n): Promise<IIdentityServiceCreateResponse> {\n\tGuards.object<IIdentityServiceCreateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityServiceCreateRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.identity),\n\t\trequest.pathParams.identity\n\t);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.serviceCreate(\n\t\trequest.pathParams.identity,\n\t\trequest.body.serviceId,\n\t\trequest.body.type,\n\t\trequest.body.endpoint,\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tbody: result\n\t};\n}\n\n/**\n * Remove an identity service.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityServiceRemove(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityServiceRemoveRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IIdentityServiceRemoveRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityServiceRemoveRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.identity),\n\t\trequest.pathParams.identity\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.serviceId),\n\t\trequest.pathParams.serviceId\n\t);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tawait component.serviceRemove(\n\t\tDocumentHelper.joinId(request.pathParams.identity, request.pathParams.serviceId),\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Create a verifiable credential.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityVerifiableCredentialCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityVerifiableCredentialCreateRequest\n): Promise<IIdentityVerifiableCredentialCreateResponse> {\n\tGuards.object<IIdentityVerifiableCredentialCreateRequest>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request),\n\t\trequest\n\t);\n\tGuards.object<IIdentityVerifiableCredentialCreateRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.identity),\n\t\trequest.pathParams.identity\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.verificationMethodId),\n\t\trequest.pathParams.verificationMethodId\n\t);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.verifiableCredentialCreate(\n\t\tDocumentHelper.joinId(request.pathParams.identity, request.pathParams.verificationMethodId),\n\t\trequest.body.credentialId,\n\t\trequest.body.subject,\n\t\t{\n\t\t\trevocationIndex: request.body.revocationIndex,\n\t\t\texpirationDate: Coerce.date(request.body.expirationDate)\n\t\t},\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tbody: result\n\t};\n}\n\n/**\n * Verify a verifiable credential.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityVerifiableCredentialVerify(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityVerifiableCredentialVerifyRequest\n): Promise<IIdentityVerifiableCredentialVerifyResponse> {\n\tGuards.object<IIdentityVerifiableCredentialVerifyRequest>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request),\n\t\trequest\n\t);\n\tGuards.object<IIdentityVerifiableCredentialVerifyRequest[\"query\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.query),\n\t\trequest.query\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.query.jwt), request.query.jwt);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.verifiableCredentialVerify(request.query.jwt);\n\n\treturn {\n\t\tbody: result\n\t};\n}\n\n/**\n * Revoke a verifiable credential.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityVerifiableCredentialRevoke(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityVerifiableCredentialRevokeRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IIdentityVerifiableCredentialRevokeRequest>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request),\n\t\trequest\n\t);\n\tGuards.object<IIdentityVerifiableCredentialRevokeRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.identity),\n\t\trequest.pathParams.identity\n\t);\n\n\tconst revocationIndex = Coerce.number(request.pathParams.revocationIndex);\n\tGuards.integer(ROUTES_SOURCE, nameof(request.pathParams.revocationIndex), revocationIndex);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tawait component.verifiableCredentialRevoke(\n\t\trequest.pathParams.identity,\n\t\trevocationIndex,\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Unrevoke a verifiable credential.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityVerifiableCredentialUnrevoke(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityVerifiableCredentialUnrevokeRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IIdentityVerifiableCredentialUnrevokeRequest>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request),\n\t\trequest\n\t);\n\tGuards.object<IIdentityVerifiableCredentialUnrevokeRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.identity),\n\t\trequest.pathParams.identity\n\t);\n\n\tconst revocationIndex = Coerce.number(request.pathParams.revocationIndex);\n\tGuards.integer(ROUTES_SOURCE, nameof(request.pathParams.revocationIndex), revocationIndex);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tawait component.verifiableCredentialUnrevoke(\n\t\trequest.pathParams.identity,\n\t\trevocationIndex,\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Create a verifiable presentation.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityVerifiablePresentationCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityVerifiablePresentationCreateRequest\n): Promise<IIdentityVerifiablePresentationCreateResponse> {\n\tGuards.object<IIdentityVerifiablePresentationCreateRequest>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request),\n\t\trequest\n\t);\n\tGuards.object<IIdentityVerifiablePresentationCreateRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.identity),\n\t\trequest.pathParams.identity\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.verificationMethodId),\n\t\trequest.pathParams.verificationMethodId\n\t);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.verifiablePresentationCreate(\n\t\tDocumentHelper.joinId(request.pathParams.identity, request.pathParams.verificationMethodId),\n\t\trequest.body.presentationId,\n\t\trequest.body.contexts,\n\t\trequest.body.types,\n\t\trequest.body.verifiableCredentials,\n\t\trequest.body.expiresInMinutes,\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tbody: result\n\t};\n}\n\n/**\n * Verify a verifiable presentation.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityVerifiablePresentationVerify(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityVerifiablePresentationVerifyRequest\n): Promise<IIdentityVerifiablePresentationVerifyResponse> {\n\tGuards.object<IIdentityVerifiablePresentationVerifyRequest>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request),\n\t\trequest\n\t);\n\tGuards.object<IIdentityVerifiablePresentationVerifyRequest[\"query\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.query),\n\t\trequest.query\n\t);\n\tGuards.stringValue(ROUTES_SOURCE, nameof(request.query.jwt), request.query.jwt);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.verifiablePresentationVerify(request.query.jwt);\n\n\treturn {\n\t\tbody: result\n\t};\n}\n\n/**\n * Create an identity proof.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityProofCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityProofCreateRequest\n): Promise<IIdentityProofCreateResponse> {\n\tGuards.object<IIdentityProofCreateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityProofCreateRequest[\"pathParams\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams),\n\t\trequest.pathParams\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.identity),\n\t\trequest.pathParams.identity\n\t);\n\tGuards.stringValue(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.pathParams.verificationMethodId),\n\t\trequest.pathParams.verificationMethodId\n\t);\n\tGuards.object<IIdentityProofCreateRequest[\"body\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.body),\n\t\trequest.body\n\t);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.Organization);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.proofCreate(\n\t\trequest.pathParams.identity,\n\t\trequest.body.proofType,\n\t\trequest.body.document,\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tbody: result\n\t};\n}\n\n/**\n * Verify an identity proof.\n * @param httpRequestContext The request context for the API.\n * @param componentName The name of the component to use in the routes stored in the ComponentFactory.\n * @param request The request.\n * @returns The response object with additional http response properties.\n */\nexport async function identityProofVerify(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityProofVerifyRequest\n): Promise<IIdentityProofVerifyResponse> {\n\tGuards.object<IIdentityProofVerifyRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityProofCreateRequest[\"body\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.body),\n\t\trequest.body\n\t);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.proofVerify(request.body.document, request.body.proof);\n\n\treturn {\n\t\tbody: {\n\t\t\tverified: result\n\t\t}\n\t};\n}\n"]}
package/docs/changelog.md CHANGED
@@ -1,5 +1,168 @@
1
1
  # @twin.org/identity-service - Changelog
2
2
 
3
+ ## [0.0.3-next.10](https://github.com/twinfoundation/identity/compare/identity-service-v0.0.3-next.9...identity-service-v0.0.3-next.10) (2026-01-15)
4
+
5
+
6
+ ### Miscellaneous Chores
7
+
8
+ * **identity-service:** Synchronize repo versions
9
+
10
+
11
+ ### Dependencies
12
+
13
+ * The following workspace dependencies were updated
14
+ * dependencies
15
+ * @twin.org/identity-models bumped from 0.0.3-next.9 to 0.0.3-next.10
16
+ * devDependencies
17
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.9 to 0.0.3-next.10
18
+
19
+ ## [0.0.3-next.9](https://github.com/twinfoundation/identity/compare/identity-service-v0.0.3-next.8...identity-service-v0.0.3-next.9) (2026-01-14)
20
+
21
+
22
+ ### Miscellaneous Chores
23
+
24
+ * **identity-service:** Synchronize repo versions
25
+
26
+
27
+ ### Dependencies
28
+
29
+ * The following workspace dependencies were updated
30
+ * dependencies
31
+ * @twin.org/identity-models bumped from 0.0.3-next.8 to 0.0.3-next.9
32
+ * devDependencies
33
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.8 to 0.0.3-next.9
34
+
35
+ ## [0.0.3-next.8](https://github.com/twinfoundation/identity/compare/identity-service-v0.0.3-next.7...identity-service-v0.0.3-next.8) (2026-01-14)
36
+
37
+
38
+ ### Features
39
+
40
+ * update namespaces and contexts ([#90](https://github.com/twinfoundation/identity/issues/90)) ([0c34d64](https://github.com/twinfoundation/identity/commit/0c34d64add8cca77856fa2d0357e774d72fbbfc1))
41
+
42
+
43
+ ### Dependencies
44
+
45
+ * The following workspace dependencies were updated
46
+ * dependencies
47
+ * @twin.org/identity-models bumped from 0.0.3-next.7 to 0.0.3-next.8
48
+ * devDependencies
49
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.7 to 0.0.3-next.8
50
+
51
+ ## [0.0.3-next.7](https://github.com/twinfoundation/identity/compare/identity-service-v0.0.3-next.6...identity-service-v0.0.3-next.7) (2026-01-13)
52
+
53
+
54
+ ### Miscellaneous Chores
55
+
56
+ * **identity-service:** Synchronize repo versions
57
+
58
+
59
+ ### Dependencies
60
+
61
+ * The following workspace dependencies were updated
62
+ * dependencies
63
+ * @twin.org/identity-models bumped from 0.0.3-next.6 to 0.0.3-next.7
64
+ * devDependencies
65
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.6 to 0.0.3-next.7
66
+
67
+ ## [0.0.3-next.6](https://github.com/twinfoundation/identity/compare/identity-service-v0.0.3-next.5...identity-service-v0.0.3-next.6) (2025-11-26)
68
+
69
+
70
+ ### Miscellaneous Chores
71
+
72
+ * **identity-service:** Synchronize repo versions
73
+
74
+
75
+ ### Dependencies
76
+
77
+ * The following workspace dependencies were updated
78
+ * dependencies
79
+ * @twin.org/identity-models bumped from 0.0.3-next.5 to 0.0.3-next.6
80
+ * devDependencies
81
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.5 to 0.0.3-next.6
82
+
83
+ ## [0.0.3-next.5](https://github.com/twinfoundation/identity/compare/identity-service-v0.0.3-next.4...identity-service-v0.0.3-next.5) (2025-11-20)
84
+
85
+
86
+ ### Miscellaneous Chores
87
+
88
+ * **identity-service:** Synchronize repo versions
89
+
90
+
91
+ ### Dependencies
92
+
93
+ * The following workspace dependencies were updated
94
+ * dependencies
95
+ * @twin.org/identity-models bumped from 0.0.3-next.4 to 0.0.3-next.5
96
+ * devDependencies
97
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.4 to 0.0.3-next.5
98
+
99
+ ## [0.0.3-next.4](https://github.com/twinfoundation/identity/compare/identity-service-v0.0.3-next.3...identity-service-v0.0.3-next.4) (2025-11-17)
100
+
101
+
102
+ ### Features
103
+
104
+ * add context id features ([#62](https://github.com/twinfoundation/identity/issues/62)) ([e02ecca](https://github.com/twinfoundation/identity/commit/e02ecca9c45a849104bfbf7bc18a1f44e6eea8a1))
105
+ * add expiration date option to vc creation ([73e05e1](https://github.com/twinfoundation/identity/commit/73e05e1ae61112c7e056889969751f4ff82d9f29))
106
+ * add identity remove ([eebc13f](https://github.com/twinfoundation/identity/commit/eebc13f4c2cd994d2d9cce4da2128fb346c80ba7))
107
+ * add validate-locales ([04d74b4](https://github.com/twinfoundation/identity/commit/04d74b4d1ebe42672e8ca75a7bdb8e3556afd0be))
108
+ * eslint migration to flat config ([fd6246d](https://github.com/twinfoundation/identity/commit/fd6246d566280b6d5d10a108eb1e92c4b510f2f2))
109
+ * identity key separator use slash ([1319d0d](https://github.com/twinfoundation/identity/commit/1319d0d07164a36b3ec279e6421b8835ffefc3d3))
110
+ * remove unused namespace ([1987f72](https://github.com/twinfoundation/identity/commit/1987f72089be5ece10aa96b1fb9c386221c95c75))
111
+ * update framework core ([c824497](https://github.com/twinfoundation/identity/commit/c82449709af0215eb7af496cf687c93fb30b5ae0))
112
+ * update twindev schemas ([f5b2735](https://github.com/twinfoundation/identity/commit/f5b273561b52fa75e654e074927c164a465aa510))
113
+ * use new generateKid method ([f0fe779](https://github.com/twinfoundation/identity/commit/f0fe779323b675575bb9f80aa74f1957dc57a094))
114
+ * use shared store mechanism ([#27](https://github.com/twinfoundation/identity/issues/27)) ([ce41f3f](https://github.com/twinfoundation/identity/commit/ce41f3fc3da1b206ec06da7ea5b2c968f788804d))
115
+
116
+
117
+ ### Bug Fixes
118
+
119
+ * Import path and bump version ([#21](https://github.com/twinfoundation/identity/issues/21)) ([ccea845](https://github.com/twinfoundation/identity/commit/ccea845bf32562267280bc1b3dde1c9af1a00360))
120
+ * Install sdk-wasm ([#20](https://github.com/twinfoundation/identity/issues/20)) ([75ec14e](https://github.com/twinfoundation/identity/commit/75ec14e072f8c219863a1c028a3b0783802086e9))
121
+ * missing path params ([02acbde](https://github.com/twinfoundation/identity/commit/02acbde3033bf5d5435dca0bd8187cabad8f3028))
122
+ * query params force coercion ([d9347d2](https://github.com/twinfoundation/identity/commit/d9347d29d4a9cc58759f30f5d8526de864ea7522))
123
+ * stricter pathParam types ([a174cdf](https://github.com/twinfoundation/identity/commit/a174cdf0ca4272bee35fcf20ab7e8e4e17b8b6f4))
124
+
125
+
126
+ ### Dependencies
127
+
128
+ * The following workspace dependencies were updated
129
+ * dependencies
130
+ * @twin.org/identity-models bumped from 0.0.3-next.3 to 0.0.3-next.4
131
+ * devDependencies
132
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.3 to 0.0.3-next.4
133
+
134
+ ## [0.0.3-next.3](https://github.com/twinfoundation/identity/compare/identity-service-v0.0.3-next.2...identity-service-v0.0.3-next.3) (2025-11-17)
135
+
136
+
137
+ ### Miscellaneous Chores
138
+
139
+ * **identity-service:** Synchronize repo versions
140
+
141
+
142
+ ### Dependencies
143
+
144
+ * The following workspace dependencies were updated
145
+ * dependencies
146
+ * @twin.org/identity-models bumped from 0.0.3-next.2 to 0.0.3-next.3
147
+ * devDependencies
148
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.2 to 0.0.3-next.3
149
+
150
+ ## [0.0.3-next.2](https://github.com/twinfoundation/identity/compare/identity-service-v0.0.3-next.1...identity-service-v0.0.3-next.2) (2025-11-14)
151
+
152
+
153
+ ### Miscellaneous Chores
154
+
155
+ * **identity-service:** Synchronize repo versions
156
+
157
+
158
+ ### Dependencies
159
+
160
+ * The following workspace dependencies were updated
161
+ * dependencies
162
+ * @twin.org/identity-models bumped from 0.0.3-next.1 to 0.0.3-next.2
163
+ * devDependencies
164
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.1 to 0.0.3-next.2
165
+
3
166
  ## [0.0.3-next.1](https://github.com/twinfoundation/identity/compare/identity-service-v0.0.3-next.0...identity-service-v0.0.3-next.1) (2025-11-11)
4
167
 
5
168