@fiado/api-invoker 5.110.0 → 5.112.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.
@@ -1,6 +1,6 @@
1
1
  import type { IHttpRequest } from "@fiado/http-client";
2
2
  import { ApiGatewayResponse } from "@fiado/gateway-adapter";
3
- import { CreateUserRequest, CreateUserResponse, UpdateUserAttributesRequest, UserActionRequest, ResendInvitationRequest, SetUserPasswordRequest, UserDetailResponse, AuthEventsRequest, AuthEventResponse, InitiateAuthRequest, InitiateAuthResponse, RespondToChallengeRequest, RespondToChallengeResponse, RefreshTokensRequest, RefreshTokensResponse, ForgotPasswordRequest, ConfirmForgotPasswordRequest, ResendConfirmationRequest, ChangePasswordRequest, TotpBeginRequest, TotpBeginResponse, TotpVerifyRequest, MfaVerifyResponse, SetMfaPreferenceRequest, MfaResetRequest, UpdateEmailRequest, VerifyEmailRequest, UpdateProfileRequest, CreatePoolRequest, CreatePoolResponse, CreatePoolClientRequest, CreatePoolClientResponse, HealthcheckResponse, VerifyPasswordRequest, VerifyPasswordResponse, IntrospectRequest, IntrospectResponse } from "@fiado/type-kit/bin/cognitoBackofficeConnector/index.js";
3
+ import { CreateUserRequest, CreateUserResponse, UpdateUserAttributesRequest, UserActionRequest, ResendInvitationRequest, SetUserPasswordRequest, UserDetailResponse, AuthEventsRequest, AuthEventResponse, InitiateAuthRequest, InitiateAuthResponse, RespondToChallengeRequest, RespondToChallengeResponse, RefreshTokensRequest, RefreshTokensResponse, ForgotPasswordRequest, ConfirmForgotPasswordRequest, ResendConfirmationRequest, ChangePasswordRequest, TotpBeginRequest, TotpBeginResponse, TotpVerifyRequest, MfaVerifyResponse, SetMfaPreferenceRequest, MfaResetRequest, UpdateEmailRequest, VerifyEmailRequest, UpdateProfileRequest, CreatePoolRequest, CreatePoolResponse, CreatePoolClientRequest, CreatePoolClientResponse, HealthcheckResponse, VerifyPasswordRequest, VerifyPasswordResponse, AuthStartLoginRequest, AuthStartLoginResponse, IntrospectRequest, IntrospectResponse } from "@fiado/type-kit/bin/cognitoBackofficeConnector/index.js";
4
4
  import { ICognitoBackofficeConnectorApi } from "./interfaces/ICognitoBackofficeConnectorApi.js";
5
5
  /**
6
6
  * Publisher HTTP del lambda `cognito-backoffice-connector` (componente 05 SureKeep Fase 0).
@@ -40,6 +40,7 @@ export default class CognitoBackofficeConnectorApi implements ICognitoBackoffice
40
40
  resetUserMfa(cognitoSub: string, input: MfaResetRequest): Promise<ApiGatewayResponse<void>>;
41
41
  authInitiate(input: InitiateAuthRequest): Promise<ApiGatewayResponse<InitiateAuthResponse>>;
42
42
  authVerifyPassword(input: VerifyPasswordRequest): Promise<ApiGatewayResponse<VerifyPasswordResponse>>;
43
+ authStartLogin(input: AuthStartLoginRequest): Promise<ApiGatewayResponse<AuthStartLoginResponse>>;
43
44
  introspect(input: IntrospectRequest): Promise<ApiGatewayResponse<IntrospectResponse>>;
44
45
  authRespondChallenge(input: RespondToChallengeRequest): Promise<ApiGatewayResponse<RespondToChallengeResponse>>;
45
46
  authRefreshTokens(input: RefreshTokensRequest): Promise<ApiGatewayResponse<RefreshTokensResponse>>;
@@ -97,6 +97,10 @@ let CognitoBackofficeConnectorApi = class CognitoBackofficeConnectorApi {
97
97
  const url = `${this.baseUrl}/auth/verify-password`;
98
98
  return await this.httpRequest.post(url, input);
99
99
  }
100
+ async authStartLogin(input) {
101
+ const url = `${this.baseUrl}/auth/start-login`;
102
+ return await this.httpRequest.post(url, input);
103
+ }
100
104
  async introspect(input) {
101
105
  const url = `${this.baseUrl}/auth/introspect`;
102
106
  return await this.httpRequest.post(url, input);
@@ -1,5 +1,5 @@
1
1
  import { ApiGatewayResponse } from "@fiado/gateway-adapter";
2
- import { CreateUserRequest, CreateUserResponse, UpdateUserAttributesRequest, UserActionRequest, ResendInvitationRequest, SetUserPasswordRequest, UserDetailResponse, AuthEventsRequest, AuthEventResponse, InitiateAuthRequest, InitiateAuthResponse, RespondToChallengeRequest, RespondToChallengeResponse, RefreshTokensRequest, RefreshTokensResponse, ForgotPasswordRequest, ConfirmForgotPasswordRequest, ResendConfirmationRequest, ChangePasswordRequest, TotpBeginRequest, TotpBeginResponse, TotpVerifyRequest, MfaVerifyResponse, SetMfaPreferenceRequest, MfaResetRequest, UpdateEmailRequest, VerifyEmailRequest, UpdateProfileRequest, CreatePoolRequest, CreatePoolResponse, CreatePoolClientRequest, CreatePoolClientResponse, HealthcheckResponse, VerifyPasswordRequest, VerifyPasswordResponse, IntrospectRequest, IntrospectResponse } from "@fiado/type-kit/bin/cognitoBackofficeConnector/index.js";
2
+ import { CreateUserRequest, CreateUserResponse, UpdateUserAttributesRequest, UserActionRequest, ResendInvitationRequest, SetUserPasswordRequest, UserDetailResponse, AuthEventsRequest, AuthEventResponse, InitiateAuthRequest, InitiateAuthResponse, RespondToChallengeRequest, RespondToChallengeResponse, RefreshTokensRequest, RefreshTokensResponse, ForgotPasswordRequest, ConfirmForgotPasswordRequest, ResendConfirmationRequest, ChangePasswordRequest, TotpBeginRequest, TotpBeginResponse, TotpVerifyRequest, MfaVerifyResponse, SetMfaPreferenceRequest, MfaResetRequest, UpdateEmailRequest, VerifyEmailRequest, UpdateProfileRequest, CreatePoolRequest, CreatePoolResponse, CreatePoolClientRequest, CreatePoolClientResponse, HealthcheckResponse, VerifyPasswordRequest, VerifyPasswordResponse, AuthStartLoginRequest, AuthStartLoginResponse, IntrospectRequest, IntrospectResponse } from "@fiado/type-kit/bin/cognitoBackofficeConnector/index.js";
3
3
  /**
4
4
  * Contrato del publisher HTTP del lambda `cognito-backoffice-connector` (componente 05 SureKeep Fase 0).
5
5
  *
@@ -58,6 +58,14 @@ export interface ICognitoBackofficeConnectorApi {
58
58
  * solo un veredicto `{ valid }`. El caller (rbac) NO conoce el mecanismo.
59
59
  */
60
60
  authVerifyPassword(input: VerifyPasswordRequest): Promise<ApiGatewayResponse<VerifyPasswordResponse>>;
61
+ /**
62
+ * POST /auth/start-login — login de un solo flujo (SRP dentro de CUSTOM_AUTH).
63
+ * El connector hace InitiateAuth(CUSTOM_AUTH, SRP_A) y responde PASSWORD_VERIFIER
64
+ * firmado en una sola operacion; la contraseña nunca viaja en claro. Devuelve
65
+ * tokens (2FA apagado) o el challenge pendiente (NEW_PASSWORD_REQUIRED / el
66
+ * CUSTOM_CHALLENGE del 2do factor). El caller (rbac) decide por que rama sigue.
67
+ */
68
+ authStartLogin(input: AuthStartLoginRequest): Promise<ApiGatewayResponse<AuthStartLoginResponse>>;
61
69
  /**
62
70
  * POST /auth/introspect — valida un token (firma + exp + iss + client_id +
63
71
  * token_use) y devuelve `{ valid, cognitoSub?, reason? }`. El connector es
@@ -1,6 +1,7 @@
1
1
  import type { IHttpRequest } from "@fiado/http-client";
2
2
  import { StandardResponse } from "@fiado/gateway-adapter";
3
- import type { GetStoreStockCatalogResponse, HoldStockRequest, HoldStockResponse, InventoryLensQuery, InventoryLensResponse, ReleaseStockRequest, ReleaseStockResponse, RenewReservationsRequest, RenewReservationsResponse, ReserveStockRequest, ReserveStockResponse, ReturnStockRequest, ReturnStockResponse, SellStockRequest, SellStockResponse, SuggestPiecesQuery, SuggestPiecesResponse, SyncInventoryRequest, SyncInventoryResponse, ValidateProductResponse } from "@fiado/type-kit/bin/retailCatalog/index.js";
3
+ import type { GetStoreStockCatalogResponse, HoldStockRequest, HoldStockResponse, InventoryLensQuery, InventoryLensResponse, ReleaseStockRequest, ReleaseStockResponse, RenewReservationsRequest, RenewReservationsResponse, ReserveStockRequest, ReserveStockResponse, ReturnStockRequest, ReturnStockResponse, SellStockRequest, SellStockResponse, SuggestPiecesQuery, SuggestPiecesResponse, SyncInventoryRequest, SyncInventoryResponse, ValidateProductResponse, StoreCatalogItem as StockCatalogItem } from "@fiado/type-kit/bin/retailCatalog/index.js";
4
+ import type { PaginatedResult } from "@fiado/type-kit/bin/retailOrg/index.js";
4
5
  import type { ApplyInventoryEventRequest, ApplyInventoryEventResponse, ApplyProductEventRequest, ApplyProductEventResponse } from "@fiado/type-kit/bin/retailIntegration/index.js";
5
6
  import { IRetailCatalogBusinessApi, ProductsByRetailersResponse, ReleaseReservationBody, ReserveInventoryBody, ReserveInventoryResult, SellInventoryBody, StoreCatalogItem } from "./interfaces/IRetailCatalogBusinessApi.js";
6
7
  /**
@@ -39,6 +40,10 @@ export default class RetailCatalogBusinessApi implements IRetailCatalogBusinessA
39
40
  returnStock(storeId: string, body: ReturnStockRequest, tenantId: string): Promise<StandardResponse<ReturnStockResponse>>;
40
41
  syncInventory(retailerId: string, body: SyncInventoryRequest, tenantId: string): Promise<StandardResponse<SyncInventoryResponse>>;
41
42
  getStoreStockCatalog(storeId: string, tenantId: string): Promise<StandardResponse<GetStoreStockCatalogResponse>>;
43
+ listStoreStockCatalogPage(storeId: string, tenantId: string, page?: {
44
+ limit?: number;
45
+ nextToken?: string;
46
+ }): Promise<StandardResponse<PaginatedResult<StockCatalogItem>>>;
42
47
  getInventoryLens(tenantId: string, retailerId: string, query: InventoryLensQuery): Promise<StandardResponse<InventoryLensResponse>>;
43
48
  privateApplyProductEvent(request: ApplyProductEventRequest): Promise<StandardResponse<ApplyProductEventResponse>>;
44
49
  privateApplyInventoryEvent(request: ApplyInventoryEventRequest): Promise<StandardResponse<ApplyInventoryEventResponse>>;
@@ -107,6 +107,14 @@ let RetailCatalogBusinessApi = class RetailCatalogBusinessApi {
107
107
  async getStoreStockCatalog(storeId, tenantId) {
108
108
  return await this.httpRequest.get(this.storeUrl(storeId, "stock-catalog", tenantId));
109
109
  }
110
+ async listStoreStockCatalogPage(storeId, tenantId, page = {}) {
111
+ const extra = {};
112
+ if (page.limit !== undefined)
113
+ extra.limit = String(page.limit);
114
+ if (page.nextToken)
115
+ extra.nextToken = page.nextToken;
116
+ return await this.httpRequest.get(this.storeUrl(storeId, "stock-catalog/page", tenantId, extra));
117
+ }
110
118
  async getInventoryLens(tenantId, retailerId, query) {
111
119
  const params = new URLSearchParams({ tenantId, retailerId, filter: query.filter });
112
120
  if (query.period)
@@ -1,5 +1,6 @@
1
1
  import { StandardResponse } from "@fiado/gateway-adapter";
2
- import type { GetStoreStockCatalogResponse, HoldStockRequest, HoldStockResponse, InventoryLensQuery, InventoryLensResponse, MdmLockModeEnum, MdmProviderEnum, ReleaseStockRequest, ReleaseStockResponse, RenewReservationsRequest, RenewReservationsResponse, ReserveStockRequest, ReserveStockResponse, ReturnStockRequest, ReturnStockResponse, SellStockRequest, SellStockResponse, SuggestPiecesQuery, SuggestPiecesResponse, SyncInventoryRequest, SyncInventoryResponse, ValidateProductResponse } from "@fiado/type-kit/bin/retailCatalog/index.js";
2
+ import type { GetStoreStockCatalogResponse, HoldStockRequest, HoldStockResponse, InventoryLensQuery, InventoryLensResponse, MdmLockModeEnum, MdmProviderEnum, ReleaseStockRequest, ReleaseStockResponse, RenewReservationsRequest, RenewReservationsResponse, ReserveStockRequest, ReserveStockResponse, ReturnStockRequest, ReturnStockResponse, SellStockRequest, SellStockResponse, SuggestPiecesQuery, SuggestPiecesResponse, SyncInventoryRequest, StoreCatalogItem as StockCatalogItem, SyncInventoryResponse, ValidateProductResponse } from "@fiado/type-kit/bin/retailCatalog/index.js";
3
+ import type { PaginatedResult } from "@fiado/type-kit/bin/retailOrg/index.js";
3
4
  import type { ApplyInventoryEventRequest, ApplyInventoryEventResponse, ApplyProductEventRequest, ApplyProductEventResponse } from "@fiado/type-kit/bin/retailIntegration/index.js";
4
5
  /**
5
6
  * Contrato del publisher HTTP del lambda `retail-catalog-business` (SureKeep Fase 1, pista Retail)
@@ -174,6 +175,11 @@ export interface IRetailCatalogBusinessApi {
174
175
  syncInventory(retailerId: string, body: SyncInventoryRequest, tenantId: string): Promise<StandardResponse<SyncInventoryResponse>>;
175
176
  /** GET `/private/stores/{storeId}/stock-catalog` — catálogo vendible de la tienda, una fila por SKU. */
176
177
  getStoreStockCatalog(storeId: string, tenantId: string): Promise<StandardResponse<GetStoreStockCatalogResponse>>;
178
+ /** GET `/private/stores/{storeId}/stock-catalog/page` — el mismo catálogo paginado con cursor opaco (`nextToken`). */
179
+ listStoreStockCatalogPage(storeId: string, tenantId: string, page?: {
180
+ limit?: number;
181
+ nextToken?: string;
182
+ }): Promise<StandardResponse<PaginatedResult<StockCatalogItem>>>;
177
183
  /** GET `/private/inventory/lens` — lente de inventario del retailer; `period` y `storeId` solo aplican a `filter=list`. */
178
184
  getInventoryLens(tenantId: string, retailerId: string, query: InventoryLensQuery): Promise<StandardResponse<InventoryLensResponse>>;
179
185
  /** `POST /private/integration/product-events?tenantId=` — aplica un evento de producto del retailer. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/api-invoker",
3
- "version": "5.110.0",
3
+ "version": "5.112.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",
@@ -31,10 +31,10 @@
31
31
  "license": "ISC",
32
32
  "dependencies": {
33
33
  "@aws-sdk/client-sqs": "^3.919.0",
34
- "@fiado/gateway-adapter": "^3.9.0",
34
+ "@fiado/gateway-adapter": "^3.14.0",
35
35
  "@fiado/http-client": "^2.0.1",
36
36
  "@fiado/logger": "^1.1.3",
37
- "@fiado/type-kit": "^3.497.0",
37
+ "@fiado/type-kit": "^3.500.0",
38
38
  "dotenv": "^16.4.7"
39
39
  },
40
40
  "peerDependencies": {
@@ -38,6 +38,8 @@ import {
38
38
  HealthcheckResponse,
39
39
  VerifyPasswordRequest,
40
40
  VerifyPasswordResponse,
41
+ AuthStartLoginRequest,
42
+ AuthStartLoginResponse,
41
43
  IntrospectRequest,
42
44
  IntrospectResponse,
43
45
  } from "@fiado/type-kit/bin/cognitoBackofficeConnector/index.js";
@@ -190,6 +192,13 @@ export default class CognitoBackofficeConnectorApi implements ICognitoBackoffice
190
192
  return await this.httpRequest.post(url, input);
191
193
  }
192
194
 
195
+ async authStartLogin(
196
+ input: AuthStartLoginRequest,
197
+ ): Promise<ApiGatewayResponse<AuthStartLoginResponse>> {
198
+ const url = `${this.baseUrl}/auth/start-login`;
199
+ return await this.httpRequest.post(url, input);
200
+ }
201
+
193
202
  async introspect(
194
203
  input: IntrospectRequest,
195
204
  ): Promise<ApiGatewayResponse<IntrospectResponse>> {
@@ -36,6 +36,8 @@ import {
36
36
  HealthcheckResponse,
37
37
  VerifyPasswordRequest,
38
38
  VerifyPasswordResponse,
39
+ AuthStartLoginRequest,
40
+ AuthStartLoginResponse,
39
41
  IntrospectRequest,
40
42
  IntrospectResponse,
41
43
  } from "@fiado/type-kit/bin/cognitoBackofficeConnector/index.js";
@@ -141,6 +143,17 @@ export interface ICognitoBackofficeConnectorApi {
141
143
  input: VerifyPasswordRequest,
142
144
  ): Promise<ApiGatewayResponse<VerifyPasswordResponse>>;
143
145
 
146
+ /**
147
+ * POST /auth/start-login — login de un solo flujo (SRP dentro de CUSTOM_AUTH).
148
+ * El connector hace InitiateAuth(CUSTOM_AUTH, SRP_A) y responde PASSWORD_VERIFIER
149
+ * firmado en una sola operacion; la contraseña nunca viaja en claro. Devuelve
150
+ * tokens (2FA apagado) o el challenge pendiente (NEW_PASSWORD_REQUIRED / el
151
+ * CUSTOM_CHALLENGE del 2do factor). El caller (rbac) decide por que rama sigue.
152
+ */
153
+ authStartLogin(
154
+ input: AuthStartLoginRequest,
155
+ ): Promise<ApiGatewayResponse<AuthStartLoginResponse>>;
156
+
144
157
  /**
145
158
  * POST /auth/introspect — valida un token (firma + exp + iss + client_id +
146
159
  * token_use) y devuelve `{ valid, cognitoSub?, reason? }`. El connector es
@@ -22,7 +22,9 @@ import type {
22
22
  SyncInventoryRequest,
23
23
  SyncInventoryResponse,
24
24
  ValidateProductResponse,
25
+ StoreCatalogItem as StockCatalogItem,
25
26
  } from "@fiado/type-kit/bin/retailCatalog/index.js";
27
+ import type { PaginatedResult } from "@fiado/type-kit/bin/retailOrg/index.js";
26
28
  import type {
27
29
  ApplyInventoryEventRequest,
28
30
  ApplyInventoryEventResponse,
@@ -208,6 +210,17 @@ export default class RetailCatalogBusinessApi implements IRetailCatalogBusinessA
208
210
  return await this.httpRequest.get(this.storeUrl(storeId, "stock-catalog", tenantId));
209
211
  }
210
212
 
213
+ async listStoreStockCatalogPage(
214
+ storeId: string,
215
+ tenantId: string,
216
+ page: { limit?: number; nextToken?: string } = {},
217
+ ): Promise<StandardResponse<PaginatedResult<StockCatalogItem>>> {
218
+ const extra: Record<string, string> = {};
219
+ if (page.limit !== undefined) extra.limit = String(page.limit);
220
+ if (page.nextToken) extra.nextToken = page.nextToken;
221
+ return await this.httpRequest.get(this.storeUrl(storeId, "stock-catalog/page", tenantId, extra));
222
+ }
223
+
211
224
  async getInventoryLens(
212
225
  tenantId: string,
213
226
  retailerId: string,
@@ -20,9 +20,11 @@ import type {
20
20
  SuggestPiecesQuery,
21
21
  SuggestPiecesResponse,
22
22
  SyncInventoryRequest,
23
+ StoreCatalogItem as StockCatalogItem,
23
24
  SyncInventoryResponse,
24
25
  ValidateProductResponse,
25
26
  } from "@fiado/type-kit/bin/retailCatalog/index.js";
27
+ import type { PaginatedResult } from "@fiado/type-kit/bin/retailOrg/index.js";
26
28
  import type {
27
29
  ApplyInventoryEventRequest,
28
30
  ApplyInventoryEventResponse,
@@ -268,6 +270,13 @@ export interface IRetailCatalogBusinessApi {
268
270
  /** GET `/private/stores/{storeId}/stock-catalog` — catálogo vendible de la tienda, una fila por SKU. */
269
271
  getStoreStockCatalog(storeId: string, tenantId: string): Promise<StandardResponse<GetStoreStockCatalogResponse>>;
270
272
 
273
+ /** GET `/private/stores/{storeId}/stock-catalog/page` — el mismo catálogo paginado con cursor opaco (`nextToken`). */
274
+ listStoreStockCatalogPage(
275
+ storeId: string,
276
+ tenantId: string,
277
+ page?: { limit?: number; nextToken?: string },
278
+ ): Promise<StandardResponse<PaginatedResult<StockCatalogItem>>>;
279
+
271
280
  /** GET `/private/inventory/lens` — lente de inventario del retailer; `period` y `storeId` solo aplican a `filter=list`. */
272
281
  getInventoryLens(
273
282
  tenantId: string,