@nizza/core 0.8.0 → 0.8.1-beta.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 (40) hide show
  1. package/README.md +1 -1
  2. package/dist/environments/environment.d.ts.map +1 -1
  3. package/dist/environments/environment.prod.d.ts.map +1 -1
  4. package/dist/environments/types.d.ts +0 -1
  5. package/dist/environments/types.d.ts.map +1 -1
  6. package/dist/index.mjs +28916 -28766
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/lib/accounts/core/infrastructure/repositories/rest-account-plan.repository.d.ts.map +1 -1
  9. package/dist/lib/accounts/core/infrastructure/repositories/rest-private-account.repository.d.ts.map +1 -1
  10. package/dist/lib/accounts/core/infrastructure/repositories/rest-public-account.repository.d.ts.map +1 -1
  11. package/dist/lib/api-client/client.d.ts +192 -0
  12. package/dist/lib/api-client/client.d.ts.map +1 -0
  13. package/dist/lib/api-client/errors.d.ts +65 -0
  14. package/dist/lib/api-client/errors.d.ts.map +1 -0
  15. package/dist/lib/api-client/index.d.ts +4 -0
  16. package/dist/lib/api-client/index.d.ts.map +1 -0
  17. package/dist/lib/api-client/types.d.ts +132 -0
  18. package/dist/lib/api-client/types.d.ts.map +1 -0
  19. package/dist/lib/api-client/utils.d.ts +17 -0
  20. package/dist/lib/api-client/utils.d.ts.map +1 -0
  21. package/dist/lib/constants/products.d.ts +0 -1
  22. package/dist/lib/constants/products.d.ts.map +1 -1
  23. package/dist/lib/index.d.ts +1 -0
  24. package/dist/lib/index.d.ts.map +1 -1
  25. package/dist/lib/ivs/socket/core/infrastructure/graphql-event-chat-room.repository.d.ts +0 -2
  26. package/dist/lib/ivs/socket/core/infrastructure/graphql-event-chat-room.repository.d.ts.map +1 -1
  27. package/dist/lib/logger/constants.d.ts.map +1 -1
  28. package/dist/lib/logger/core/loggers/http.logger.d.ts.map +1 -1
  29. package/dist/lib/types/api-graphql-types.d.ts +77 -24
  30. package/dist/lib/types/api-graphql-types.d.ts.map +1 -1
  31. package/dist/lib/types/nizza/chat.d.ts.map +1 -1
  32. package/dist/lib/utils/index.d.ts +1 -1
  33. package/dist/lib/utils/index.d.ts.map +1 -1
  34. package/dist/lib/utils/nz-api-client.d.ts +7 -0
  35. package/dist/lib/utils/nz-api-client.d.ts.map +1 -0
  36. package/package.json +1 -1
  37. package/dist/index.cjs +0 -221
  38. package/dist/index.cjs.map +0 -1
  39. package/dist/lib/utils/customFetch.d.ts +0 -30
  40. package/dist/lib/utils/customFetch.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"rest-account-plan.repository.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/accounts/core/infrastructure/repositories/rest-account-plan.repository.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,qBAAqB,EAErB,SAAS,EACV,MAAM,cAAc,CAAC;AAItB,qBAAa,yBAA0B,YAAW,qBAAqB;IAC/D,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAa3D,MAAM,CAAC,KAAK,EAAE,SAAS;CAY9B"}
1
+ {"version":3,"file":"rest-account-plan.repository.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/accounts/core/infrastructure/repositories/rest-account-plan.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EAErB,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,qBAAa,yBAA0B,YAAW,qBAAqB;IAC/D,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAU3D,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAW9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"rest-private-account.repository.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/accounts/core/infrastructure/repositories/rest-private-account.repository.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAM7E,qBAAa,4BAA6B,YAAW,wBAAwB;IACrE,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;CAWhE"}
1
+ {"version":3,"file":"rest-private-account.repository.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/accounts/core/infrastructure/repositories/rest-private-account.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAI7E,qBAAa,4BAA6B,YAAW,wBAAwB;IACrE,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;CAShE"}
@@ -1 +1 @@
1
- {"version":3,"file":"rest-public-account.repository.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/accounts/core/infrastructure/repositories/rest-public-account.repository.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAMrE,qBAAa,2BAA4B,YAAW,uBAAuB;IACnE,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;CAUzD"}
1
+ {"version":3,"file":"rest-public-account.repository.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/accounts/core/infrastructure/repositories/rest-public-account.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAIrE,qBAAa,2BAA4B,YAAW,uBAAuB;IACnE,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;CAQzD"}
@@ -0,0 +1,192 @@
1
+ import { Variables as LibGraphQLVariables } from 'graphql-request';
2
+ import { ApiClientConfig, GraphQLDocument, GraphQLRequestOptions, RawApiResponse, RestRequestConfig, StandardRestResponse } from './types';
3
+ /**
4
+ * ApiClient is a unified HTTP client for making REST and GraphQL requests.
5
+ * It provides a consistent, library-agnostic interface, robust error handling,
6
+ * and configurable options for authentication, timeouts, and request cancellation.
7
+ *
8
+ * ## How to Use ApiClient
9
+ *
10
+ * 1. **Prerequisites:**
11
+ * * Ensure you have an implementation of the `Logger` interface (e.g., from `../logger`).
12
+ * * Define a `GetAuthTokenFn` function if you need authenticated requests.
13
+ *
14
+ * 2. **Import necessary items:**
15
+ * ```typescript
16
+ * import {
17
+ * ApiClient,
18
+ * type ApiClientConfig,
19
+ * // ... other types and errors
20
+ * } from './api-client'; // Adjust path to your api-client module
21
+ * import type { Logger } from '../logger'; // Adjust path
22
+ * // import { yourGetAuthTokenImplementation } from './auth';
23
+ * // import { myLoggerInstance } from './logging';
24
+ * ```
25
+ *
26
+ * 3. **Define `getAuthToken` function (if using secure requests):**
27
+ * ```typescript
28
+ * const getMyAuthToken: GetAuthTokenFn = async () => {
29
+ * // Example: return (await Auth.currentSession()).getIdToken().getJwtToken();
30
+ * return 'your-actual-jwt-token-or-null';
31
+ * };
32
+ * ```
33
+ *
34
+ * 4. **Create an `ApiClientConfig`:**
35
+ * ```typescript
36
+ * const apiClientConfig: ApiClientConfig = {
37
+ * restApiBaseUrl: '[https://api.example.com/v1](https://api.example.com/v1)', // Required
38
+ * graphqlApiBaseUrl: '[https://api.example.com/graphql](https://api.example.com/graphql)', // Required
39
+ * logger: myLoggerInstance, // Required
40
+ * defaultTimeout: 20000, // Optional
41
+ * getAuthToken: getMyAuthToken, // Optional, for secure requests
42
+ * };
43
+ * ```
44
+ *
45
+ * 5. **Instantiate `ApiClient`:**
46
+ * ```typescript
47
+ * const apiClient = new ApiClient(apiClientConfig);
48
+ * ```
49
+ * It's highly recommended to create a single instance and reuse it.
50
+ *
51
+ * 6. **Making REST Requests (`rest` method):**
52
+ * See the JSDoc for the `rest` method for detailed examples on object responses,
53
+ * array/primitive responses (using `_rawData`), and raw responses.
54
+ *
55
+ * 7. **Making GraphQL Requests (`graphql` method):**
56
+ * See the JSDoc for the `graphql` method for detailed examples.
57
+ *
58
+ * ## Error Handling
59
+ * The `ApiClient` throws custom error types extending `ApiError` (e.g., `RestApiError`,
60
+ * `GraphQLApiError`, `TimeoutError`, `NetworkError`). Use `instanceof` for granular
61
+ * error handling.
62
+ *
63
+ * ## `_rawData` Field in REST Responses
64
+ * When `raw: false` and the API response body isn't a plain object, the `_rawData`
65
+ * field in the returned object holds the original parsed data.
66
+ */
67
+ export declare class ApiClient {
68
+ private readonly logger;
69
+ private readonly defaultTimeout;
70
+ private readonly getAuthTokenFn;
71
+ private readonly axiosInstance;
72
+ private readonly graphqlClient;
73
+ readonly restBaseUrl: string;
74
+ readonly graphqlApiBaseUrl: string;
75
+ /**
76
+ * Creates an instance of ApiClient.
77
+ * @param {ApiClientConfig} config - Configuration for the ApiClient.
78
+ * `restApiBaseUrl`, `graphqlApiBaseUrl`, and `logger` are required.
79
+ * @throws {Error} If required configuration properties are missing.
80
+ */
81
+ constructor(config: ApiClientConfig);
82
+ /**
83
+ * Performs a REST request and returns a library-agnostic raw response.
84
+ * Use this when you need access to status codes, headers, or non-JSON response bodies.
85
+ *
86
+ * @template TData The expected type of the raw response body (e.g., string, ArrayBuffer).
87
+ * @param {RestRequestConfig & { raw: true }} config Configuration for the REST request, with `raw` set to true.
88
+ * @returns {Promise<RawApiResponse<TData>>} A promise resolving to a `RawApiResponse` object.
89
+ * @throws {RestApiError | TimeoutError | NetworkError | ApiError} Throws a custom API error on failure.
90
+ */
91
+ rest<TData = any>(config: RestRequestConfig & {
92
+ raw: true;
93
+ }): Promise<RawApiResponse<TData>>;
94
+ /**
95
+ * Performs a REST request and returns a processed response compatible with legacy customFetch.
96
+ * This is the default behavior.
97
+ *
98
+ * @template TData The expected type of the data in the JSON response body.
99
+ * @param {RestRequestConfig} config Configuration for the REST request. `raw` should be falsy.
100
+ * @returns {Promise<StandardRestResponse<TData>>}
101
+ * A promise resolving to an object:
102
+ * - If TData is an object: `TData` spread with `success` and `statusCode`.
103
+ * - If TData is not an object: `{ _rawData: TData, success: boolean, statusCode: number }`.
104
+ * @throws {RestApiError | TimeoutError | NetworkError | ApiError} Throws a custom API error on failure.
105
+ */
106
+ rest<TData = any>(config: RestRequestConfig & {
107
+ raw?: false | undefined;
108
+ }): Promise<StandardRestResponse<TData>>;
109
+ /**
110
+ * Performs a GraphQL request with improved type inference using TypedDocumentNode.
111
+ * If a plain string or a non-typed DocumentNode is passed, TResult (response data type)
112
+ * will default to `any` unless explicitly provided by the caller.
113
+ *
114
+ * @template TResult The expected shape of the data returned by the GraphQL query/mutation.
115
+ * This is often inferred if a TypedDocumentNode is provided as the `document`.
116
+ * @template TVars The shape of the variables object for the GraphQL query/mutation.
117
+ * This is also often inferred if a TypedDocumentNode is provided.
118
+ * @param {GraphQLDocument<TResult, TVars>} document The GraphQL query or mutation.
119
+ * Your `GraphQLDocument` type should be `string | LibGraphQLRequestDocument | TypedDocumentNode<TResult, TVars>`.
120
+ * @param {TVars} [variables] An object containing variables for the GraphQL request.
121
+ * The type should match the variables expected by the document.
122
+ * @param {GraphQLRequestOptions} [options={}] Optional configurations for this GraphQL request.
123
+ * @returns {Promise<TResult>} A promise that resolves to the typed data from the GraphQL response.
124
+ * @throws {GraphQLApiError | TimeoutError | NetworkError | ApiError} Throws a custom API error on failure.
125
+ *
126
+ * @example
127
+ * // Assuming GetUserDocument is a TypedDocumentNode<UserData, UserVars>
128
+ * // const { user } = await apiClient.graphql(GetUserDocument, { id: "123" });
129
+ * // console.log(user.name); // user and its properties are strongly typed
130
+ *
131
+ * // With a string query, explicit types are needed for TResult if not 'any'
132
+ * // const { specificField } = await apiClient.graphql<{ specificField: string }>(
133
+ * // "query { specificField }",
134
+ * // );
135
+ * // console.log(specificField);
136
+ */
137
+ graphql<TResult = any, TVars extends LibGraphQLVariables = LibGraphQLVariables>(document: GraphQLDocument<TResult, TVars>, variables?: TVars, options?: GraphQLRequestOptions): Promise<TResult>;
138
+ /**
139
+ * Executes the actual REST request using the configured Axios instance.
140
+ * @private
141
+ */
142
+ private executeRestRequest;
143
+ /**
144
+ * Processes a successful standard (non-raw) REST response into the customFetch-compatible format.
145
+ * @private
146
+ */
147
+ private processStandardRestResponse;
148
+ /**
149
+ * Handles errors from REST requests, transforming them into custom ApiError types.
150
+ * This method always throws.
151
+ * @private
152
+ * @returns {never}
153
+ */
154
+ private handleRestError;
155
+ /**
156
+ * Executes the actual GraphQL request using the configured GraphQLClient instance.
157
+ * @private
158
+ */
159
+ private executeGraphQLRequest;
160
+ /**
161
+ * Handles errors from GraphQL requests, transforming them into custom ApiError types.
162
+ * This method always throws.
163
+ * @private
164
+ * @returns {never}
165
+ */
166
+ private handleGraphQLError;
167
+ /**
168
+ * Retrieves the JWT authentication token using the injected `getAuthTokenFn`.
169
+ * @private
170
+ * @returns {Promise<string | null>} The JWT token or null if unavailable/error.
171
+ */
172
+ private getAuthToken;
173
+ /**
174
+ * Prepares request headers, primarily for authentication.
175
+ * It merges existing headers with authentication headers if `secure` is true.
176
+ * @private
177
+ * @param options Configuration for header preparation, including security flags and existing headers.
178
+ * @returns {Promise<Record<string, string>>} The prepared headers.
179
+ */
180
+ private prepareAuthHeaders;
181
+ /**
182
+ * Creates and manages a combined AbortSignal for request timeout and external cancellation.
183
+ * Uses `createCombinedSignal` utility.
184
+ * @private
185
+ * @param externalSignal An optional AbortSignal provided by the caller.
186
+ * @param requestTimeout The timeout duration for this specific request.
187
+ * @returns An object containing the `operationSignal` to be used for the request,
188
+ * and a `clearInternalTimeout` function to clear any internal timers.
189
+ */
190
+ private createAbortSignal;
191
+ }
192
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/lib/api-client/client.ts"],"names":[],"mappings":"AAOA,OAAO,EAIL,KAAK,SAAS,IAAI,mBAAmB,EACtC,MAAM,iBAAiB,CAAC;AASzB,OAAO,KAAK,EACV,eAAe,EAEf,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAGjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAEnC;;;;;OAKG;gBACS,MAAM,EAAE,eAAe;IA6CnC;;;;;;;;OAQG;IACU,IAAI,CAAC,KAAK,GAAG,GAAG,EAC3B,MAAM,EAAE,iBAAiB,GAAG;QAAE,GAAG,EAAE,IAAI,CAAA;KAAE,GACxC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAEjC;;;;;;;;;;;OAWG;IACU,IAAI,CAAC,KAAK,GAAG,GAAG,EAC3B,MAAM,EAAE,iBAAiB,GAAG;QAAE,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;KAAE,GACtD,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IA+DvC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACU,OAAO,CAClB,OAAO,GAAG,GAAG,EACb,KAAK,SAAS,mBAAmB,GAAG,mBAAmB,EAEvD,QAAQ,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,EACzC,SAAS,CAAC,EAAE,KAAK,EACjB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,OAAO,CAAC;IAiCnB;;;OAGG;YACW,kBAAkB;IAMhC;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAyBnC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAsDvB;;;OAGG;YACW,qBAAqB;IAOnC;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IA2C1B;;;;OAIG;YACW,YAAY;IAa1B;;;;;;OAMG;YACW,kBAAkB;IA0ChC;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;CAuC1B"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @file errors.ts
3
+ * @description Defines custom error classes for the ApiClient.
4
+ * These errors provide a consistent, library-agnostic way to handle issues
5
+ * arising from API requests.
6
+ */
7
+ /**
8
+ * Base class for all custom errors originating from the ApiClient.
9
+ * It includes an optional `originalError` property for debugging purposes.
10
+ */
11
+ export declare class ApiError extends Error {
12
+ /** The original error object, useful for debugging underlying issues. */
13
+ readonly originalError?: any;
14
+ /** Discriminator property to easily identify errors from this client. */
15
+ readonly isApiClientError: boolean;
16
+ constructor(message: string, originalError?: any);
17
+ }
18
+ /**
19
+ * Represents an error due to a request timeout.
20
+ */
21
+ export declare class TimeoutError extends ApiError {
22
+ constructor(message?: string, originalError?: any);
23
+ }
24
+ /**
25
+ * Represents an error due to network issues (e.g., connectivity problems).
26
+ */
27
+ export declare class NetworkError extends ApiError {
28
+ constructor(message?: string, originalError?: any);
29
+ }
30
+ /**
31
+ * Contextual information for a REST API error response.
32
+ */
33
+ export interface RestApiResponseErrorContext {
34
+ status: number;
35
+ data: any;
36
+ headers: Record<string, string | string[] | undefined>;
37
+ }
38
+ /**
39
+ * Represents an error specific to a REST API request,
40
+ * often including details from the HTTP response.
41
+ */
42
+ export declare class RestApiError extends ApiError {
43
+ readonly response?: RestApiResponseErrorContext;
44
+ constructor(message: string, response?: RestApiResponseErrorContext, originalError?: any);
45
+ }
46
+ /**
47
+ * Contextual information for a GraphQL API error response.
48
+ */
49
+ export interface GraphQLResponseErrorContext {
50
+ status?: number;
51
+ data?: any;
52
+ errors?: Array<{
53
+ message: string;
54
+ [key: string]: any;
55
+ }>;
56
+ }
57
+ /**
58
+ * Represents an error specific to a GraphQL API request,
59
+ * often including GraphQL-specific error details.
60
+ */
61
+ export declare class GraphQLApiError extends ApiError {
62
+ readonly response?: GraphQLResponseErrorContext;
63
+ constructor(message: string, response?: GraphQLResponseErrorContext, originalError?: any);
64
+ }
65
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/lib/api-client/errors.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH;;;GAGG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,yEAAyE;IACzE,SAAgB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpC,yEAAyE;IACzE,SAAgB,gBAAgB,EAAE,OAAO,CAAQ;gBAErC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG;CAOjD;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,OAAO,SAAsB,EAAE,aAAa,CAAC,EAAE,GAAG;CAG/D;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,OAAO,SAA6B,EAAE,aAAa,CAAC,EAAE,GAAG;CAGtE;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;CACxD;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,QAAQ;IACxC,SAAgB,QAAQ,CAAC,EAAE,2BAA2B,CAAC;gBAGrD,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,2BAA2B,EACtC,aAAa,CAAC,EAAE,GAAG;CAKtB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAC;CACzD;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C,SAAgB,QAAQ,CAAC,EAAE,2BAA2B,CAAC;gBAGrD,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,2BAA2B,EACtC,aAAa,CAAC,EAAE,GAAG;CAKtB"}
@@ -0,0 +1,4 @@
1
+ export * from './client';
2
+ export * from './errors';
3
+ export * from './types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/api-client/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,132 @@
1
+ import { TypedDocumentNode } from '@graphql-typed-document-node/core';
2
+ import { DocumentNode as LibGraphQLRequestDocument } from 'graphql';
3
+ import { Logger } from '../logger';
4
+ /**
5
+ * Signature for a function that retrieves an authentication token.
6
+ * @returns A Promise resolving to the token string or null if unavailable.
7
+ */
8
+ export type GetAuthTokenFn = () => Promise<string | null>;
9
+ /**
10
+ * Configuration for the ApiClient constructor.
11
+ */
12
+ export interface ApiClientConfig {
13
+ /** Base URL for REST API requests. This is a **required** field. */
14
+ restApiBaseUrl: string;
15
+ /** Base URL for GraphQL API requests. This is a **required** field. */
16
+ graphqlApiBaseUrl: string;
17
+ /** A Logger instance conforming to the Logger interface. This is a **required** field. */
18
+ logger: Logger;
19
+ /** Default timeout in milliseconds for all requests. Defaults to 30000 (30s). */
20
+ defaultTimeout?: number;
21
+ /**
22
+ * An optional function to retrieve the authentication token.
23
+ * Strongly recommended if you intend to make secure requests (`secure: true`).
24
+ * If not provided, secure calls will attempt to proceed without a token unless this function is a no-op.
25
+ */
26
+ getAuthToken?: GetAuthTokenFn;
27
+ }
28
+ /**
29
+ * Base options applicable to authenticated requests and timeout/cancellation.
30
+ */
31
+ interface BaseRequestOptions {
32
+ /** If true, the request will attempt to include an Authorization token. Defaults to false. */
33
+ secure?: boolean;
34
+ /** Account identifier, often included in a custom header (e.g., 'ls-account') if 'secure' is true. */
35
+ account?: string;
36
+ /** Request-specific timeout in milliseconds. Overrides `defaultTimeout`. */
37
+ timeout?: number;
38
+ /** An AbortSignal to allow for external cancellation of the request. */
39
+ signal?: AbortSignal;
40
+ }
41
+ /**
42
+ * Configuration for a REST request made via the `apiClient.rest()` method.
43
+ */
44
+ export interface RestRequestConfig extends BaseRequestOptions {
45
+ /**
46
+ * Relative path for the REST request (e.g., 'users/1').
47
+ * If not provided, it is assumed that path = "" but it is necessary to provide baseURL
48
+ */
49
+ path?: string;
50
+ /** Overrides the ApiClient's instance-level `restApiBaseUrl` for this single request. */
51
+ baseURL?: string;
52
+ /** HTTP method for the request. */
53
+ method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'OPTIONS' | 'HEAD';
54
+ /** Request body, typically for 'POST', 'PUT', 'PATCH' methods. */
55
+ body?: any;
56
+ /** Query parameters to be appended to the URL. */
57
+ queryParams?: Record<string, any>;
58
+ /** Custom headers for this specific request. */
59
+ headers?: Record<string, string>;
60
+ /**
61
+ * If true, returns a library-agnostic `RawApiResponse` object.
62
+ * If false (default), returns a `customFetch`-compatible structure (see `ApiClient.rest` method docs).
63
+ */
64
+ raw?: boolean;
65
+ /**
66
+ * The expected type of the response data.
67
+ * For `raw: false`, this is typically 'json'.
68
+ * For `raw: true`, common values are 'text', 'arraybuffer', 'blob', 'stream'.
69
+ * This influences how the underlying HTTP client processes the response body.
70
+ */
71
+ responseType?: 'json' | 'text' | 'arraybuffer' | 'blob' | 'stream';
72
+ }
73
+ /**
74
+ * Defines the structure for a "raw" API response.
75
+ * This is used when `raw: true` is specified in `RestRequestConfig`.
76
+ * @template TData The expected type of the raw response data.
77
+ */
78
+ export interface RawApiResponse<TData = any> {
79
+ status: number;
80
+ data: TData;
81
+ headers: Record<string, string | string[] | undefined>;
82
+ }
83
+ /**
84
+ * The structure returned by the `ApiClient.rest` method when `raw` is `false`
85
+ * and the response data from the API is not a plain JavaScript object (e.g., an array or primitive).
86
+ * In such cases, `_rawData` contains the original parsed response data.
87
+ */
88
+ export type NonObjectRestResponse<TData> = {
89
+ _rawData: TData;
90
+ success: boolean;
91
+ statusCode: number;
92
+ };
93
+ export type CustomFieldsRestResponse = {
94
+ success: boolean;
95
+ statusCode: number;
96
+ };
97
+ /**
98
+ * A utility type that evaluates to `true` if T is a plain, "spreadable" object,
99
+ * and `false` otherwise (e.g., for arrays, functions, dates, primitives).
100
+ * This is an internal helper type for StandardRestResponse.
101
+ * @template T The type to check.
102
+ */
103
+ type IsSpreadableObject<T> = T extends any[] | Date | Function ? false : T extends object ? true : false;
104
+ /**
105
+ * Represents the standard (non-raw) processed response from `ApiClient.rest`.
106
+ * It intelligently adapts its structure based on whether TData is a plain object or not.
107
+ *
108
+ * - If `TData` is a plain object, the response will be `TData & { success, statusCode }`.
109
+ * - If `TData` is an array, primitive, or other non-plain object, the response will be `NonObjectRestResponse<TData>`.
110
+ *
111
+ * @template TData The expected type of the data in the response body.
112
+ */
113
+ export type StandardRestResponse<TData> = IsSpreadableObject<TData> extends true ? TData & CustomFieldsRestResponse : NonObjectRestResponse<TData>;
114
+ /**
115
+ * Configuration options for a GraphQL request made via `apiClient.graphql()`.
116
+ */
117
+ export interface GraphQLRequestOptions extends BaseRequestOptions {
118
+ /** Custom headers for this specific GraphQL request. Can be a plain object or HeadersInit. */
119
+ headers?: Record<string, string> | HeadersInit;
120
+ }
121
+ /**
122
+ * Represents the GraphQL document, which can be a string or a parsed AST Node.
123
+ * `LibGraphQLRequestDocument` is typically `graphql.DocumentNode`.
124
+ */
125
+ export type GraphQLDocument<TResult = any, TVariables = Record<string, any>> = string | LibGraphQLRequestDocument | TypedDocumentNode<TResult, TVariables>;
126
+ /**
127
+ * Represents variables for a GraphQL request.
128
+ * It's an object where keys are variable names and values are their corresponding values.
129
+ */
130
+ export type GraphQLVariables = Record<string, any>;
131
+ export {};
132
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/api-client/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { AxiosResponse } from 'axios';
2
+ /**
3
+ * Creates a single AbortSignal that aborts when any of the provided signals abort,
4
+ * or if any of the signals are already aborted.
5
+ * Uses AbortSignal.any() if available, otherwise provides a basic fallback.
6
+ * Filters out undefined/null signals before processing.
7
+ *
8
+ * @param signals An array of AbortSignal instances (can include undefined).
9
+ * @returns A single AbortSignal, or undefined if no valid signals are provided.
10
+ */
11
+ export declare function createCombinedSignal(signals: (AbortSignal | undefined)[]): AbortSignal | undefined;
12
+ /**
13
+ * Normalizes Axios headers to the format expected by RawApiResponse.
14
+ * AxiosHeaderValue can be string, number, boolean, or null. We want string, string[], or undefined.
15
+ */
16
+ export declare function normalizeAxiosHeaders(headers: AxiosResponse['headers']): Record<string, string | string[] | undefined>;
17
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/api-client/utils.ts"],"names":[],"mappings":"AACA;;;GAGG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,CAAC,WAAW,GAAG,SAAS,CAAC,EAAE,GACnC,WAAW,GAAG,SAAS,CAmCzB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,GAChC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAmB/C"}
@@ -5,7 +5,6 @@ export declare enum NizzaVariationTypes {
5
5
  export declare enum NizzaProductRequestOriginTypes {
6
6
  VTEX = "VTEX",
7
7
  PLATFORM = "platform",
8
- CACE = "CACE",
9
8
  GLOBAL_PAGE = "globalPage",
10
9
  CUSTOMIZATION = "customization",
11
10
  FAST_STORE = "faststore",
@@ -1 +1 @@
1
- {"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../../src/lib/constants/products.ts"],"names":[],"mappings":"AAAA,oBAAY,mBAAmB;IAC7B,KAAK,UAAU;IACf,KAAK,WAAW;CACjB;AAED,oBAAY,8BAA8B;IACxC,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,WAAW,eAAe;IAC1B,aAAa,kBAAkB;IAC/B,UAAU,cAAc;IACxB,OAAO,YAAY;CACpB"}
1
+ {"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../../src/lib/constants/products.ts"],"names":[],"mappings":"AAAA,oBAAY,mBAAmB;IAC7B,KAAK,UAAU;IACf,KAAK,WAAW;CACjB;AAED,oBAAY,8BAA8B;IACxC,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,WAAW,eAAe;IAC1B,aAAa,kBAAkB;IAC/B,UAAU,cAAc;IACxB,OAAO,YAAY;CACpB"}
@@ -1,5 +1,6 @@
1
1
  export * from './accounts';
2
2
  export * from './add-to-cart';
3
+ export * from './api-client';
3
4
  export * from './clean-architecture';
4
5
  export * from './constants';
5
6
  export * from './dependency-injector';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -1,8 +1,6 @@
1
1
  import { EventChatRoomRepository, GetChatRoomInput } from '../domain';
2
2
  import { EventChatRoom } from '../domain/entities';
3
3
  export declare class GraphqlEventChatRoomRepository implements EventChatRoomRepository {
4
- private client;
5
- constructor();
6
4
  getChatRoom(input: GetChatRoomInput): Promise<EventChatRoom>;
7
5
  private propagateGraphqlErrorIfExists;
8
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-event-chat-room.repository.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/ivs/socket/core/infrastructure/graphql-event-chat-room.repository.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,uBAAuB,EAEvB,gBAAgB,EACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD,qBAAa,8BAA+B,YAAW,uBAAuB;IAC5E,OAAO,CAAC,MAAM,CAAgB;;IAMxB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAwBlE,OAAO,CAAC,6BAA6B;CAGtC"}
1
+ {"version":3,"file":"graphql-event-chat-room.repository.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/ivs/socket/core/infrastructure/graphql-event-chat-room.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,uBAAuB,EAEvB,gBAAgB,EACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,qBAAa,8BAA+B,YAAW,uBAAuB;IACtE,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAwBlE,OAAO,CAAC,6BAA6B;CAGtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/logger/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,uBAAuB,EAAE,OAAO,CAAC,gBAAgB,CAO7D,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/logger/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,uBAAuB,EAAE,OAAO,CAAC,gBAAgB,CAO7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"http.logger.d.ts","sourceRoot":"","sources":["../../../../../src/lib/logger/core/loggers/http.logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAGrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO;IAKP,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU;IAiB7C,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnC,OAAO,CAAC,aAAa;YAWP,KAAK;YA2BL,gBAAgB;YAWhB,YAAY;IAM1B,OAAO,CAAC,sBAAsB;YAwBhB,QAAQ;IAStB,OAAO,CAAC,YAAY;YAIN,UAAU;IAKxB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,WAAW;YAYL,cAAc;IAK5B,OAAO,CAAC,mBAAmB;CAiB5B"}
1
+ {"version":3,"file":"http.logger.d.ts","sourceRoot":"","sources":["../../../../../src/lib/logger/core/loggers/http.logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAIrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO;IAKP,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU;IAiB7C,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnC,OAAO,CAAC,aAAa;YAWP,KAAK;YA2BL,gBAAgB;YAWhB,YAAY;IAM1B,OAAO,CAAC,sBAAsB;YAwBhB,QAAQ;IAQtB,OAAO,CAAC,YAAY;YAWN,UAAU;IAKxB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,WAAW;YAYL,cAAc;IAK5B,OAAO,CAAC,mBAAmB;CAiB5B"}