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

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,204 @@
1
1
  # @twin.org/identity-service - Changelog
2
2
 
3
+ ## [0.0.3-next.11](https://github.com/twinfoundation/identity/compare/identity-service-v0.0.3-next.10...identity-service-v0.0.3-next.11) (2026-01-15)
4
+
5
+
6
+ ### Features
7
+
8
+ * add context id features ([#62](https://github.com/twinfoundation/identity/issues/62)) ([e02ecca](https://github.com/twinfoundation/identity/commit/e02ecca9c45a849104bfbf7bc18a1f44e6eea8a1))
9
+ * add expiration date option to vc creation ([73e05e1](https://github.com/twinfoundation/identity/commit/73e05e1ae61112c7e056889969751f4ff82d9f29))
10
+ * add identity remove ([eebc13f](https://github.com/twinfoundation/identity/commit/eebc13f4c2cd994d2d9cce4da2128fb346c80ba7))
11
+ * add validate-locales ([04d74b4](https://github.com/twinfoundation/identity/commit/04d74b4d1ebe42672e8ca75a7bdb8e3556afd0be))
12
+ * eslint migration to flat config ([fd6246d](https://github.com/twinfoundation/identity/commit/fd6246d566280b6d5d10a108eb1e92c4b510f2f2))
13
+ * identity key separator use slash ([1319d0d](https://github.com/twinfoundation/identity/commit/1319d0d07164a36b3ec279e6421b8835ffefc3d3))
14
+ * remove unused namespace ([1987f72](https://github.com/twinfoundation/identity/commit/1987f72089be5ece10aa96b1fb9c386221c95c75))
15
+ * update framework core ([c824497](https://github.com/twinfoundation/identity/commit/c82449709af0215eb7af496cf687c93fb30b5ae0))
16
+ * update namespaces and contexts ([#90](https://github.com/twinfoundation/identity/issues/90)) ([0c34d64](https://github.com/twinfoundation/identity/commit/0c34d64add8cca77856fa2d0357e774d72fbbfc1))
17
+ * update twindev schemas ([f5b2735](https://github.com/twinfoundation/identity/commit/f5b273561b52fa75e654e074927c164a465aa510))
18
+ * use new generateKid method ([f0fe779](https://github.com/twinfoundation/identity/commit/f0fe779323b675575bb9f80aa74f1957dc57a094))
19
+ * use shared store mechanism ([#27](https://github.com/twinfoundation/identity/issues/27)) ([ce41f3f](https://github.com/twinfoundation/identity/commit/ce41f3fc3da1b206ec06da7ea5b2c968f788804d))
20
+
21
+
22
+ ### Bug Fixes
23
+
24
+ * Import path and bump version ([#21](https://github.com/twinfoundation/identity/issues/21)) ([ccea845](https://github.com/twinfoundation/identity/commit/ccea845bf32562267280bc1b3dde1c9af1a00360))
25
+ * Install sdk-wasm ([#20](https://github.com/twinfoundation/identity/issues/20)) ([75ec14e](https://github.com/twinfoundation/identity/commit/75ec14e072f8c219863a1c028a3b0783802086e9))
26
+ * missing path params ([02acbde](https://github.com/twinfoundation/identity/commit/02acbde3033bf5d5435dca0bd8187cabad8f3028))
27
+ * query params force coercion ([d9347d2](https://github.com/twinfoundation/identity/commit/d9347d29d4a9cc58759f30f5d8526de864ea7522))
28
+ * stricter pathParam types ([a174cdf](https://github.com/twinfoundation/identity/commit/a174cdf0ca4272bee35fcf20ab7e8e4e17b8b6f4))
29
+
30
+
31
+ ### Dependencies
32
+
33
+ * The following workspace dependencies were updated
34
+ * dependencies
35
+ * @twin.org/identity-models bumped from 0.0.3-next.10 to 0.0.3-next.11
36
+ * devDependencies
37
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.10 to 0.0.3-next.11
38
+
39
+ ## [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)
40
+
41
+
42
+ ### Miscellaneous Chores
43
+
44
+ * **identity-service:** Synchronize repo versions
45
+
46
+
47
+ ### Dependencies
48
+
49
+ * The following workspace dependencies were updated
50
+ * dependencies
51
+ * @twin.org/identity-models bumped from 0.0.3-next.9 to 0.0.3-next.10
52
+ * devDependencies
53
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.9 to 0.0.3-next.10
54
+
55
+ ## [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)
56
+
57
+
58
+ ### Miscellaneous Chores
59
+
60
+ * **identity-service:** Synchronize repo versions
61
+
62
+
63
+ ### Dependencies
64
+
65
+ * The following workspace dependencies were updated
66
+ * dependencies
67
+ * @twin.org/identity-models bumped from 0.0.3-next.8 to 0.0.3-next.9
68
+ * devDependencies
69
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.8 to 0.0.3-next.9
70
+
71
+ ## [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)
72
+
73
+
74
+ ### Features
75
+
76
+ * update namespaces and contexts ([#90](https://github.com/twinfoundation/identity/issues/90)) ([0c34d64](https://github.com/twinfoundation/identity/commit/0c34d64add8cca77856fa2d0357e774d72fbbfc1))
77
+
78
+
79
+ ### Dependencies
80
+
81
+ * The following workspace dependencies were updated
82
+ * dependencies
83
+ * @twin.org/identity-models bumped from 0.0.3-next.7 to 0.0.3-next.8
84
+ * devDependencies
85
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.7 to 0.0.3-next.8
86
+
87
+ ## [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)
88
+
89
+
90
+ ### Miscellaneous Chores
91
+
92
+ * **identity-service:** Synchronize repo versions
93
+
94
+
95
+ ### Dependencies
96
+
97
+ * The following workspace dependencies were updated
98
+ * dependencies
99
+ * @twin.org/identity-models bumped from 0.0.3-next.6 to 0.0.3-next.7
100
+ * devDependencies
101
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.6 to 0.0.3-next.7
102
+
103
+ ## [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)
104
+
105
+
106
+ ### Miscellaneous Chores
107
+
108
+ * **identity-service:** Synchronize repo versions
109
+
110
+
111
+ ### Dependencies
112
+
113
+ * The following workspace dependencies were updated
114
+ * dependencies
115
+ * @twin.org/identity-models bumped from 0.0.3-next.5 to 0.0.3-next.6
116
+ * devDependencies
117
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.5 to 0.0.3-next.6
118
+
119
+ ## [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)
120
+
121
+
122
+ ### Miscellaneous Chores
123
+
124
+ * **identity-service:** Synchronize repo versions
125
+
126
+
127
+ ### Dependencies
128
+
129
+ * The following workspace dependencies were updated
130
+ * dependencies
131
+ * @twin.org/identity-models bumped from 0.0.3-next.4 to 0.0.3-next.5
132
+ * devDependencies
133
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.4 to 0.0.3-next.5
134
+
135
+ ## [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)
136
+
137
+
138
+ ### Features
139
+
140
+ * add context id features ([#62](https://github.com/twinfoundation/identity/issues/62)) ([e02ecca](https://github.com/twinfoundation/identity/commit/e02ecca9c45a849104bfbf7bc18a1f44e6eea8a1))
141
+ * add expiration date option to vc creation ([73e05e1](https://github.com/twinfoundation/identity/commit/73e05e1ae61112c7e056889969751f4ff82d9f29))
142
+ * add identity remove ([eebc13f](https://github.com/twinfoundation/identity/commit/eebc13f4c2cd994d2d9cce4da2128fb346c80ba7))
143
+ * add validate-locales ([04d74b4](https://github.com/twinfoundation/identity/commit/04d74b4d1ebe42672e8ca75a7bdb8e3556afd0be))
144
+ * eslint migration to flat config ([fd6246d](https://github.com/twinfoundation/identity/commit/fd6246d566280b6d5d10a108eb1e92c4b510f2f2))
145
+ * identity key separator use slash ([1319d0d](https://github.com/twinfoundation/identity/commit/1319d0d07164a36b3ec279e6421b8835ffefc3d3))
146
+ * remove unused namespace ([1987f72](https://github.com/twinfoundation/identity/commit/1987f72089be5ece10aa96b1fb9c386221c95c75))
147
+ * update framework core ([c824497](https://github.com/twinfoundation/identity/commit/c82449709af0215eb7af496cf687c93fb30b5ae0))
148
+ * update twindev schemas ([f5b2735](https://github.com/twinfoundation/identity/commit/f5b273561b52fa75e654e074927c164a465aa510))
149
+ * use new generateKid method ([f0fe779](https://github.com/twinfoundation/identity/commit/f0fe779323b675575bb9f80aa74f1957dc57a094))
150
+ * use shared store mechanism ([#27](https://github.com/twinfoundation/identity/issues/27)) ([ce41f3f](https://github.com/twinfoundation/identity/commit/ce41f3fc3da1b206ec06da7ea5b2c968f788804d))
151
+
152
+
153
+ ### Bug Fixes
154
+
155
+ * Import path and bump version ([#21](https://github.com/twinfoundation/identity/issues/21)) ([ccea845](https://github.com/twinfoundation/identity/commit/ccea845bf32562267280bc1b3dde1c9af1a00360))
156
+ * Install sdk-wasm ([#20](https://github.com/twinfoundation/identity/issues/20)) ([75ec14e](https://github.com/twinfoundation/identity/commit/75ec14e072f8c219863a1c028a3b0783802086e9))
157
+ * missing path params ([02acbde](https://github.com/twinfoundation/identity/commit/02acbde3033bf5d5435dca0bd8187cabad8f3028))
158
+ * query params force coercion ([d9347d2](https://github.com/twinfoundation/identity/commit/d9347d29d4a9cc58759f30f5d8526de864ea7522))
159
+ * stricter pathParam types ([a174cdf](https://github.com/twinfoundation/identity/commit/a174cdf0ca4272bee35fcf20ab7e8e4e17b8b6f4))
160
+
161
+
162
+ ### Dependencies
163
+
164
+ * The following workspace dependencies were updated
165
+ * dependencies
166
+ * @twin.org/identity-models bumped from 0.0.3-next.3 to 0.0.3-next.4
167
+ * devDependencies
168
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.3 to 0.0.3-next.4
169
+
170
+ ## [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)
171
+
172
+
173
+ ### Miscellaneous Chores
174
+
175
+ * **identity-service:** Synchronize repo versions
176
+
177
+
178
+ ### Dependencies
179
+
180
+ * The following workspace dependencies were updated
181
+ * dependencies
182
+ * @twin.org/identity-models bumped from 0.0.3-next.2 to 0.0.3-next.3
183
+ * devDependencies
184
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.2 to 0.0.3-next.3
185
+
186
+ ## [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)
187
+
188
+
189
+ ### Miscellaneous Chores
190
+
191
+ * **identity-service:** Synchronize repo versions
192
+
193
+
194
+ ### Dependencies
195
+
196
+ * The following workspace dependencies were updated
197
+ * dependencies
198
+ * @twin.org/identity-models bumped from 0.0.3-next.1 to 0.0.3-next.2
199
+ * devDependencies
200
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.1 to 0.0.3-next.2
201
+
3
202
  ## [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
203
 
5
204