@twin.org/identity-service 0.0.3-next.32 → 0.0.3-next.35

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.
@@ -156,8 +156,7 @@ export function generateRestRoutesIdentityProfile(baseRouteName, componentName)
156
156
  {
157
157
  type: "INotFoundResponse"
158
158
  }
159
- ],
160
- skipAuth: true
159
+ ]
161
160
  };
162
161
  const identityProfileUpdateRoute = {
163
162
  operationId: "identityProfileUpdate",
@@ -1 +1 @@
1
- {"version":3,"file":"identityProfileRoutes.js","sourceRoot":"","sources":["../../src/identityProfileRoutes.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport {\n\tHttpParameterHelper,\n\ttype IConflictResponse,\n\ttype IHttpRequestContext,\n\ttype INoContentRequest,\n\ttype INoContentResponse,\n\ttype INotFoundResponse,\n\ttype IRestRoute,\n\ttype ITag\n} from \"@twin.org/api-models\";\nimport { ContextIdHelper, ContextIdKeys, ContextIdStore } from \"@twin.org/context\";\nimport { Coerce, ComponentFactory, Guards } from \"@twin.org/core\";\nimport type { IJsonLdDocument } from \"@twin.org/data-json-ld\";\nimport type {\n\tIIdentityProfileComponent,\n\tIIdentityProfileCreateRequest,\n\tIIdentityProfileGetPublicRequest,\n\tIIdentityProfileGetPublicResponse,\n\tIIdentityProfileGetRequest,\n\tIIdentityProfileGetResponse,\n\tIIdentityProfileListRequest,\n\tIIdentityProfileListResponse,\n\tIIdentityProfileUpdateRequest\n} from \"@twin.org/identity-models\";\nimport { nameof } from \"@twin.org/nameof\";\nimport { HeaderTypes, HttpStatusCode, MimeTypes } from \"@twin.org/web\";\n\n/**\n * The source used when communicating about these routes.\n */\nconst ROUTES_SOURCE = \"identityProfileRoutes\";\n\n/**\n * The tag to associate with the routes.\n */\nexport const tagsIdentityProfile: ITag[] = [\n\t{\n\t\tname: \"Identity Profile\",\n\t\tdescription: \"Service to provide all features related to digital identity profiles.\"\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 generateRestRoutesIdentityProfile(\n\tbaseRouteName: string,\n\tcomponentName: string\n): IRestRoute[] {\n\tconst identityProfileCreateRoute: IRestRoute<IIdentityProfileCreateRequest, INoContentResponse> =\n\t\t{\n\t\t\toperationId: \"identityProfileCreate\",\n\t\t\tsummary: \"Create an identity profile\",\n\t\t\ttag: tagsIdentityProfile[0].name,\n\t\t\tmethod: \"POST\",\n\t\t\tpath: `${baseRouteName}/`,\n\t\t\thandler: async (httpRequestContext, request) =>\n\t\t\t\tidentityProfileCreate(httpRequestContext, componentName, request),\n\t\t\trequestType: {\n\t\t\t\ttype: nameof<IIdentityProfileCreateRequest>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityProfileCreateRequestExample\",\n\t\t\t\t\t\trequest: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\tpublicProfile: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\"@type\": \"Person\",\n\t\t\t\t\t\t\t\t\tjobTitle: \"Professor\",\n\t\t\t\t\t\t\t\t\tname: \"Jane Doe\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tprivateProfile: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\"@type\": \"Person\",\n\t\t\t\t\t\t\t\t\ttelephone: \"(425) 123-4567\",\n\t\t\t\t\t\t\t\t\turl: \"http://www.janedoe.com\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\tresponseType: [\n\t\t\t\t{\n\t\t\t\t\ttype: nameof<INoContentResponse>()\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttype: nameof<IConflictResponse>()\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\n\tconst identityProfileGetRoute: IRestRoute<\n\t\tIIdentityProfileGetRequest,\n\t\tIIdentityProfileGetResponse\n\t> = {\n\t\toperationId: \"identityProfileGet\",\n\t\tsummary: \"Get the identity profile properties\",\n\t\ttag: tagsIdentityProfile[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityGet(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityProfileGetRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityGetProfileRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tpublicPropertyNames: \"name,jobTitle\"\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<IIdentityProfileGetResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\t\"did:iota:tst:0xc57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\",\n\t\t\t\t\t\t\t\tpublicProfile: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\"@type\": \"Person\",\n\t\t\t\t\t\t\t\t\tjobTitle: \"Professor\",\n\t\t\t\t\t\t\t\t\tname: \"Jane Doe\"\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\t{\n\t\t\t\ttype: nameof<INotFoundResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst identityProfileGetPublicRoute: IRestRoute<\n\t\tIIdentityProfileGetPublicRequest,\n\t\tIIdentityProfileGetPublicResponse\n\t> = {\n\t\toperationId: \"identityProfileGetPublic\",\n\t\tsummary: \"Get the identity profile public properties\",\n\t\ttag: tagsIdentityProfile[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:identity/public`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityGetPublic(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityProfileGetPublicRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityGetPublicProfileRequestExample\",\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:0xc57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tpropertyNames: \"role,email,name\"\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<IIdentityProfileGetPublicResponse>(),\n\t\t\t\tmimeType: MimeTypes.JsonLd,\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityGetPublicResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t[HeaderTypes.ContentType]: MimeTypes.JsonLd\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\"@type\": \"Person\",\n\t\t\t\t\t\t\t\tjobTitle: \"Professor\",\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}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<INotFoundResponse>()\n\t\t\t}\n\t\t],\n\t\tskipAuth: true\n\t};\n\n\tconst identityProfileUpdateRoute: IRestRoute<IIdentityProfileUpdateRequest, INoContentResponse> =\n\t\t{\n\t\t\toperationId: \"identityProfileUpdate\",\n\t\t\tsummary: \"Update an identity profile properties\",\n\t\t\ttag: tagsIdentityProfile[0].name,\n\t\t\tmethod: \"PUT\",\n\t\t\tpath: `${baseRouteName}/`,\n\t\t\thandler: async (httpRequestContext, request) =>\n\t\t\t\tidentityProfileUpdate(httpRequestContext, componentName, request),\n\t\t\trequestType: {\n\t\t\t\ttype: nameof<IIdentityProfileUpdateRequest>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityProfileUpdateRequestExample\",\n\t\t\t\t\t\trequest: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\tpublicProfile: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\"@type\": \"Person\",\n\t\t\t\t\t\t\t\t\tjobTitle: \"Professor\",\n\t\t\t\t\t\t\t\t\tname: \"Jane Doe\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tprivateProfile: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\"@type\": \"Person\",\n\t\t\t\t\t\t\t\t\ttelephone: \"(425) 123-4567\",\n\t\t\t\t\t\t\t\t\turl: \"http://www.janedoe.com\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\tresponseType: [\n\t\t\t\t{\n\t\t\t\t\ttype: nameof<INoContentResponse>()\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttype: nameof<INotFoundResponse>()\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\n\tconst identityProfileRemoveRoute: IRestRoute<INoContentRequest, INoContentResponse> = {\n\t\toperationId: \"identityProfileRemove\",\n\t\tsummary: \"Remove an identity profile\",\n\t\ttag: tagsIdentityProfile[0].name,\n\t\tmethod: \"DELETE\",\n\t\tpath: `${baseRouteName}/`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityProfileRemove(httpRequestContext, componentName, request),\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<INoContentResponse>()\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<INotFoundResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst identityProfileListRoute: IRestRoute<\n\t\tIIdentityProfileListRequest,\n\t\tIIdentityProfileListResponse\n\t> = {\n\t\toperationId: \"identitiesProfileList\",\n\t\tsummary: \"Get the list of profile data for identities\",\n\t\ttag: tagsIdentityProfile[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/query/`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentitiesList(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityProfileListRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityProfileListRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tquery: {}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"identityProfileListRequestFilteredExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tpublicFilters: \"jobTitle:Professor\"\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<IIdentityProfileListResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identitiesProfileListResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\t\t\t\"did:iota:tst:0xc57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\",\n\t\t\t\t\t\t\t\t\t\tpublicProfile: {\n\t\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\t\"@type\": \"Person\",\n\t\t\t\t\t\t\t\t\t\t\tjobTitle: \"Professor\",\n\t\t\t\t\t\t\t\t\t\t\tname: \"Jane Doe\"\n\t\t\t\t\t\t\t\t\t\t}\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\tcursor: \"1\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\treturn [\n\t\tidentityProfileCreateRoute,\n\t\tidentityProfileGetRoute,\n\t\tidentityProfileGetPublicRoute,\n\t\tidentityProfileUpdateRoute,\n\t\tidentityProfileRemoveRoute,\n\t\tidentityProfileListRoute\n\t];\n}\n\n/**\n * Create an identity profile.\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 identityProfileCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityProfileCreateRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IIdentityProfileCreateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityProfileCreateRequest[\"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.User);\n\n\tconst component = ComponentFactory.get<IIdentityProfileComponent>(componentName);\n\n\tawait component.create(\n\t\trequest.body.publicProfile,\n\t\trequest.body.privateProfile,\n\t\tcontextIds[ContextIdKeys.User]\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Get the identity profile.\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 identityGet(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityProfileGetRequest\n): Promise<IIdentityProfileGetResponse> {\n\tGuards.object<IIdentityProfileGetRequest>(ROUTES_SOURCE, nameof(request), request);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.User);\n\n\tconst component = ComponentFactory.get<IIdentityProfileComponent>(componentName);\n\n\tconst result = await component.get(\n\t\tHttpParameterHelper.arrayFromString<keyof IJsonLdDocument>(request?.query?.publicPropertyNames),\n\t\tHttpParameterHelper.arrayFromString<keyof IJsonLdDocument>(\n\t\t\trequest?.query?.privatePropertyNames\n\t\t),\n\t\tcontextIds[ContextIdKeys.User]\n\t);\n\n\treturn {\n\t\tbody: result\n\t};\n}\n\n/**\n * Get the identity public profile.\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 identityGetPublic(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityProfileGetPublicRequest\n): Promise<IIdentityProfileGetPublicResponse> {\n\tGuards.object<IIdentityProfileGetPublicRequest>(ROUTES_SOURCE, nameof(request), request);\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<IIdentityProfileComponent>(componentName);\n\n\tconst result = await component.getPublic(\n\t\trequest?.pathParams.identity,\n\t\tHttpParameterHelper.arrayFromString<keyof IJsonLdDocument>(request?.query?.propertyNames)\n\t);\n\n\treturn {\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * Update an identity profile.\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 identityProfileUpdate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityProfileUpdateRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IIdentityProfileUpdateRequest>(ROUTES_SOURCE, nameof(request), request);\n\n\tGuards.object<IIdentityProfileUpdateRequest[\"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.User);\n\n\tconst component = ComponentFactory.get<IIdentityProfileComponent>(componentName);\n\n\tawait component.update(\n\t\trequest.body.publicProfile,\n\t\trequest.body.privateProfile,\n\t\tcontextIds[ContextIdKeys.User]\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Remove an identity profile.\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 identityProfileRemove(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: INoContentRequest\n): Promise<INoContentResponse> {\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.User);\n\n\tconst component = ComponentFactory.get<IIdentityProfileComponent>(componentName);\n\n\tawait component.remove(contextIds[ContextIdKeys.User]);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Get the list of organizations.\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 identitiesList(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityProfileListRequest\n): Promise<IIdentityProfileListResponse> {\n\tconst component = ComponentFactory.get<IIdentityProfileComponent>(componentName);\n\n\tconst publicFilterPairs = HttpParameterHelper.arrayFromString(request?.query?.publicFilters);\n\tconst publicFilters = publicFilterPairs?.map(pair => {\n\t\tconst parts = pair.split(\":\");\n\t\treturn {\n\t\t\tpropertyName: parts[0],\n\t\t\tpropertyValue: parts[1]\n\t\t};\n\t});\n\n\treturn {\n\t\tbody: await component.list(\n\t\t\tpublicFilters,\n\t\t\tHttpParameterHelper.arrayFromString<keyof IJsonLdDocument>(\n\t\t\t\trequest?.query?.publicPropertyNames\n\t\t\t),\n\t\t\trequest?.query?.cursor,\n\t\t\tCoerce.integer(request.query?.limit)\n\t\t)\n\t};\n}\n"]}
1
+ {"version":3,"file":"identityProfileRoutes.js","sourceRoot":"","sources":["../../src/identityProfileRoutes.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport {\n\tHttpParameterHelper,\n\ttype IConflictResponse,\n\ttype IHttpRequestContext,\n\ttype INoContentRequest,\n\ttype INoContentResponse,\n\ttype INotFoundResponse,\n\ttype IRestRoute,\n\ttype ITag\n} from \"@twin.org/api-models\";\nimport { ContextIdHelper, ContextIdKeys, ContextIdStore } from \"@twin.org/context\";\nimport { Coerce, ComponentFactory, Guards } from \"@twin.org/core\";\nimport type { IJsonLdDocument } from \"@twin.org/data-json-ld\";\nimport type {\n\tIIdentityProfileComponent,\n\tIIdentityProfileCreateRequest,\n\tIIdentityProfileGetPublicRequest,\n\tIIdentityProfileGetPublicResponse,\n\tIIdentityProfileGetRequest,\n\tIIdentityProfileGetResponse,\n\tIIdentityProfileListRequest,\n\tIIdentityProfileListResponse,\n\tIIdentityProfileUpdateRequest\n} from \"@twin.org/identity-models\";\nimport { nameof } from \"@twin.org/nameof\";\nimport { HeaderTypes, HttpStatusCode, MimeTypes } from \"@twin.org/web\";\n\n/**\n * The source used when communicating about these routes.\n */\nconst ROUTES_SOURCE = \"identityProfileRoutes\";\n\n/**\n * The tag to associate with the routes.\n */\nexport const tagsIdentityProfile: ITag[] = [\n\t{\n\t\tname: \"Identity Profile\",\n\t\tdescription: \"Service to provide all features related to digital identity profiles.\"\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 generateRestRoutesIdentityProfile(\n\tbaseRouteName: string,\n\tcomponentName: string\n): IRestRoute[] {\n\tconst identityProfileCreateRoute: IRestRoute<IIdentityProfileCreateRequest, INoContentResponse> =\n\t\t{\n\t\t\toperationId: \"identityProfileCreate\",\n\t\t\tsummary: \"Create an identity profile\",\n\t\t\ttag: tagsIdentityProfile[0].name,\n\t\t\tmethod: \"POST\",\n\t\t\tpath: `${baseRouteName}/`,\n\t\t\thandler: async (httpRequestContext, request) =>\n\t\t\t\tidentityProfileCreate(httpRequestContext, componentName, request),\n\t\t\trequestType: {\n\t\t\t\ttype: nameof<IIdentityProfileCreateRequest>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityProfileCreateRequestExample\",\n\t\t\t\t\t\trequest: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\tpublicProfile: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\"@type\": \"Person\",\n\t\t\t\t\t\t\t\t\tjobTitle: \"Professor\",\n\t\t\t\t\t\t\t\t\tname: \"Jane Doe\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tprivateProfile: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\"@type\": \"Person\",\n\t\t\t\t\t\t\t\t\ttelephone: \"(425) 123-4567\",\n\t\t\t\t\t\t\t\t\turl: \"http://www.janedoe.com\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\tresponseType: [\n\t\t\t\t{\n\t\t\t\t\ttype: nameof<INoContentResponse>()\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttype: nameof<IConflictResponse>()\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\n\tconst identityProfileGetRoute: IRestRoute<\n\t\tIIdentityProfileGetRequest,\n\t\tIIdentityProfileGetResponse\n\t> = {\n\t\toperationId: \"identityProfileGet\",\n\t\tsummary: \"Get the identity profile properties\",\n\t\ttag: tagsIdentityProfile[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityGet(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityProfileGetRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityGetProfileRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tpublicPropertyNames: \"name,jobTitle\"\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<IIdentityProfileGetResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityGetResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\t\"did:iota:tst:0xc57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\",\n\t\t\t\t\t\t\t\tpublicProfile: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\"@type\": \"Person\",\n\t\t\t\t\t\t\t\t\tjobTitle: \"Professor\",\n\t\t\t\t\t\t\t\t\tname: \"Jane Doe\"\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\t{\n\t\t\t\ttype: nameof<INotFoundResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst identityProfileGetPublicRoute: IRestRoute<\n\t\tIIdentityProfileGetPublicRequest,\n\t\tIIdentityProfileGetPublicResponse\n\t> = {\n\t\toperationId: \"identityProfileGetPublic\",\n\t\tsummary: \"Get the identity profile public properties\",\n\t\ttag: tagsIdentityProfile[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/:identity/public`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityGetPublic(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityProfileGetPublicRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityGetPublicProfileRequestExample\",\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:0xc57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tpropertyNames: \"role,email,name\"\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<IIdentityProfileGetPublicResponse>(),\n\t\t\t\tmimeType: MimeTypes.JsonLd,\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityGetPublicResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t[HeaderTypes.ContentType]: MimeTypes.JsonLd\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\"@type\": \"Person\",\n\t\t\t\t\t\t\t\tjobTitle: \"Professor\",\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}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<INotFoundResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst identityProfileUpdateRoute: IRestRoute<IIdentityProfileUpdateRequest, INoContentResponse> =\n\t\t{\n\t\t\toperationId: \"identityProfileUpdate\",\n\t\t\tsummary: \"Update an identity profile properties\",\n\t\t\ttag: tagsIdentityProfile[0].name,\n\t\t\tmethod: \"PUT\",\n\t\t\tpath: `${baseRouteName}/`,\n\t\t\thandler: async (httpRequestContext, request) =>\n\t\t\t\tidentityProfileUpdate(httpRequestContext, componentName, request),\n\t\t\trequestType: {\n\t\t\t\ttype: nameof<IIdentityProfileUpdateRequest>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identityProfileUpdateRequestExample\",\n\t\t\t\t\t\trequest: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\tpublicProfile: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\"@type\": \"Person\",\n\t\t\t\t\t\t\t\t\tjobTitle: \"Professor\",\n\t\t\t\t\t\t\t\t\tname: \"Jane Doe\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tprivateProfile: {\n\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\"@type\": \"Person\",\n\t\t\t\t\t\t\t\t\ttelephone: \"(425) 123-4567\",\n\t\t\t\t\t\t\t\t\turl: \"http://www.janedoe.com\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\tresponseType: [\n\t\t\t\t{\n\t\t\t\t\ttype: nameof<INoContentResponse>()\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttype: nameof<INotFoundResponse>()\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\n\tconst identityProfileRemoveRoute: IRestRoute<INoContentRequest, INoContentResponse> = {\n\t\toperationId: \"identityProfileRemove\",\n\t\tsummary: \"Remove an identity profile\",\n\t\ttag: tagsIdentityProfile[0].name,\n\t\tmethod: \"DELETE\",\n\t\tpath: `${baseRouteName}/`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityProfileRemove(httpRequestContext, componentName, request),\n\t\tresponseType: [\n\t\t\t{\n\t\t\t\ttype: nameof<INoContentResponse>()\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: nameof<INotFoundResponse>()\n\t\t\t}\n\t\t]\n\t};\n\n\tconst identityProfileListRoute: IRestRoute<\n\t\tIIdentityProfileListRequest,\n\t\tIIdentityProfileListResponse\n\t> = {\n\t\toperationId: \"identitiesProfileList\",\n\t\tsummary: \"Get the list of profile data for identities\",\n\t\ttag: tagsIdentityProfile[0].name,\n\t\tmethod: \"GET\",\n\t\tpath: `${baseRouteName}/query/`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentitiesList(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityProfileListRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityProfileListRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tquery: {}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"identityProfileListRequestFilteredExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tquery: {\n\t\t\t\t\t\t\tpublicFilters: \"jobTitle:Professor\"\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<IIdentityProfileListResponse>(),\n\t\t\t\texamples: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"identitiesProfileListResponseExample\",\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tidentity:\n\t\t\t\t\t\t\t\t\t\t\t\"did:iota:tst:0xc57d94b088f4c6d2cb32ded014813d0c786aa00134c8ee22f84b1e2545602a70\",\n\t\t\t\t\t\t\t\t\t\tpublicProfile: {\n\t\t\t\t\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\t\t\t\t\"@type\": \"Person\",\n\t\t\t\t\t\t\t\t\t\t\tjobTitle: \"Professor\",\n\t\t\t\t\t\t\t\t\t\t\tname: \"Jane Doe\"\n\t\t\t\t\t\t\t\t\t\t}\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\tcursor: \"1\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n\n\treturn [\n\t\tidentityProfileCreateRoute,\n\t\tidentityProfileGetRoute,\n\t\tidentityProfileGetPublicRoute,\n\t\tidentityProfileUpdateRoute,\n\t\tidentityProfileRemoveRoute,\n\t\tidentityProfileListRoute\n\t];\n}\n\n/**\n * Create an identity profile.\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 identityProfileCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityProfileCreateRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IIdentityProfileCreateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityProfileCreateRequest[\"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.User);\n\n\tconst component = ComponentFactory.get<IIdentityProfileComponent>(componentName);\n\n\tawait component.create(\n\t\trequest.body.publicProfile,\n\t\trequest.body.privateProfile,\n\t\tcontextIds[ContextIdKeys.User]\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Get the identity profile.\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 identityGet(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityProfileGetRequest\n): Promise<IIdentityProfileGetResponse> {\n\tGuards.object<IIdentityProfileGetRequest>(ROUTES_SOURCE, nameof(request), request);\n\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.User);\n\n\tconst component = ComponentFactory.get<IIdentityProfileComponent>(componentName);\n\n\tconst result = await component.get(\n\t\tHttpParameterHelper.arrayFromString<keyof IJsonLdDocument>(request?.query?.publicPropertyNames),\n\t\tHttpParameterHelper.arrayFromString<keyof IJsonLdDocument>(\n\t\t\trequest?.query?.privatePropertyNames\n\t\t),\n\t\tcontextIds[ContextIdKeys.User]\n\t);\n\n\treturn {\n\t\tbody: result\n\t};\n}\n\n/**\n * Get the identity public profile.\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 identityGetPublic(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityProfileGetPublicRequest\n): Promise<IIdentityProfileGetPublicResponse> {\n\tGuards.object<IIdentityProfileGetPublicRequest>(ROUTES_SOURCE, nameof(request), request);\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<IIdentityProfileComponent>(componentName);\n\n\tconst result = await component.getPublic(\n\t\trequest?.pathParams.identity,\n\t\tHttpParameterHelper.arrayFromString<keyof IJsonLdDocument>(request?.query?.propertyNames)\n\t);\n\n\treturn {\n\t\theaders: {\n\t\t\t[HeaderTypes.ContentType]: MimeTypes.JsonLd\n\t\t},\n\t\tbody: result\n\t};\n}\n\n/**\n * Update an identity profile.\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 identityProfileUpdate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityProfileUpdateRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IIdentityProfileUpdateRequest>(ROUTES_SOURCE, nameof(request), request);\n\n\tGuards.object<IIdentityProfileUpdateRequest[\"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.User);\n\n\tconst component = ComponentFactory.get<IIdentityProfileComponent>(componentName);\n\n\tawait component.update(\n\t\trequest.body.publicProfile,\n\t\trequest.body.privateProfile,\n\t\tcontextIds[ContextIdKeys.User]\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Remove an identity profile.\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 identityProfileRemove(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: INoContentRequest\n): Promise<INoContentResponse> {\n\tconst contextIds = await ContextIdStore.getContextIds();\n\tContextIdHelper.guard(contextIds, ContextIdKeys.User);\n\n\tconst component = ComponentFactory.get<IIdentityProfileComponent>(componentName);\n\n\tawait component.remove(contextIds[ContextIdKeys.User]);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Get the list of organizations.\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 identitiesList(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityProfileListRequest\n): Promise<IIdentityProfileListResponse> {\n\tconst component = ComponentFactory.get<IIdentityProfileComponent>(componentName);\n\n\tconst publicFilterPairs = HttpParameterHelper.arrayFromString(request?.query?.publicFilters);\n\tconst publicFilters = publicFilterPairs?.map(pair => {\n\t\tconst parts = pair.split(\":\");\n\t\treturn {\n\t\t\tpropertyName: parts[0],\n\t\t\tpropertyValue: parts[1]\n\t\t};\n\t});\n\n\treturn {\n\t\tbody: await component.list(\n\t\t\tpublicFilters,\n\t\t\tHttpParameterHelper.arrayFromString<keyof IJsonLdDocument>(\n\t\t\t\trequest?.query?.publicPropertyNames\n\t\t\t),\n\t\t\trequest?.query?.cursor,\n\t\t\tCoerce.integer(request.query?.limit)\n\t\t)\n\t};\n}\n"]}
@@ -62,8 +62,7 @@ export function generateRestRoutesIdentityResolver(baseRouteName, componentName)
62
62
  }
63
63
  ]
64
64
  }
65
- ],
66
- skipAuth: true
65
+ ]
67
66
  };
68
67
  return [identityResolveRoute];
69
68
  }
@@ -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,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;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};\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"]}
@@ -428,8 +428,7 @@ export function generateRestRoutesIdentity(baseRouteName, componentName) {
428
428
  }
429
429
  ]
430
430
  }
431
- ],
432
- skipAuth: true
431
+ ]
433
432
  };
434
433
  const identityVerifiableCredentialVerifyDocumentRoute = {
435
434
  operationId: "identityVerifiableCredentialVerifyDocument",
@@ -494,8 +493,7 @@ export function generateRestRoutesIdentity(baseRouteName, componentName) {
494
493
  }
495
494
  ]
496
495
  }
497
- ],
498
- skipAuth: true
496
+ ]
499
497
  };
500
498
  const identityVerifiableCredentialRevokeRoute = {
501
499
  operationId: "identityVerifiableCredentialRevoke",
@@ -656,8 +654,7 @@ export function generateRestRoutesIdentity(baseRouteName, componentName) {
656
654
  }
657
655
  ]
658
656
  }
659
- ],
660
- skipAuth: true
657
+ ]
661
658
  };
662
659
  const identityVerifiablePresentationVerifyDocumentRoute = {
663
660
  operationId: "identityVerifiablePresentationVerifyDocument",
@@ -720,8 +717,7 @@ export function generateRestRoutesIdentity(baseRouteName, componentName) {
720
717
  }
721
718
  ]
722
719
  }
723
- ],
724
- skipAuth: true
720
+ ]
725
721
  };
726
722
  const identityProofCreateRoute = {
727
723
  operationId: "identityProofCreate",
@@ -846,8 +842,7 @@ export function generateRestRoutesIdentity(baseRouteName, componentName) {
846
842
  }
847
843
  ]
848
844
  }
849
- ],
850
- skipAuth: true
845
+ ]
851
846
  };
852
847
  return [
853
848
  identityCreateRoute,
@@ -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 IIdentityAlsoKnownAsCreateRequest,\n\ttype IIdentityAlsoKnownAsRemoveRequest,\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 IIdentityVerifiableCredentialVerifyDocumentRequest,\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\ttype IIdentityVerifiablePresentationVerifyDocumentRequest\n} from \"@twin.org/identity-models\";\nimport { nameof } from \"@twin.org/nameof\";\nimport {\n\tDidContexts,\n\ttype IDidVerifiablePresentation,\n\ttype IDidVerifiableCredential\n} 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 identityAlsoKnownAsCreateRoute: IRestRoute<\n\t\tIIdentityAlsoKnownAsCreateRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"identityAlsoKnownAsCreate\",\n\t\tsummary: \"Add an alias to the alsoKnownAs property on the document\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/:identity/alias`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityAlsoKnownAsCreate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityAlsoKnownAsCreateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityAlsoKnownAsCreateRequestExample\",\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\talias: \"did:example:123\"\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 identityAlsoKnownAsRemoveRoute: IRestRoute<\n\t\tIIdentityAlsoKnownAsRemoveRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"identityAlsoKnownAsRemove\",\n\t\tsummary: \"Remove an alias from the alsoKnownAs property on the document\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"DELETE\",\n\t\tpath: `${baseRouteName}/:identity/alias/:alias`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityAlsoKnownAsRemove(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityAlsoKnownAsRemoveRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityAlsoKnownAsRemoveRequestExample\",\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\talias: \"did:example:123\"\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: \"identityAlsoKnownAsRemoveResponseExample\",\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 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 identityVerifiableCredentialVerifyDocumentRoute: IRestRoute<\n\t\tIIdentityVerifiableCredentialVerifyDocumentRequest,\n\t\tIIdentityVerifiableCredentialVerifyResponse\n\t> = {\n\t\toperationId: \"identityVerifiableCredentialVerifyDocument\",\n\t\tsummary: \"Verify an identity verifiable credential document\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/verifiable-credential/verify/document`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityVerifiableCredentialVerifyDocument(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityVerifiableCredentialVerifyDocumentRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityVerifiableCredentialVerifyDocumentRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tbody: {\n\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\tid: \"https://example.com/credentials/3732\",\n\t\t\t\t\t\t\ttype: [\"VerifiableCredential\", \"Person\"],\n\t\t\t\t\t\t\tcredentialSubject: {\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\tissuer:\n\t\t\t\t\t\t\t\t\"did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a\",\n\t\t\t\t\t\t\tissuanceDate: \"2025-01-24T09:21:51.500Z\",\n\t\t\t\t\t\t\tcredentialStatus: {\n\t\t\t\t\t\t\t\tid: \"did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a#revocation\",\n\t\t\t\t\t\t\t\ttype: \"BitstringStatusList\",\n\t\t\t\t\t\t\t\trevocationBitmapIndex: \"5\"\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<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 identityVerifiablePresentationVerifyDocumentRoute: IRestRoute<\n\t\tIIdentityVerifiablePresentationVerifyDocumentRequest,\n\t\tIIdentityVerifiablePresentationVerifyResponse\n\t> = {\n\t\toperationId: \"identityVerifiablePresentationVerifyDocument\",\n\t\tsummary: \"Verify an identity verifiable presentation document\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/verifiable-presentation/verify/document`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityVerifiablePresentationVerifyDocument(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityVerifiablePresentationVerifyDocumentRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityVerifiablePresentationVerifyDocumentRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tbody: {\n\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\tid: \"https://example.com/credentials/3732\",\n\t\t\t\t\t\t\ttype: [\"VerifiableCredential\", \"Person\"],\n\t\t\t\t\t\t\tverifiableCredential: [\n\t\t\t\t\t\t\t\t{\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\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://w3id.org/security/data-integrity/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://w3id.org/security/data-integrity/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\tidentityAlsoKnownAsCreateRoute,\n\t\tidentityAlsoKnownAsRemoveRoute,\n\t\tidentityVerifiableCredentialCreateRoute,\n\t\tidentityVerifiableCredentialVerifyDocumentRoute,\n\t\tidentityVerifiableCredentialVerifyRoute,\n\t\tidentityVerifiableCredentialRevokeRoute,\n\t\tidentityVerifiableCredentialUnrevokeRoute,\n\t\tidentityVerifiablePresentationCreateRoute,\n\t\tidentityVerifiablePresentationVerifyDocumentRoute,\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 an identity alias.\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 identityAlsoKnownAsCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityAlsoKnownAsCreateRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IIdentityAlsoKnownAsCreateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityAlsoKnownAsCreateRequest[\"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\tawait component.alsoKnownAsAdd(\n\t\trequest.pathParams.identity,\n\t\trequest.body.alias,\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Remove an identity alias.\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 identityAlsoKnownAsRemove(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityAlsoKnownAsRemoveRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IIdentityAlsoKnownAsRemoveRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityAlsoKnownAsRemoveRequest[\"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(ROUTES_SOURCE, nameof(request.pathParams.alias), request.pathParams.alias);\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.alsoKnownAsRemove(\n\t\trequest.pathParams.identity,\n\t\trequest.pathParams.alias,\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.dateTime(request.body.expirationDate),\n\t\t\tjwtHeaderFields: request.body.jwtHeaderFields,\n\t\t\tjwtPayloadFields: request.body.jwtPayloadFields\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<IIdentityVerifiableCredentialVerifyDocumentRequest>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request),\n\t\trequest\n\t);\n\n\tGuards.object<IIdentityVerifiableCredentialVerifyRequest[\"query\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.query),\n\t\trequest.query\n\t);\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 * Verify a verifiable credential document.\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 identityVerifiableCredentialVerifyDocument(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityVerifiableCredentialVerifyDocumentRequest\n): Promise<IIdentityVerifiableCredentialVerifyResponse> {\n\tGuards.object<IIdentityVerifiableCredentialVerifyDocumentRequest>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request),\n\t\trequest\n\t);\n\n\tGuards.object<IIdentityVerifiableCredentialVerifyDocumentRequest[\"body\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.body),\n\t\trequest.body\n\t);\n\tGuards.object<IDidVerifiableCredential>(ROUTES_SOURCE, nameof(request.body), request.body);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.verifiableCredentialVerify(request.body);\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\t{\n\t\t\texpirationDate: Coerce.dateTime(request.body.expirationDate),\n\t\t\tjwtHeaderFields: request.body.jwtHeaderFields,\n\t\t\tjwtPayloadFields: request.body.jwtPayloadFields\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 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 * Verify a verifiable presentation document.\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 identityVerifiablePresentationVerifyDocument(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityVerifiablePresentationVerifyDocumentRequest\n): Promise<IIdentityVerifiablePresentationVerifyResponse> {\n\tGuards.object<IIdentityVerifiablePresentationVerifyDocumentRequest>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request),\n\t\trequest\n\t);\n\tGuards.object<IDidVerifiablePresentation>(ROUTES_SOURCE, nameof(request.body), request.body);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.verifiablePresentationVerify(request.body);\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\tDocumentHelper.joinId(request.pathParams.identity, request.pathParams.verificationMethodId),\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 IIdentityAlsoKnownAsCreateRequest,\n\ttype IIdentityAlsoKnownAsRemoveRequest,\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 IIdentityVerifiableCredentialVerifyDocumentRequest,\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\ttype IIdentityVerifiablePresentationVerifyDocumentRequest\n} from \"@twin.org/identity-models\";\nimport { nameof } from \"@twin.org/nameof\";\nimport {\n\tDidContexts,\n\ttype IDidVerifiablePresentation,\n\ttype IDidVerifiableCredential\n} 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 identityAlsoKnownAsCreateRoute: IRestRoute<\n\t\tIIdentityAlsoKnownAsCreateRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"identityAlsoKnownAsCreate\",\n\t\tsummary: \"Add an alias to the alsoKnownAs property on the document\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/:identity/alias`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityAlsoKnownAsCreate(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityAlsoKnownAsCreateRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityAlsoKnownAsCreateRequestExample\",\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\talias: \"did:example:123\"\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 identityAlsoKnownAsRemoveRoute: IRestRoute<\n\t\tIIdentityAlsoKnownAsRemoveRequest,\n\t\tINoContentResponse\n\t> = {\n\t\toperationId: \"identityAlsoKnownAsRemove\",\n\t\tsummary: \"Remove an alias from the alsoKnownAs property on the document\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"DELETE\",\n\t\tpath: `${baseRouteName}/:identity/alias/:alias`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityAlsoKnownAsRemove(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityAlsoKnownAsRemoveRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityAlsoKnownAsRemoveRequestExample\",\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\talias: \"did:example:123\"\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: \"identityAlsoKnownAsRemoveResponseExample\",\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 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};\n\n\tconst identityVerifiableCredentialVerifyDocumentRoute: IRestRoute<\n\t\tIIdentityVerifiableCredentialVerifyDocumentRequest,\n\t\tIIdentityVerifiableCredentialVerifyResponse\n\t> = {\n\t\toperationId: \"identityVerifiableCredentialVerifyDocument\",\n\t\tsummary: \"Verify an identity verifiable credential document\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/verifiable-credential/verify/document`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityVerifiableCredentialVerifyDocument(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityVerifiableCredentialVerifyDocumentRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityVerifiableCredentialVerifyDocumentRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tbody: {\n\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\tid: \"https://example.com/credentials/3732\",\n\t\t\t\t\t\t\ttype: [\"VerifiableCredential\", \"Person\"],\n\t\t\t\t\t\t\tcredentialSubject: {\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\tissuer:\n\t\t\t\t\t\t\t\t\"did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a\",\n\t\t\t\t\t\t\tissuanceDate: \"2025-01-24T09:21:51.500Z\",\n\t\t\t\t\t\t\tcredentialStatus: {\n\t\t\t\t\t\t\t\tid: \"did:entity-storage:0x879c31386f992cfa29b77fe31e37256d69f6a57653cee4eb60ad4c4613c5515a#revocation\",\n\t\t\t\t\t\t\t\ttype: \"BitstringStatusList\",\n\t\t\t\t\t\t\t\trevocationBitmapIndex: \"5\"\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<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};\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};\n\n\tconst identityVerifiablePresentationVerifyDocumentRoute: IRestRoute<\n\t\tIIdentityVerifiablePresentationVerifyDocumentRequest,\n\t\tIIdentityVerifiablePresentationVerifyResponse\n\t> = {\n\t\toperationId: \"identityVerifiablePresentationVerifyDocument\",\n\t\tsummary: \"Verify an identity verifiable presentation document\",\n\t\ttag: tagsIdentity[0].name,\n\t\tmethod: \"POST\",\n\t\tpath: `${baseRouteName}/verifiable-presentation/verify/document`,\n\t\thandler: async (httpRequestContext, request) =>\n\t\t\tidentityVerifiablePresentationVerifyDocument(httpRequestContext, componentName, request),\n\t\trequestType: {\n\t\t\ttype: nameof<IIdentityVerifiablePresentationVerifyDocumentRequest>(),\n\t\t\texamples: [\n\t\t\t\t{\n\t\t\t\t\tid: \"identityVerifiablePresentationVerifyDocumentRequestExample\",\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tbody: {\n\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\tid: \"https://example.com/credentials/3732\",\n\t\t\t\t\t\t\ttype: [\"VerifiableCredential\", \"Person\"],\n\t\t\t\t\t\t\tverifiableCredential: [\n\t\t\t\t\t\t\t\t{\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\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};\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://w3id.org/security/data-integrity/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://w3id.org/security/data-integrity/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};\n\n\treturn [\n\t\tidentityCreateRoute,\n\t\tidentityRemoveRoute,\n\t\tidentityVerificationMethodCreateRoute,\n\t\tidentityVerificationMethodRemoveRoute,\n\t\tidentityServiceCreateRoute,\n\t\tidentityServiceRemoveRoute,\n\t\tidentityAlsoKnownAsCreateRoute,\n\t\tidentityAlsoKnownAsRemoveRoute,\n\t\tidentityVerifiableCredentialCreateRoute,\n\t\tidentityVerifiableCredentialVerifyDocumentRoute,\n\t\tidentityVerifiableCredentialVerifyRoute,\n\t\tidentityVerifiableCredentialRevokeRoute,\n\t\tidentityVerifiableCredentialUnrevokeRoute,\n\t\tidentityVerifiablePresentationCreateRoute,\n\t\tidentityVerifiablePresentationVerifyDocumentRoute,\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 an identity alias.\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 identityAlsoKnownAsCreate(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityAlsoKnownAsCreateRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IIdentityAlsoKnownAsCreateRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityAlsoKnownAsCreateRequest[\"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\tawait component.alsoKnownAsAdd(\n\t\trequest.pathParams.identity,\n\t\trequest.body.alias,\n\t\tcontextIds[ContextIdKeys.Organization]\n\t);\n\n\treturn {\n\t\tstatusCode: HttpStatusCode.noContent\n\t};\n}\n\n/**\n * Remove an identity alias.\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 identityAlsoKnownAsRemove(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityAlsoKnownAsRemoveRequest\n): Promise<INoContentResponse> {\n\tGuards.object<IIdentityAlsoKnownAsRemoveRequest>(ROUTES_SOURCE, nameof(request), request);\n\tGuards.object<IIdentityAlsoKnownAsRemoveRequest[\"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(ROUTES_SOURCE, nameof(request.pathParams.alias), request.pathParams.alias);\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.alsoKnownAsRemove(\n\t\trequest.pathParams.identity,\n\t\trequest.pathParams.alias,\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.dateTime(request.body.expirationDate),\n\t\t\tjwtHeaderFields: request.body.jwtHeaderFields,\n\t\t\tjwtPayloadFields: request.body.jwtPayloadFields\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<IIdentityVerifiableCredentialVerifyDocumentRequest>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request),\n\t\trequest\n\t);\n\n\tGuards.object<IIdentityVerifiableCredentialVerifyRequest[\"query\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.query),\n\t\trequest.query\n\t);\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 * Verify a verifiable credential document.\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 identityVerifiableCredentialVerifyDocument(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityVerifiableCredentialVerifyDocumentRequest\n): Promise<IIdentityVerifiableCredentialVerifyResponse> {\n\tGuards.object<IIdentityVerifiableCredentialVerifyDocumentRequest>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request),\n\t\trequest\n\t);\n\n\tGuards.object<IIdentityVerifiableCredentialVerifyDocumentRequest[\"body\"]>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request.body),\n\t\trequest.body\n\t);\n\tGuards.object<IDidVerifiableCredential>(ROUTES_SOURCE, nameof(request.body), request.body);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.verifiableCredentialVerify(request.body);\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\t{\n\t\t\texpirationDate: Coerce.dateTime(request.body.expirationDate),\n\t\t\tjwtHeaderFields: request.body.jwtHeaderFields,\n\t\t\tjwtPayloadFields: request.body.jwtPayloadFields\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 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 * Verify a verifiable presentation document.\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 identityVerifiablePresentationVerifyDocument(\n\thttpRequestContext: IHttpRequestContext,\n\tcomponentName: string,\n\trequest: IIdentityVerifiablePresentationVerifyDocumentRequest\n): Promise<IIdentityVerifiablePresentationVerifyResponse> {\n\tGuards.object<IIdentityVerifiablePresentationVerifyDocumentRequest>(\n\t\tROUTES_SOURCE,\n\t\tnameof(request),\n\t\trequest\n\t);\n\tGuards.object<IDidVerifiablePresentation>(ROUTES_SOURCE, nameof(request.body), request.body);\n\n\tconst component = ComponentFactory.get<IIdentityComponent>(componentName);\n\n\tconst result = await component.verifiablePresentationVerify(request.body);\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\tDocumentHelper.joinId(request.pathParams.identity, request.pathParams.verificationMethodId),\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,119 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.0.3-next.35](https://github.com/iotaledger/twin-identity/compare/identity-service-v0.0.3-next.34...identity-service-v0.0.3-next.35) (2026-06-01)
4
+
5
+
6
+ ### Features
7
+
8
+ * remove skipAuth from routes ([a2f8921](https://github.com/iotaledger/twin-identity/commit/a2f892133360a25cb7b6668342e5dad852c3a908))
9
+
10
+
11
+ ### Dependencies
12
+
13
+ * The following workspace dependencies were updated
14
+ * dependencies
15
+ * @twin.org/identity-models bumped from 0.0.3-next.34 to 0.0.3-next.35
16
+ * devDependencies
17
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.34 to 0.0.3-next.35
18
+
19
+ ## [0.0.3-next.34](https://github.com/iotaledger/twin-identity/compare/identity-service-v0.0.3-next.33...identity-service-v0.0.3-next.34) (2026-06-01)
20
+
21
+
22
+ ### Features
23
+
24
+ * add addAlsoKnownAs to identity connector ([#117](https://github.com/iotaledger/twin-identity/issues/117)) ([aa27cff](https://github.com/iotaledger/twin-identity/commit/aa27cff88e61e7c8c6e32aeb437fb01c6ee9f57a))
25
+ * add context id features ([#62](https://github.com/iotaledger/twin-identity/issues/62)) ([e02ecca](https://github.com/iotaledger/twin-identity/commit/e02ecca9c45a849104bfbf7bc18a1f44e6eea8a1))
26
+ * add expiration date option to vc creation ([73e05e1](https://github.com/iotaledger/twin-identity/commit/73e05e1ae61112c7e056889969751f4ff82d9f29))
27
+ * add identity remove ([eebc13f](https://github.com/iotaledger/twin-identity/commit/eebc13f4c2cd994d2d9cce4da2128fb346c80ba7))
28
+ * add optional jwt payload and headers to vc and vp tokens ([#135](https://github.com/iotaledger/twin-identity/issues/135)) ([aa1de0f](https://github.com/iotaledger/twin-identity/commit/aa1de0f63be95ff62bae3c699aabc85ea93d74c2))
29
+ * add proof to vcs and verify vs documents ([#103](https://github.com/iotaledger/twin-identity/issues/103)) ([b60bf0c](https://github.com/iotaledger/twin-identity/commit/b60bf0cb7d453d67574c5c0e4f769e67cf7cd6d1))
30
+ * add telemetry metrics ([#132](https://github.com/iotaledger/twin-identity/issues/132)) ([b51cd78](https://github.com/iotaledger/twin-identity/commit/b51cd7816905fd55e250035daf1b8f2047cba83d))
31
+ * add validate-locales ([04d74b4](https://github.com/iotaledger/twin-identity/commit/04d74b4d1ebe42672e8ca75a7bdb8e3556afd0be))
32
+ * eslint migration to flat config ([fd6246d](https://github.com/iotaledger/twin-identity/commit/fd6246d566280b6d5d10a108eb1e92c4b510f2f2))
33
+ * expanded cli methods ([#121](https://github.com/iotaledger/twin-identity/issues/121)) ([80a52b7](https://github.com/iotaledger/twin-identity/commit/80a52b779237cd633d1f2813fa976585cef6e551))
34
+ * identity key separator use slash ([1319d0d](https://github.com/iotaledger/twin-identity/commit/1319d0d07164a36b3ec279e6421b8835ffefc3d3))
35
+ * remove auth generator ([#98](https://github.com/iotaledger/twin-identity/issues/98)) ([a8969e8](https://github.com/iotaledger/twin-identity/commit/a8969e85a5a2804abfc787406e2d12eb168dd978))
36
+ * remove unused namespace ([1987f72](https://github.com/iotaledger/twin-identity/commit/1987f72089be5ece10aa96b1fb9c386221c95c75))
37
+ * separate vc verification routes with query and body ([ea7d891](https://github.com/iotaledger/twin-identity/commit/ea7d8910472150cf76dbd51e282625e70226d9b3))
38
+ * typescript 6 update ([e8806ad](https://github.com/iotaledger/twin-identity/commit/e8806ad6858c37be3c0f54c41cf654023773bef3))
39
+ * update contexts ([#100](https://github.com/iotaledger/twin-identity/issues/100)) ([7c17f98](https://github.com/iotaledger/twin-identity/commit/7c17f983110b2fc5db1b19531d0b2a7c53e02aaa))
40
+ * update framework core ([c824497](https://github.com/iotaledger/twin-identity/commit/c82449709af0215eb7af496cf687c93fb30b5ae0))
41
+ * update namespaces and contexts ([#90](https://github.com/iotaledger/twin-identity/issues/90)) ([0c34d64](https://github.com/iotaledger/twin-identity/commit/0c34d64add8cca77856fa2d0357e774d72fbbfc1))
42
+ * update twindev schemas ([f5b2735](https://github.com/iotaledger/twin-identity/commit/f5b273561b52fa75e654e074927c164a465aa510))
43
+ * use new generateKid method ([f0fe779](https://github.com/iotaledger/twin-identity/commit/f0fe779323b675575bb9f80aa74f1957dc57a094))
44
+ * use shared store mechanism ([#27](https://github.com/iotaledger/twin-identity/issues/27)) ([ce41f3f](https://github.com/iotaledger/twin-identity/commit/ce41f3fc3da1b206ec06da7ea5b2c968f788804d))
45
+
46
+
47
+ ### Bug Fixes
48
+
49
+ * allow empty subject data in vc ([5bbf14e](https://github.com/iotaledger/twin-identity/commit/5bbf14eefd3c99b6cdca1af0ca741954d1b02cd3))
50
+ * identity routes missing jwt fields ([b47470a](https://github.com/iotaledger/twin-identity/commit/b47470a8e59881d877c84f114892ee290d4254ca))
51
+ * identity subject type property ([#146](https://github.com/iotaledger/twin-identity/issues/146)) ([fe71dc6](https://github.com/iotaledger/twin-identity/commit/fe71dc66972120b42f1ff0e1dc8732cb48e1dd2a))
52
+ * Import path and bump version ([#21](https://github.com/iotaledger/twin-identity/issues/21)) ([ccea845](https://github.com/iotaledger/twin-identity/commit/ccea845bf32562267280bc1b3dde1c9af1a00360))
53
+ * Install sdk-wasm ([#20](https://github.com/iotaledger/twin-identity/issues/20)) ([75ec14e](https://github.com/iotaledger/twin-identity/commit/75ec14e072f8c219863a1c028a3b0783802086e9))
54
+ * missing path params ([02acbde](https://github.com/iotaledger/twin-identity/commit/02acbde3033bf5d5435dca0bd8187cabad8f3028))
55
+ * proof create rest route identifier ([395dc57](https://github.com/iotaledger/twin-identity/commit/395dc5700f8ec1b3a607d18ffb68c8eec8ee751c))
56
+ * query params force coercion ([d9347d2](https://github.com/iotaledger/twin-identity/commit/d9347d29d4a9cc58759f30f5d8526de864ea7522))
57
+ * stricter pathParam types ([a174cdf](https://github.com/iotaledger/twin-identity/commit/a174cdf0ca4272bee35fcf20ab7e8e4e17b8b6f4))
58
+
59
+
60
+ ### Dependencies
61
+
62
+ * The following workspace dependencies were updated
63
+ * dependencies
64
+ * @twin.org/identity-models bumped from 0.0.3-next.33 to 0.0.3-next.34
65
+ * devDependencies
66
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.33 to 0.0.3-next.34
67
+
68
+ ## [0.0.3-next.33](https://github.com/iotaledger/twin-identity/compare/identity-service-v0.0.3-next.32...identity-service-v0.0.3-next.33) (2026-06-01)
69
+
70
+
71
+ ### Features
72
+
73
+ * add addAlsoKnownAs to identity connector ([#117](https://github.com/iotaledger/twin-identity/issues/117)) ([aa27cff](https://github.com/iotaledger/twin-identity/commit/aa27cff88e61e7c8c6e32aeb437fb01c6ee9f57a))
74
+ * add context id features ([#62](https://github.com/iotaledger/twin-identity/issues/62)) ([e02ecca](https://github.com/iotaledger/twin-identity/commit/e02ecca9c45a849104bfbf7bc18a1f44e6eea8a1))
75
+ * add expiration date option to vc creation ([73e05e1](https://github.com/iotaledger/twin-identity/commit/73e05e1ae61112c7e056889969751f4ff82d9f29))
76
+ * add identity remove ([eebc13f](https://github.com/iotaledger/twin-identity/commit/eebc13f4c2cd994d2d9cce4da2128fb346c80ba7))
77
+ * add optional jwt payload and headers to vc and vp tokens ([#135](https://github.com/iotaledger/twin-identity/issues/135)) ([aa1de0f](https://github.com/iotaledger/twin-identity/commit/aa1de0f63be95ff62bae3c699aabc85ea93d74c2))
78
+ * add proof to vcs and verify vs documents ([#103](https://github.com/iotaledger/twin-identity/issues/103)) ([b60bf0c](https://github.com/iotaledger/twin-identity/commit/b60bf0cb7d453d67574c5c0e4f769e67cf7cd6d1))
79
+ * add telemetry metrics ([#132](https://github.com/iotaledger/twin-identity/issues/132)) ([b51cd78](https://github.com/iotaledger/twin-identity/commit/b51cd7816905fd55e250035daf1b8f2047cba83d))
80
+ * add validate-locales ([04d74b4](https://github.com/iotaledger/twin-identity/commit/04d74b4d1ebe42672e8ca75a7bdb8e3556afd0be))
81
+ * eslint migration to flat config ([fd6246d](https://github.com/iotaledger/twin-identity/commit/fd6246d566280b6d5d10a108eb1e92c4b510f2f2))
82
+ * expanded cli methods ([#121](https://github.com/iotaledger/twin-identity/issues/121)) ([80a52b7](https://github.com/iotaledger/twin-identity/commit/80a52b779237cd633d1f2813fa976585cef6e551))
83
+ * identity key separator use slash ([1319d0d](https://github.com/iotaledger/twin-identity/commit/1319d0d07164a36b3ec279e6421b8835ffefc3d3))
84
+ * remove auth generator ([#98](https://github.com/iotaledger/twin-identity/issues/98)) ([a8969e8](https://github.com/iotaledger/twin-identity/commit/a8969e85a5a2804abfc787406e2d12eb168dd978))
85
+ * remove unused namespace ([1987f72](https://github.com/iotaledger/twin-identity/commit/1987f72089be5ece10aa96b1fb9c386221c95c75))
86
+ * separate vc verification routes with query and body ([ea7d891](https://github.com/iotaledger/twin-identity/commit/ea7d8910472150cf76dbd51e282625e70226d9b3))
87
+ * typescript 6 update ([e8806ad](https://github.com/iotaledger/twin-identity/commit/e8806ad6858c37be3c0f54c41cf654023773bef3))
88
+ * update contexts ([#100](https://github.com/iotaledger/twin-identity/issues/100)) ([7c17f98](https://github.com/iotaledger/twin-identity/commit/7c17f983110b2fc5db1b19531d0b2a7c53e02aaa))
89
+ * update framework core ([c824497](https://github.com/iotaledger/twin-identity/commit/c82449709af0215eb7af496cf687c93fb30b5ae0))
90
+ * update namespaces and contexts ([#90](https://github.com/iotaledger/twin-identity/issues/90)) ([0c34d64](https://github.com/iotaledger/twin-identity/commit/0c34d64add8cca77856fa2d0357e774d72fbbfc1))
91
+ * update twindev schemas ([f5b2735](https://github.com/iotaledger/twin-identity/commit/f5b273561b52fa75e654e074927c164a465aa510))
92
+ * use new generateKid method ([f0fe779](https://github.com/iotaledger/twin-identity/commit/f0fe779323b675575bb9f80aa74f1957dc57a094))
93
+ * use shared store mechanism ([#27](https://github.com/iotaledger/twin-identity/issues/27)) ([ce41f3f](https://github.com/iotaledger/twin-identity/commit/ce41f3fc3da1b206ec06da7ea5b2c968f788804d))
94
+
95
+
96
+ ### Bug Fixes
97
+
98
+ * allow empty subject data in vc ([5bbf14e](https://github.com/iotaledger/twin-identity/commit/5bbf14eefd3c99b6cdca1af0ca741954d1b02cd3))
99
+ * identity routes missing jwt fields ([b47470a](https://github.com/iotaledger/twin-identity/commit/b47470a8e59881d877c84f114892ee290d4254ca))
100
+ * identity subject type property ([#146](https://github.com/iotaledger/twin-identity/issues/146)) ([fe71dc6](https://github.com/iotaledger/twin-identity/commit/fe71dc66972120b42f1ff0e1dc8732cb48e1dd2a))
101
+ * Import path and bump version ([#21](https://github.com/iotaledger/twin-identity/issues/21)) ([ccea845](https://github.com/iotaledger/twin-identity/commit/ccea845bf32562267280bc1b3dde1c9af1a00360))
102
+ * Install sdk-wasm ([#20](https://github.com/iotaledger/twin-identity/issues/20)) ([75ec14e](https://github.com/iotaledger/twin-identity/commit/75ec14e072f8c219863a1c028a3b0783802086e9))
103
+ * missing path params ([02acbde](https://github.com/iotaledger/twin-identity/commit/02acbde3033bf5d5435dca0bd8187cabad8f3028))
104
+ * proof create rest route identifier ([395dc57](https://github.com/iotaledger/twin-identity/commit/395dc5700f8ec1b3a607d18ffb68c8eec8ee751c))
105
+ * query params force coercion ([d9347d2](https://github.com/iotaledger/twin-identity/commit/d9347d29d4a9cc58759f30f5d8526de864ea7522))
106
+ * stricter pathParam types ([a174cdf](https://github.com/iotaledger/twin-identity/commit/a174cdf0ca4272bee35fcf20ab7e8e4e17b8b6f4))
107
+
108
+
109
+ ### Dependencies
110
+
111
+ * The following workspace dependencies were updated
112
+ * dependencies
113
+ * @twin.org/identity-models bumped from 0.0.3-next.32 to 0.0.3-next.33
114
+ * devDependencies
115
+ * @twin.org/identity-connector-entity-storage bumped from 0.0.3-next.32 to 0.0.3-next.33
116
+
3
117
  ## [0.0.3-next.32](https://github.com/iotaledger/twin-identity/compare/identity-service-v0.0.3-next.31...identity-service-v0.0.3-next.32) (2026-06-01)
4
118
 
5
119
 
@@ -45,6 +45,11 @@
45
45
  "example": "did:iota:tst:0xe3088ba9aa8c28e1d139708a14e8c0fdff11ee8223baac4aa5bcf3321e4bfc6a"
46
46
  }
47
47
  ],
48
+ "security": [
49
+ {
50
+ "jwtBearerAuthScheme": []
51
+ }
52
+ ],
48
53
  "responses": {
49
54
  "200": {
50
55
  "description": "Response to resolving an identity.",
@@ -92,6 +97,24 @@
92
97
  }
93
98
  }
94
99
  },
100
+ "401": {
101
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
102
+ "content": {
103
+ "application/json": {
104
+ "schema": {
105
+ "$ref": "#/components/schemas/Error"
106
+ },
107
+ "examples": {
108
+ "exampleResponse": {
109
+ "value": {
110
+ "name": "UnauthorizedError",
111
+ "message": "errorMessage"
112
+ }
113
+ }
114
+ }
115
+ }
116
+ }
117
+ },
95
118
  "500": {
96
119
  "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
97
120
  "content": {
@@ -1140,6 +1163,11 @@
1140
1163
  "tags": [
1141
1164
  "Identity"
1142
1165
  ],
1166
+ "security": [
1167
+ {
1168
+ "jwtBearerAuthScheme": []
1169
+ }
1170
+ ],
1143
1171
  "requestBody": {
1144
1172
  "description": "Request to verify a verifiable credential.",
1145
1173
  "required": true,
@@ -1238,6 +1266,24 @@
1238
1266
  }
1239
1267
  }
1240
1268
  },
1269
+ "401": {
1270
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
1271
+ "content": {
1272
+ "application/json": {
1273
+ "schema": {
1274
+ "$ref": "#/components/schemas/Error"
1275
+ },
1276
+ "examples": {
1277
+ "exampleResponse": {
1278
+ "value": {
1279
+ "name": "UnauthorizedError",
1280
+ "message": "errorMessage"
1281
+ }
1282
+ }
1283
+ }
1284
+ }
1285
+ }
1286
+ },
1241
1287
  "500": {
1242
1288
  "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
1243
1289
  "content": {
@@ -1278,6 +1324,11 @@
1278
1324
  "example": "eyJraWQiOi...D1Z3AQ"
1279
1325
  }
1280
1326
  ],
1327
+ "security": [
1328
+ {
1329
+ "jwtBearerAuthScheme": []
1330
+ }
1331
+ ],
1281
1332
  "responses": {
1282
1333
  "200": {
1283
1334
  "description": "Response to verifying a verifiable credential.",
@@ -1339,6 +1390,24 @@
1339
1390
  }
1340
1391
  }
1341
1392
  },
1393
+ "401": {
1394
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
1395
+ "content": {
1396
+ "application/json": {
1397
+ "schema": {
1398
+ "$ref": "#/components/schemas/Error"
1399
+ },
1400
+ "examples": {
1401
+ "exampleResponse": {
1402
+ "value": {
1403
+ "name": "UnauthorizedError",
1404
+ "message": "errorMessage"
1405
+ }
1406
+ }
1407
+ }
1408
+ }
1409
+ }
1410
+ },
1342
1411
  "500": {
1343
1412
  "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
1344
1413
  "content": {
@@ -1717,6 +1786,11 @@
1717
1786
  "tags": [
1718
1787
  "Identity"
1719
1788
  ],
1789
+ "security": [
1790
+ {
1791
+ "jwtBearerAuthScheme": []
1792
+ }
1793
+ ],
1720
1794
  "requestBody": {
1721
1795
  "description": "Request to verify a verifiable presentation.",
1722
1796
  "required": true,
@@ -1821,6 +1895,24 @@
1821
1895
  }
1822
1896
  }
1823
1897
  },
1898
+ "401": {
1899
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
1900
+ "content": {
1901
+ "application/json": {
1902
+ "schema": {
1903
+ "$ref": "#/components/schemas/Error"
1904
+ },
1905
+ "examples": {
1906
+ "exampleResponse": {
1907
+ "value": {
1908
+ "name": "UnauthorizedError",
1909
+ "message": "errorMessage"
1910
+ }
1911
+ }
1912
+ }
1913
+ }
1914
+ }
1915
+ },
1824
1916
  "500": {
1825
1917
  "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
1826
1918
  "content": {
@@ -1861,6 +1953,11 @@
1861
1953
  "example": "eyJraWQiOi...D1Z3AQ"
1862
1954
  }
1863
1955
  ],
1956
+ "security": [
1957
+ {
1958
+ "jwtBearerAuthScheme": []
1959
+ }
1960
+ ],
1864
1961
  "responses": {
1865
1962
  "200": {
1866
1963
  "description": "Response to verifying a verifiable presentation.",
@@ -1915,6 +2012,24 @@
1915
2012
  }
1916
2013
  }
1917
2014
  },
2015
+ "401": {
2016
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
2017
+ "content": {
2018
+ "application/json": {
2019
+ "schema": {
2020
+ "$ref": "#/components/schemas/Error"
2021
+ },
2022
+ "examples": {
2023
+ "exampleResponse": {
2024
+ "value": {
2025
+ "name": "UnauthorizedError",
2026
+ "message": "errorMessage"
2027
+ }
2028
+ }
2029
+ }
2030
+ }
2031
+ }
2032
+ },
1918
2033
  "500": {
1919
2034
  "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
1920
2035
  "content": {
@@ -2103,6 +2218,11 @@
2103
2218
  "tags": [
2104
2219
  "Identity"
2105
2220
  ],
2221
+ "security": [
2222
+ {
2223
+ "jwtBearerAuthScheme": []
2224
+ }
2225
+ ],
2106
2226
  "requestBody": {
2107
2227
  "description": "Request to verify a proof.",
2108
2228
  "required": true,
@@ -2187,6 +2307,24 @@
2187
2307
  }
2188
2308
  }
2189
2309
  },
2310
+ "401": {
2311
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
2312
+ "content": {
2313
+ "application/json": {
2314
+ "schema": {
2315
+ "$ref": "#/components/schemas/Error"
2316
+ },
2317
+ "examples": {
2318
+ "exampleResponse": {
2319
+ "value": {
2320
+ "name": "UnauthorizedError",
2321
+ "message": "errorMessage"
2322
+ }
2323
+ }
2324
+ }
2325
+ }
2326
+ }
2327
+ },
2190
2328
  "500": {
2191
2329
  "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
2192
2330
  "content": {
@@ -2721,6 +2859,11 @@
2721
2859
  "example": "role,email,name"
2722
2860
  }
2723
2861
  ],
2862
+ "security": [
2863
+ {
2864
+ "jwtBearerAuthScheme": []
2865
+ }
2866
+ ],
2724
2867
  "responses": {
2725
2868
  "200": {
2726
2869
  "description": "Response to get an identity public profile.",
@@ -2771,6 +2914,24 @@
2771
2914
  }
2772
2915
  }
2773
2916
  },
2917
+ "401": {
2918
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
2919
+ "content": {
2920
+ "application/json": {
2921
+ "schema": {
2922
+ "$ref": "#/components/schemas/Error"
2923
+ },
2924
+ "examples": {
2925
+ "exampleResponse": {
2926
+ "value": {
2927
+ "name": "UnauthorizedError",
2928
+ "message": "errorMessage"
2929
+ }
2930
+ }
2931
+ }
2932
+ }
2933
+ }
2934
+ },
2774
2935
  "404": {
2775
2936
  "description": "The resource you tried to access does not exist, see the content for more details.",
2776
2937
  "content": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twin.org/identity-service",
3
- "version": "0.0.3-next.32",
3
+ "version": "0.0.3-next.35",
4
4
  "description": "Service contracts and REST endpoint definitions for exposing identity workflows through stable interfaces.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -22,7 +22,7 @@
22
22
  "@twin.org/data-json-ld": "next",
23
23
  "@twin.org/entity": "next",
24
24
  "@twin.org/entity-storage-models": "next",
25
- "@twin.org/identity-models": "0.0.3-next.32",
25
+ "@twin.org/identity-models": "0.0.3-next.35",
26
26
  "@twin.org/standards-w3c-did": "next",
27
27
  "@twin.org/telemetry-models": "next",
28
28
  "@twin.org/vault-models": "next",