@fiado/api-invoker 5.6.0 → 5.8.0

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.
Files changed (28) hide show
  1. package/bin/identity/IdentityApi.d.ts +1 -1
  2. package/bin/identity/IdentityApi.js +7 -7
  3. package/bin/identity/interfaces/IIdentityApi.d.ts +2 -13
  4. package/bin/membership/MembershipApi.d.ts +12 -0
  5. package/bin/membership/MembershipApi.js +32 -0
  6. package/bin/membership/index.d.ts +2 -0
  7. package/bin/membership/index.js +2 -0
  8. package/bin/membership/interfaces/IMembershipApi.d.ts +15 -0
  9. package/bin/membership/interfaces/IMembershipApi.js +1 -0
  10. package/bin/notificationWebsockets/NotificationWebsocketApi.d.ts +12 -0
  11. package/bin/notificationWebsockets/NotificationWebsocketApi.js +32 -0
  12. package/bin/notificationWebsockets/interfaces/INotificationWebsocketApi.d.ts +15 -0
  13. package/bin/notificationWebsockets/interfaces/INotificationWebsocketApi.js +1 -0
  14. package/bin/performance-profile/PerformanceProfileApi.d.ts +12 -0
  15. package/bin/performance-profile/PerformanceProfileApi.js +32 -0
  16. package/bin/performance-profile/index.d.ts +2 -0
  17. package/bin/performance-profile/index.js +2 -0
  18. package/bin/performance-profile/interfaces/IPerformanceProfileApi.d.ts +15 -0
  19. package/bin/performance-profile/interfaces/IPerformanceProfileApi.js +1 -0
  20. package/bin/presence-websocket/PresenceWebsocketApi.d.ts +12 -0
  21. package/bin/presence-websocket/PresenceWebsocketApi.js +32 -0
  22. package/bin/presence-websocket/index.d.ts +2 -0
  23. package/bin/presence-websocket/index.js +2 -0
  24. package/bin/presence-websocket/interfaces/IPresenceWebsocketApi.d.ts +15 -0
  25. package/bin/presence-websocket/interfaces/IPresenceWebsocketApi.js +1 -0
  26. package/package.json +2 -2
  27. package/src/identity/IdentityApi.ts +8 -8
  28. package/src/identity/interfaces/IIdentityApi.ts +2 -14
@@ -14,11 +14,11 @@ export declare class IdentityApi implements IIdentityApi {
14
14
  getPeopleByFullName(fullName: string): Promise<any>;
15
15
  privateGetDocumentsUrlSigned(directoryId: string, documentNames: string[]): Promise<any>;
16
16
  getUserDocuments(directoryId: string): Promise<any>;
17
- privateGetPeopleSelfie(directoryId: string): Promise<LegacyApiResponse<PeopleSelfieResponse>>;
18
17
  privateGetPeopleByDirectoryId(directoryId: string): Promise<LegacyApiResponse<PeopleResponse>>;
19
18
  privateGetLastAgentDocument(directoryId: string): Promise<LegacyApiResponse<AgentDocumentKeyResponse[]>>;
20
19
  privateUploadAgentDocument(directoryId: string, actorDirectoryId: string, document: UploadDocumentRequest): Promise<LegacyApiResponse<DocumentUploadResponse>>;
21
20
  privateUpdatePeopleSelfVerified(directoryId: string, data: PeopleSelfVerifiedRequest): Promise<LegacyApiResponse<unknown>>;
22
21
  privateSearchPeople(fullName: string): Promise<LegacyApiResponse<PeopleResponse[]>>;
23
22
  privateUpdatePeople(directoryId: string, data: PeopleUpdateRequest): Promise<LegacyApiResponse<unknown>>;
23
+ privateGetPeopleSelfie(directoryId: string): Promise<LegacyApiResponse<PeopleSelfieResponse>>;
24
24
  }
@@ -75,13 +75,6 @@ let IdentityApi = class IdentityApi {
75
75
  const url = `${this.baseUrl}identities/private/people/${directoryId}/documents`;
76
76
  return await this.httpRequest.get(url);
77
77
  }
78
- async privateGetPeopleSelfie(directoryId) {
79
- if (!directoryId) {
80
- throw new Error("Directory ID is required.");
81
- }
82
- const url = `${this.baseUrl}identities/private/people/${encodeURIComponent(directoryId)}/selfie`;
83
- return await this.httpRequest.get(url);
84
- }
85
78
  // ── Gemelos PRIVATE de los endpoints de agentes (proxy RBAC v2, DEC-PROT-011) ──
86
79
  // Retornan el ENVELOPE legacy completo (httpRequest devuelve response.data = el body de identity),
87
80
  // para que el proxy /v2 de people-business lo re-emita campo por campo (drop-in, sin doble-wrap).
@@ -130,6 +123,13 @@ let IdentityApi = class IdentityApi {
130
123
  const url = `${this.baseUrl}identities/private/agents/people/${directoryId}`;
131
124
  return await this.httpRequest.put(url, data);
132
125
  }
126
+ async privateGetPeopleSelfie(directoryId) {
127
+ if (!directoryId) {
128
+ throw new Error('Directory ID is required.');
129
+ }
130
+ const url = `${this.baseUrl}identities/private/people/${encodeURIComponent(directoryId)}/selfie`;
131
+ return await this.httpRequest.get(url);
132
+ }
133
133
  };
134
134
  IdentityApi = __decorate([
135
135
  injectable(),
@@ -36,19 +36,6 @@ export interface IIdentityApi {
36
36
  * Retorna { directoryId, keys: string[] }.
37
37
  */
38
38
  getUserDocuments(directoryId: string): Promise<any>;
39
- /**
40
- * Selfie guardada del usuario: devuelve una URL firmada temporal (no la imagen).
41
- *
42
- * Pensado para el facematch de Metamap contra la merchant database: la `url` se pasa a
43
- * `IMetamapConnectorApi.buildFacematchSignature` para obtener el `userPhotoLinkHash`, y el par
44
- * va en el `metadata` de la verificación con `customInput: true`. El presigned vence
45
- * (`expiresInSeconds`), así que la firma y el disparo del facematch van dentro de esa ventana.
46
- *
47
- * Devuelve el envelope legacy completo porque el resultado se discrimina por `code`, no por
48
- * status: `PROCESS_OK` con la selfie, `SELFIE_NOT_FOUND` si el usuario tiene cuenta pero no hay
49
- * imagen (el toolkit lo emite como HTTP 200). Sin cuenta, el endpoint responde 401 `NO_ACCOUNT`.
50
- */
51
- privateGetPeopleSelfie(directoryId: string): Promise<LegacyApiResponse<PeopleSelfieResponse>>;
52
39
  /** Gemelo private de agentGetPeopleByDirectoryId (con masking del manager). */
53
40
  privateGetPeopleByDirectoryId(directoryId: string): Promise<LegacyApiResponse<PeopleResponse>>;
54
41
  /** Gemelo private de getUserDocumentsAgents (último documento). */
@@ -61,4 +48,6 @@ export interface IIdentityApi {
61
48
  privateSearchPeople(fullName: string): Promise<LegacyApiResponse<PeopleResponse[]>>;
62
49
  /** Gemelo private de editar persona (PUT sin /selfverified). */
63
50
  privateUpdatePeople(directoryId: string, data: PeopleUpdateRequest): Promise<LegacyApiResponse<unknown>>;
51
+ /** Selfie del KYC del usuario: URL presignado de S3 (el userPhotoLink del facematch) + vigencia. */
52
+ privateGetPeopleSelfie(directoryId: string): Promise<LegacyApiResponse<PeopleSelfieResponse>>;
64
53
  }
@@ -0,0 +1,12 @@
1
+ import { IHttpRequest } from "@fiado/http-client";
2
+ import { IMembershipApi } from "./interfaces/IMembershipApi.js";
3
+ type FiadoApiResponse<T> = import("@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse.js").default<T>;
4
+ export declare class MembershipApi implements IMembershipApi {
5
+ private httpRequest;
6
+ private readonly baseUrl;
7
+ constructor(httpRequest: IHttpRequest);
8
+ deleteByDirectoryId(directoryId: string): Promise<FiadoApiResponse<{
9
+ deletedCount: number;
10
+ }>>;
11
+ }
12
+ export {};
@@ -0,0 +1,32 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { inject, injectable } from "inversify";
14
+ import dotenv from 'dotenv';
15
+ dotenv.config();
16
+ let MembershipApi = class MembershipApi {
17
+ httpRequest;
18
+ baseUrl = process.env.MEMBERSHIP_BUSINESS_LAMBDA_URL || "";
19
+ constructor(httpRequest) {
20
+ this.httpRequest = httpRequest;
21
+ }
22
+ async deleteByDirectoryId(directoryId) {
23
+ const url = `${this.baseUrl}private/directory/${directoryId}`;
24
+ return await this.httpRequest.delete(url);
25
+ }
26
+ };
27
+ MembershipApi = __decorate([
28
+ injectable(),
29
+ __param(0, inject("IHttpRequest")),
30
+ __metadata("design:paramtypes", [Object])
31
+ ], MembershipApi);
32
+ export { MembershipApi };
@@ -0,0 +1,2 @@
1
+ export * from './interfaces/IMembershipApi.js';
2
+ export * from './MembershipApi.js';
@@ -0,0 +1,2 @@
1
+ export * from './interfaces/IMembershipApi.js';
2
+ export * from './MembershipApi.js';
@@ -0,0 +1,15 @@
1
+ type FiadoApiResponse<T> = import("@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse.js").default<T>;
2
+ /**
3
+ * Interfaz para el servicio Membership (membership-business).
4
+ */
5
+ export interface IMembershipApi {
6
+ /**
7
+ * Borra en cascada las membresías asociadas a un directoryId.
8
+ * @param directoryId ID del directorio.
9
+ * @throws {Error} Lanza un error si los parámetros de entrada son inválidos.
10
+ */
11
+ deleteByDirectoryId(directoryId: string): Promise<FiadoApiResponse<{
12
+ deletedCount: number;
13
+ }>>;
14
+ }
15
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ import { IHttpRequest } from "@fiado/http-client";
2
+ import { INotificationWebsocketApi } from "./interfaces/INotificationWebsocketApi.js";
3
+ type FiadoApiResponse<T> = import("@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse.js").default<T>;
4
+ export declare class NotificationWebsocketApi implements INotificationWebsocketApi {
5
+ private httpRequest;
6
+ private readonly baseUrl;
7
+ constructor(httpRequest: IHttpRequest);
8
+ deleteByDirectoryId(directoryId: string): Promise<FiadoApiResponse<{
9
+ deletedCount: number;
10
+ }>>;
11
+ }
12
+ export {};
@@ -0,0 +1,32 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { inject, injectable } from "inversify";
14
+ import dotenv from 'dotenv';
15
+ dotenv.config();
16
+ let NotificationWebsocketApi = class NotificationWebsocketApi {
17
+ httpRequest;
18
+ baseUrl = process.env.NOTIFICATIONS_WEBSOCKET_LAMBDA_URL || "";
19
+ constructor(httpRequest) {
20
+ this.httpRequest = httpRequest;
21
+ }
22
+ async deleteByDirectoryId(directoryId) {
23
+ const url = `${this.baseUrl}private/directory/${directoryId}`;
24
+ return await this.httpRequest.delete(url);
25
+ }
26
+ };
27
+ NotificationWebsocketApi = __decorate([
28
+ injectable(),
29
+ __param(0, inject("IHttpRequest")),
30
+ __metadata("design:paramtypes", [Object])
31
+ ], NotificationWebsocketApi);
32
+ export { NotificationWebsocketApi };
@@ -0,0 +1,15 @@
1
+ type FiadoApiResponse<T> = import("@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse.js").default<T>;
2
+ /**
3
+ * Interfaz para el servicio Notifications Websocket (notifications-websocket).
4
+ */
5
+ export interface INotificationWebsocketApi {
6
+ /**
7
+ * Borra en cascada las conexiones/notificaciones WS asociadas a un directoryId.
8
+ * @param directoryId ID del directorio.
9
+ * @throws {Error} Lanza un error si los parámetros de entrada son inválidos.
10
+ */
11
+ deleteByDirectoryId(directoryId: string): Promise<FiadoApiResponse<{
12
+ deletedCount: number;
13
+ }>>;
14
+ }
15
+ export {};
@@ -0,0 +1,12 @@
1
+ import { IHttpRequest } from "@fiado/http-client";
2
+ import { IPerformanceProfileApi } from "./interfaces/IPerformanceProfileApi.js";
3
+ type FiadoApiResponse<T> = import("@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse.js").default<T>;
4
+ export declare class PerformanceProfileApi implements IPerformanceProfileApi {
5
+ private httpRequest;
6
+ private readonly baseUrl;
7
+ constructor(httpRequest: IHttpRequest);
8
+ deleteByDirectoryId(directoryId: string): Promise<FiadoApiResponse<{
9
+ deletedCount: number;
10
+ }>>;
11
+ }
12
+ export {};
@@ -0,0 +1,32 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { inject, injectable } from "inversify";
14
+ import dotenv from 'dotenv';
15
+ dotenv.config();
16
+ let PerformanceProfileApi = class PerformanceProfileApi {
17
+ httpRequest;
18
+ baseUrl = process.env.PERFORMANCE_PROFILE_BUSINESS_LAMBDA_URL || "";
19
+ constructor(httpRequest) {
20
+ this.httpRequest = httpRequest;
21
+ }
22
+ async deleteByDirectoryId(directoryId) {
23
+ const url = `${this.baseUrl}private/directory/${directoryId}`;
24
+ return await this.httpRequest.delete(url);
25
+ }
26
+ };
27
+ PerformanceProfileApi = __decorate([
28
+ injectable(),
29
+ __param(0, inject("IHttpRequest")),
30
+ __metadata("design:paramtypes", [Object])
31
+ ], PerformanceProfileApi);
32
+ export { PerformanceProfileApi };
@@ -0,0 +1,2 @@
1
+ export * from './interfaces/IPerformanceProfileApi.js';
2
+ export * from './PerformanceProfileApi.js';
@@ -0,0 +1,2 @@
1
+ export * from './interfaces/IPerformanceProfileApi.js';
2
+ export * from './PerformanceProfileApi.js';
@@ -0,0 +1,15 @@
1
+ type FiadoApiResponse<T> = import("@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse.js").default<T>;
2
+ /**
3
+ * Interfaz para el servicio Performance Profile (performance-profile-business).
4
+ */
5
+ export interface IPerformanceProfileApi {
6
+ /**
7
+ * Borra en cascada los perfiles de desempeño asociados a un directoryId.
8
+ * @param directoryId ID del directorio.
9
+ * @throws {Error} Lanza un error si los parámetros de entrada son inválidos.
10
+ */
11
+ deleteByDirectoryId(directoryId: string): Promise<FiadoApiResponse<{
12
+ deletedCount: number;
13
+ }>>;
14
+ }
15
+ export {};
@@ -0,0 +1,12 @@
1
+ import { IHttpRequest } from "@fiado/http-client";
2
+ import { IPresenceWebsocketApi } from "./interfaces/IPresenceWebsocketApi.js";
3
+ type FiadoApiResponse<T> = import("@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse.js").default<T>;
4
+ export declare class PresenceWebsocketApi implements IPresenceWebsocketApi {
5
+ private httpRequest;
6
+ private readonly baseUrl;
7
+ constructor(httpRequest: IHttpRequest);
8
+ deleteByDirectoryId(directoryId: string): Promise<FiadoApiResponse<{
9
+ deletedCount: number;
10
+ }>>;
11
+ }
12
+ export {};
@@ -0,0 +1,32 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { inject, injectable } from "inversify";
14
+ import dotenv from 'dotenv';
15
+ dotenv.config();
16
+ let PresenceWebsocketApi = class PresenceWebsocketApi {
17
+ httpRequest;
18
+ baseUrl = process.env.PRESENCE_WEBSOCKET_LAMBDA_URL || "";
19
+ constructor(httpRequest) {
20
+ this.httpRequest = httpRequest;
21
+ }
22
+ async deleteByDirectoryId(directoryId) {
23
+ const url = `${this.baseUrl}private/directory/${directoryId}`;
24
+ return await this.httpRequest.delete(url);
25
+ }
26
+ };
27
+ PresenceWebsocketApi = __decorate([
28
+ injectable(),
29
+ __param(0, inject("IHttpRequest")),
30
+ __metadata("design:paramtypes", [Object])
31
+ ], PresenceWebsocketApi);
32
+ export { PresenceWebsocketApi };
@@ -0,0 +1,2 @@
1
+ export * from './interfaces/IPresenceWebsocketApi.js';
2
+ export * from './PresenceWebsocketApi.js';
@@ -0,0 +1,2 @@
1
+ export * from './interfaces/IPresenceWebsocketApi.js';
2
+ export * from './PresenceWebsocketApi.js';
@@ -0,0 +1,15 @@
1
+ type FiadoApiResponse<T> = import("@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse.js").default<T>;
2
+ /**
3
+ * Interfaz para el servicio Presence Websocket (presence-websocket).
4
+ */
5
+ export interface IPresenceWebsocketApi {
6
+ /**
7
+ * Borra en cascada los registros de presencia asociados a un directoryId.
8
+ * @param directoryId ID del directorio.
9
+ * @throws {Error} Lanza un error si los parámetros de entrada son inválidos.
10
+ */
11
+ deleteByDirectoryId(directoryId: string): Promise<FiadoApiResponse<{
12
+ deletedCount: number;
13
+ }>>;
14
+ }
15
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/api-invoker",
3
- "version": "5.6.0",
3
+ "version": "5.8.0",
4
4
  "description": "Sirve como un puente entre diferentes funciones lambda, facilitando la comunicación entre ellas a través de invocaciones http",
5
5
  "type": "module",
6
6
  "main": "bin/index.js",
@@ -34,7 +34,7 @@
34
34
  "@fiado/gateway-adapter": "^3.9.0",
35
35
  "@fiado/http-client": "^2.0.1",
36
36
  "@fiado/logger": "^1.1.3",
37
- "@fiado/type-kit": "^3.225.0",
37
+ "@fiado/type-kit": "^3.228.0",
38
38
  "dotenv": "^16.4.7"
39
39
  },
40
40
  "peerDependencies": {
@@ -99,14 +99,6 @@ export class IdentityApi implements IIdentityApi {
99
99
  return await this.httpRequest.get(url);
100
100
  }
101
101
 
102
- async privateGetPeopleSelfie(directoryId: string): Promise<LegacyApiResponse<PeopleSelfieResponse>> {
103
- if (!directoryId) {
104
- throw new Error("Directory ID is required.")
105
- }
106
- const url = `${this.baseUrl}identities/private/people/${encodeURIComponent(directoryId)}/selfie`;
107
- return await this.httpRequest.get<LegacyApiResponse<PeopleSelfieResponse>>(url);
108
- }
109
-
110
102
  // ── Gemelos PRIVATE de los endpoints de agentes (proxy RBAC v2, DEC-PROT-011) ──
111
103
  // Retornan el ENVELOPE legacy completo (httpRequest devuelve response.data = el body de identity),
112
104
  // para que el proxy /v2 de people-business lo re-emita campo por campo (drop-in, sin doble-wrap).
@@ -160,4 +152,12 @@ export class IdentityApi implements IIdentityApi {
160
152
  const url = `${this.baseUrl}identities/private/agents/people/${directoryId}`;
161
153
  return await this.httpRequest.put<LegacyApiResponse<unknown>>(url, data);
162
154
  }
155
+
156
+ async privateGetPeopleSelfie(directoryId: string): Promise<LegacyApiResponse<PeopleSelfieResponse>> {
157
+ if (!directoryId) {
158
+ throw new Error('Directory ID is required.');
159
+ }
160
+ const url = `${this.baseUrl}identities/private/people/${encodeURIComponent(directoryId)}/selfie`;
161
+ return await this.httpRequest.get<LegacyApiResponse<PeopleSelfieResponse>>(url);
162
+ }
163
163
  }
@@ -49,20 +49,6 @@ export interface IIdentityApi {
49
49
  */
50
50
  getUserDocuments(directoryId: string): Promise<any>
51
51
 
52
- /**
53
- * Selfie guardada del usuario: devuelve una URL firmada temporal (no la imagen).
54
- *
55
- * Pensado para el facematch de Metamap contra la merchant database: la `url` se pasa a
56
- * `IMetamapConnectorApi.buildFacematchSignature` para obtener el `userPhotoLinkHash`, y el par
57
- * va en el `metadata` de la verificación con `customInput: true`. El presigned vence
58
- * (`expiresInSeconds`), así que la firma y el disparo del facematch van dentro de esa ventana.
59
- *
60
- * Devuelve el envelope legacy completo porque el resultado se discrimina por `code`, no por
61
- * status: `PROCESS_OK` con la selfie, `SELFIE_NOT_FOUND` si el usuario tiene cuenta pero no hay
62
- * imagen (el toolkit lo emite como HTTP 200). Sin cuenta, el endpoint responde 401 `NO_ACCOUNT`.
63
- */
64
- privateGetPeopleSelfie(directoryId: string): Promise<LegacyApiResponse<PeopleSelfieResponse>>
65
-
66
52
  // ── Gemelos PRIVATE de los endpoints de agentes (proxy RBAC v2, DEC-PROT-011) ──
67
53
  // Devuelven el ENVELOPE legacy completo (LegacyApiResponse) tal como lo emite identity,
68
54
  // para que el proxy /v2 de people-business lo re-emita campo por campo (drop-in exacto, sin doble-wrap).
@@ -78,4 +64,6 @@ export interface IIdentityApi {
78
64
  privateSearchPeople(fullName: string): Promise<LegacyApiResponse<PeopleResponse[]>>;
79
65
  /** Gemelo private de editar persona (PUT sin /selfverified). */
80
66
  privateUpdatePeople(directoryId: string, data: PeopleUpdateRequest): Promise<LegacyApiResponse<unknown>>;
67
+ /** Selfie del KYC del usuario: URL presignado de S3 (el userPhotoLink del facematch) + vigencia. */
68
+ privateGetPeopleSelfie(directoryId: string): Promise<LegacyApiResponse<PeopleSelfieResponse>>;
81
69
  }