fiscalapi 1.0.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.
- package/LICENSE.txt +373 -0
- package/README.md +388 -0
- package/dist/cjs/abstractions/api-key-service.interface.js +3 -0
- package/dist/cjs/abstractions/catalog-service.interface.js +3 -0
- package/dist/cjs/abstractions/fiscalapi-client.interface.js +3 -0
- package/dist/cjs/abstractions/fiscalapi-service.interface.js +3 -0
- package/dist/cjs/abstractions/invoice-service.interface.js +3 -0
- package/dist/cjs/abstractions/person-service.interface.js +3 -0
- package/dist/cjs/abstractions/product-service.interface.js +3 -0
- package/dist/cjs/abstractions/tax-file-service.interface.js +3 -0
- package/dist/cjs/common/api-response.js +3 -0
- package/dist/cjs/common/auditable-dto.js +11 -0
- package/dist/cjs/common/base-dto.js +11 -0
- package/dist/cjs/common/catalog-dto.js +8 -0
- package/dist/cjs/common/file-response.js +3 -0
- package/dist/cjs/common/fiscalapi-settings.js +3 -0
- package/dist/cjs/common/paged-list.js +18 -0
- package/dist/cjs/common/serializable-dto.js +37 -0
- package/dist/cjs/http/fiscalapi-http-client-factory.js +66 -0
- package/dist/cjs/http/fiscalapi-http-client.interface.js +3 -0
- package/dist/cjs/http/fiscalapi-http-client.js +306 -0
- package/dist/cjs/index.js +31 -0
- package/dist/cjs/models/api-key.js +3 -0
- package/dist/cjs/models/invoice.js +3 -0
- package/dist/cjs/models/person.js +3 -0
- package/dist/cjs/models/product.js +3 -0
- package/dist/cjs/models/tax-file.js +3 -0
- package/dist/cjs/sdk-constants.js +25 -0
- package/dist/cjs/services/api-key-service.js +19 -0
- package/dist/cjs/services/base-fiscalapi-service.js +170 -0
- package/dist/cjs/services/catalog-service.js +51 -0
- package/dist/cjs/services/fiscalapi-client.js +67 -0
- package/dist/cjs/services/invoice-service.js +116 -0
- package/dist/cjs/services/person-service.js +19 -0
- package/dist/cjs/services/product-service.js +19 -0
- package/dist/cjs/services/tax-file-service.js +43 -0
- package/dist/cjs/utils/date-utils.js +36 -0
- package/dist/cjs/utils/encoding-utils.js +21 -0
- package/dist/cjs/utils/validation-utils.js +40 -0
- package/dist/esm/abstractions/api-key-service.interface.js +2 -0
- package/dist/esm/abstractions/catalog-service.interface.js +2 -0
- package/dist/esm/abstractions/fiscalapi-client.interface.js +2 -0
- package/dist/esm/abstractions/fiscalapi-service.interface.js +2 -0
- package/dist/esm/abstractions/invoice-service.interface.js +2 -0
- package/dist/esm/abstractions/person-service.interface.js +2 -0
- package/dist/esm/abstractions/product-service.interface.js +2 -0
- package/dist/esm/abstractions/tax-file-service.interface.js +2 -0
- package/dist/esm/common/api-response.js +2 -0
- package/dist/esm/common/auditable-dto.js +7 -0
- package/dist/esm/common/base-dto.js +7 -0
- package/dist/esm/common/catalog-dto.js +4 -0
- package/dist/esm/common/file-response.js +2 -0
- package/dist/esm/common/fiscalapi-settings.js +2 -0
- package/dist/esm/common/paged-list.js +14 -0
- package/dist/esm/common/serializable-dto.js +33 -0
- package/dist/esm/http/fiscalapi-http-client-factory.js +59 -0
- package/dist/esm/http/fiscalapi-http-client.interface.js +2 -0
- package/dist/esm/http/fiscalapi-http-client.js +302 -0
- package/dist/esm/index.js +13 -0
- package/dist/esm/models/api-key.js +2 -0
- package/dist/esm/models/invoice.js +2 -0
- package/dist/esm/models/person.js +2 -0
- package/dist/esm/models/product.js +2 -0
- package/dist/esm/models/tax-file.js +2 -0
- package/dist/esm/sdk-constants.js +22 -0
- package/dist/esm/services/api-key-service.js +15 -0
- package/dist/esm/services/base-fiscalapi-service.js +166 -0
- package/dist/esm/services/catalog-service.js +47 -0
- package/dist/esm/services/fiscalapi-client.js +63 -0
- package/dist/esm/services/invoice-service.js +112 -0
- package/dist/esm/services/person-service.js +15 -0
- package/dist/esm/services/product-service.js +15 -0
- package/dist/esm/services/tax-file-service.js +39 -0
- package/dist/esm/utils/date-utils.js +31 -0
- package/dist/esm/utils/encoding-utils.js +17 -0
- package/dist/esm/utils/validation-utils.js +34 -0
- package/dist/types/abstractions/api-key-service.interface.d.ts +7 -0
- package/dist/types/abstractions/catalog-service.interface.d.ts +27 -0
- package/dist/types/abstractions/fiscalapi-client.interface.d.ts +35 -0
- package/dist/types/abstractions/fiscalapi-service.interface.d.ts +94 -0
- package/dist/types/abstractions/invoice-service.interface.d.ts +39 -0
- package/dist/types/abstractions/person-service.interface.d.ts +7 -0
- package/dist/types/abstractions/product-service.interface.d.ts +7 -0
- package/dist/types/abstractions/tax-file-service.interface.d.ts +22 -0
- package/dist/types/common/api-response.d.ts +56 -0
- package/dist/types/common/auditable-dto.d.ts +9 -0
- package/dist/types/common/base-dto.d.ts +7 -0
- package/dist/types/common/catalog-dto.d.ts +8 -0
- package/dist/types/common/file-response.d.ts +18 -0
- package/dist/types/common/fiscalapi-settings.d.ts +30 -0
- package/dist/types/common/paged-list.d.ts +39 -0
- package/dist/types/common/serializable-dto.d.ts +10 -0
- package/dist/types/http/fiscalapi-http-client-factory.d.ts +22 -0
- package/dist/types/http/fiscalapi-http-client.d.ts +113 -0
- package/dist/types/http/fiscalapi-http-client.interface.d.ts +80 -0
- package/dist/types/index.d.ts +25 -0
- package/dist/types/models/api-key.d.ts +21 -0
- package/dist/types/models/invoice.d.ts +337 -0
- package/dist/types/models/person.d.ts +42 -0
- package/dist/types/models/product.d.ts +49 -0
- package/dist/types/models/tax-file.d.ts +23 -0
- package/dist/types/sdk-constants.d.ts +21 -0
- package/dist/types/services/api-key-service.d.ts +15 -0
- package/dist/types/services/base-fiscalapi-service.d.ts +72 -0
- package/dist/types/services/catalog-service.d.ts +34 -0
- package/dist/types/services/fiscalapi-client.d.ts +49 -0
- package/dist/types/services/invoice-service.d.ts +54 -0
- package/dist/types/services/person-service.d.ts +15 -0
- package/dist/types/services/product-service.d.ts +15 -0
- package/dist/types/services/tax-file-service.d.ts +30 -0
- package/dist/types/utils/date-utils.d.ts +17 -0
- package/dist/types/utils/encoding-utils.d.ts +12 -0
- package/dist/types/utils/validation-utils.d.ts +25 -0
- package/fiscalapi.ico +0 -0
- package/fiscalapi.png +0 -0
- package/package.json +64 -0
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseFiscalapiService = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Implementación base de un servicio de FiscalAPI
|
|
6
|
+
* @template T - Tipo de DTO que maneja el servicio
|
|
7
|
+
*/
|
|
8
|
+
class BaseFiscalapiService {
|
|
9
|
+
/**
|
|
10
|
+
* Crea una nueva instancia del servicio base
|
|
11
|
+
* @param {IFiscalapiHttpClient} httpClient - Cliente HTTP
|
|
12
|
+
* @param {string} resourcePath - Ruta del recurso en la API
|
|
13
|
+
* @param {string} apiVersion - Versión de la API
|
|
14
|
+
*/
|
|
15
|
+
constructor(httpClient, resourcePath, apiVersion) {
|
|
16
|
+
if (!httpClient)
|
|
17
|
+
throw new Error('httpClient no puede ser nulo o indefinido');
|
|
18
|
+
if (!resourcePath)
|
|
19
|
+
throw new Error('resourcePath no puede ser nulo o indefinido');
|
|
20
|
+
if (!apiVersion)
|
|
21
|
+
throw new Error('apiVersion no puede ser nulo o indefinido');
|
|
22
|
+
this.httpClient = httpClient;
|
|
23
|
+
this.resourcePath = resourcePath;
|
|
24
|
+
this.apiVersion = apiVersion;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Construye una URL de endpoint de API
|
|
28
|
+
* @param {string} [path=''] - Segmento de ruta opcional
|
|
29
|
+
* @param {Record<string, string>} [queryParams] - Parámetros de consulta opcionales
|
|
30
|
+
* @returns {string} URL del endpoint
|
|
31
|
+
* @protected
|
|
32
|
+
*/
|
|
33
|
+
buildEndpoint(path = '', queryParams) {
|
|
34
|
+
let baseEndpoint = `api/${this.apiVersion}/${this.resourcePath}`;
|
|
35
|
+
if (path) {
|
|
36
|
+
baseEndpoint += `/${path}`;
|
|
37
|
+
}
|
|
38
|
+
if (queryParams && Object.keys(queryParams).length > 0) {
|
|
39
|
+
const queryString = Object.entries(queryParams)
|
|
40
|
+
.filter(([key]) => key)
|
|
41
|
+
.map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`)
|
|
42
|
+
.join('&');
|
|
43
|
+
baseEndpoint += `?${queryString}`;
|
|
44
|
+
}
|
|
45
|
+
return baseEndpoint;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Convierte los parámetros de consulta a un objeto compatible con la configuración de Axios
|
|
49
|
+
* @param {Record<string, string>} queryParams - Parámetros de consulta
|
|
50
|
+
* @returns {AxiosRequestConfig} Configuración de Axios con los parámetros
|
|
51
|
+
* @protected
|
|
52
|
+
*/
|
|
53
|
+
createConfigWithParams(queryParams) {
|
|
54
|
+
return queryParams ? { params: queryParams } : {};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Ejecuta una petición HTTP personalizada con máxima flexibilidad
|
|
58
|
+
* @param {RequestOptions<TData>} options - Opciones para la petición
|
|
59
|
+
* @returns {Promise<ApiResponse<TResult>>} Resultado de la petición
|
|
60
|
+
* @template TResult - Tipo de resultado esperado
|
|
61
|
+
* @template TData - Tipo de datos de entrada
|
|
62
|
+
*/
|
|
63
|
+
async executeRequest(options) {
|
|
64
|
+
try {
|
|
65
|
+
// Extraer opciones
|
|
66
|
+
const { method, path = '', id, data, queryParams = {}, config = {}, responseTransformer } = options;
|
|
67
|
+
// Construir el endpoint completo
|
|
68
|
+
let endpoint = '';
|
|
69
|
+
// Si se proporciona un ID, lo añadimos a la ruta
|
|
70
|
+
if (id) {
|
|
71
|
+
endpoint = this.buildEndpoint(`${path ? `${path}/` : ''}${id}`, queryParams);
|
|
72
|
+
}
|
|
73
|
+
else if (path) {
|
|
74
|
+
endpoint = this.buildEndpoint(path, queryParams);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
endpoint = this.buildEndpoint('', queryParams);
|
|
78
|
+
}
|
|
79
|
+
// Ejecutar la petición a través del cliente HTTP
|
|
80
|
+
return this.httpClient.executeRequest(method, endpoint, {
|
|
81
|
+
data,
|
|
82
|
+
config,
|
|
83
|
+
responseTransformer
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
// Manejo centralizado de errores
|
|
88
|
+
console.error(`Error al ejecutar petición personalizada:`, error);
|
|
89
|
+
// Convertir el error en una respuesta de error estándar
|
|
90
|
+
if (error instanceof Error) {
|
|
91
|
+
const errorResponse = {
|
|
92
|
+
succeeded: false,
|
|
93
|
+
data: null,
|
|
94
|
+
message: `Error al ejecutar petición: ${error.message}`,
|
|
95
|
+
details: JSON.stringify({
|
|
96
|
+
code: 'REQUEST_ERROR',
|
|
97
|
+
message: error.message
|
|
98
|
+
}),
|
|
99
|
+
httpStatusCode: 500
|
|
100
|
+
};
|
|
101
|
+
return errorResponse;
|
|
102
|
+
}
|
|
103
|
+
throw error;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* @inheritdoc
|
|
108
|
+
*/
|
|
109
|
+
async getList(pageNumber, pageSize) {
|
|
110
|
+
const queryParams = {
|
|
111
|
+
PageNumber: pageNumber.toString(),
|
|
112
|
+
PageSize: pageSize.toString()
|
|
113
|
+
};
|
|
114
|
+
return this.executeRequest({
|
|
115
|
+
method: 'GET',
|
|
116
|
+
queryParams
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* @inheritdoc
|
|
121
|
+
*/
|
|
122
|
+
async getById(id, details = false) {
|
|
123
|
+
const queryParams = details ? { details: details.toString().toLowerCase() } : undefined;
|
|
124
|
+
return this.executeRequest({
|
|
125
|
+
method: 'GET',
|
|
126
|
+
id,
|
|
127
|
+
queryParams
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* @inheritdoc
|
|
132
|
+
*/
|
|
133
|
+
async create(model) {
|
|
134
|
+
return this.executeRequest({
|
|
135
|
+
method: 'POST',
|
|
136
|
+
data: model
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* @inheritdoc
|
|
141
|
+
*/
|
|
142
|
+
async update(model) {
|
|
143
|
+
return this.executeRequest({
|
|
144
|
+
method: 'PUT',
|
|
145
|
+
id: model.id,
|
|
146
|
+
data: model
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* @inheritdoc
|
|
151
|
+
*/
|
|
152
|
+
async delete(id) {
|
|
153
|
+
return this.executeRequest({
|
|
154
|
+
method: 'DELETE',
|
|
155
|
+
id
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* @inheritdoc
|
|
160
|
+
*/
|
|
161
|
+
async search(searchParams) {
|
|
162
|
+
return this.executeRequest({
|
|
163
|
+
method: 'GET',
|
|
164
|
+
path: 'search',
|
|
165
|
+
queryParams: searchParams
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
exports.BaseFiscalapiService = BaseFiscalapiService;
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1maXNjYWxhcGktc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9iYXNlLWZpc2NhbGFwaS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU9BOzs7R0FHRztBQUNILE1BQXNCLG9CQUFvQjtJQVV4Qzs7Ozs7T0FLRztJQUNILFlBQVksVUFBZ0MsRUFBRSxZQUFvQixFQUFFLFVBQWtCO1FBQ3BGLElBQUksQ0FBQyxVQUFVO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxZQUFZO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxVQUFVO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBRTlFLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDTyxhQUFhLENBQUMsT0FBZSxFQUFFLEVBQUUsV0FBb0M7UUFDN0UsSUFBSSxZQUFZLEdBQUcsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVqRSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsWUFBWSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUVELElBQUksV0FBVyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO2lCQUM1QyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcs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QyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBek1ELG9EQXlNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF4aW9zUmVxdWVzdENvbmZpZyB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IEJhc2VEdG8gfSBmcm9tICcuLi9jb21tb24vYmFzZS1kdG8nO1xuaW1wb3J0IHsgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi9jb21tb24vYXBpLXJlc3BvbnNlJztcbmltcG9ydCB7IFBhZ2VkTGlzdCB9IGZyb20gJy4uL2NvbW1vbi9wYWdlZC1saXN0JztcbmltcG9ydCB7IElGaXNjYWxhcGlIdHRwQ2xpZW50LCBIdHRwTWV0aG9kIH0gZnJvbSAnLi4vaHR0cC9maXNjYWxhcGktaHR0cC1jbGllbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElGaXNjYWxhcGlTZXJ2aWNlLCBPcGVyYXRpb25PcHRpb25zLCBSZXF1ZXN0T3B0aW9ucyB9IGZyb20gJy4uL2Fic3RyYWN0aW9ucy9maXNjYWxhcGktc2VydmljZS5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEltcGxlbWVudGFjacOzbiBiYXNlIGRlIHVuIHNlcnZpY2lvIGRlIEZpc2NhbEFQSVxuICogQHRlbXBsYXRlIFQgLSBUaXBvIGRlIERUTyBxdWUgbWFuZWphIGVsIHNlcnZpY2lvXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlRmlzY2FsYXBpU2VydmljZTxUIGV4dGVuZHMgQmFzZUR0bz4gaW1wbGVtZW50cyBJRmlzY2FsYXBpU2VydmljZTxUPiB7XG4gIC8qKiBDbGllbnRlIEhUVFAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGh0dHBDbGllbnQ6IElGaXNjYWxhcGlIdHRwQ2xpZW50O1xuICBcbiAgLyoqIFJ1dGEgZGVsIHJlY3Vyc28gKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlc291cmNlUGF0aDogc3RyaW5nO1xuICBcbiAgLyoqIFZlcnNpw7NuIGRlIGxhIEFQSSAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBpVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhIHVuYSBudWV2YSBpbnN0YW5jaWEgZGVsIHNlcnZpY2lvIGJhc2VcbiAgICogQHBhcmFtIHtJRmlzY2FsYXBpSHR0cENsaWVudH0gaHR0cENsaWVudCAtIENsaWVudGUgSFRUUFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVzb3VyY2VQYXRoIC0gUnV0YSBkZWwgcmVjdXJzbyBlbiBsYSBBUElcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwaVZlcnNpb24gLSBWZXJzacOzbiBkZSBsYSBBUElcbiAgICovXG4gIGNvbnN0cnVjdG9yKGh0dHBDbGllbnQ6IElGaXNjYWxhcGlIdHRwQ2xpZW50LCByZXNvdXJjZVBhdGg6IHN0cmluZywgYXBpVmVyc2lvbjogc3RyaW5nKSB7XG4gICAgaWYgKCFodHRwQ2xpZW50KSB0aHJvdyBuZXcgRXJyb3IoJ2h0dHBDbGllbnQgbm8gcHVlZGUgc2VyIG51bG8gbyBpbmRlZmluaWRvJyk7XG4gICAgaWYgKCFyZXNvdXJjZVBhdGgpIHRocm93IG5ldyBFcnJvcigncmVzb3VyY2VQYXRoIG5vIHB1ZWRlIHNlciBudWxvIG8gaW5kZWZpbmlkbycpO1xuICAgIGlmICghYXBpVmVyc2lvbikgdGhyb3cgbmV3IEVycm9yKCdhcGlWZXJzaW9uIG5vIHB1ZWRlIHNlciBudWxvIG8gaW5kZWZpbmlkbycpO1xuICAgIFxuICAgIHRoaXMuaHR0cENsaWVudCA9IGh0dHBDbGllbnQ7XG4gICAgdGhpcy5yZXNvdXJjZVBhdGggPSByZXNvdXJjZVBhdGg7XG4gICAgdGhpcy5hcGlWZXJzaW9uID0gYXBpVmVyc2lvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1eWUgdW5hIFVSTCBkZSBlbmRwb2ludCBkZSBBUElcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtwYXRoPScnXSAtIFNlZ21lbnRvIGRlIHJ1dGEgb3BjaW9uYWxcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBbcXVlcnlQYXJhbXNdIC0gUGFyw6FtZXRyb3MgZGUgY29uc3VsdGEgb3BjaW9uYWxlc1xuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBVUkwgZGVsIGVuZHBvaW50XG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBidWlsZEVuZHBvaW50KHBhdGg6IHN0cmluZyA9ICcnLCBxdWVyeVBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBzdHJpbmcge1xuICAgIGxldCBiYXNlRW5kcG9pbnQgPSBgYXBpLyR7dGhpcy5hcGlWZXJzaW9ufS8ke3RoaXMucmVzb3VyY2VQYXRofWA7XG4gICAgXG4gICAgaWYgKHBhdGgpIHtcbiAgICAgIGJhc2VFbmRwb2ludCArPSBgLyR7cGF0aH1gO1xuICAgIH1cbiAgICBcbiAgICBpZiAocXVlcnlQYXJhbXMgJiYgT2JqZWN0LmtleXMocXVlcnlQYXJhbXMpLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gT2JqZWN0LmVudHJpZXMocXVlcnlQYXJhbXMpXG4gICAgICAgIC5maWx0ZXIoKFtrZXldKSA9PiBrZXkpXG4gICAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7ZW5jb2RlVVJJQ29tcG9uZW50KGtleSl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKX1gKVxuICAgICAgICAuam9pbignJicpO1xuICAgICAgXG4gICAgICBiYXNlRW5kcG9pbnQgKz0gYD8ke3F1ZXJ5U3RyaW5nfWA7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBiYXNlRW5kcG9pbnQ7XG4gIH1cblxuICAvKipcbiAgICogQ29udmllcnRlIGxvcyBwYXLDoW1ldHJvcyBkZSBjb25zdWx0YSBhIHVuIG9iamV0byBjb21wYXRpYmxlIGNvbiBsYSBjb25maWd1cmFjacOzbiBkZSBBeGlvc1xuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IHF1ZXJ5UGFyYW1zIC0gUGFyw6FtZXRyb3MgZGUgY29uc3VsdGFcbiAgICogQHJldHVybnMge0F4aW9zUmVxdWVzdENvbmZpZ30gQ29uZmlndXJhY2nDs24gZGUgQXhpb3MgY29uIGxvcyBwYXLDoW1ldHJvc1xuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlQ29uZmlnV2l0aFBhcmFtcyhxdWVyeVBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBBeGlvc1JlcXVlc3RDb25maWcge1xuICAgIHJldHVybiBxdWVyeVBhcmFtcyA/IHsgcGFyYW1zOiBxdWVyeVBhcmFtcyB9IDoge307XG4gIH1cblxuICAvKipcbiAgICogRWplY3V0YSB1bmEgcGV0aWNpw7NuIEhUVFAgcGVyc29uYWxpemFkYSBjb24gbcOheGltYSBmbGV4aWJpbGlkYWRcbiAgICogQHBhcmFtIHtSZXF1ZXN0T3B0aW9uczxURGF0YT59IG9wdGlvbnMgLSBPcGNpb25lcyBwYXJhIGxhIHBldGljacOzblxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxBcGlSZXNwb25zZTxUUmVzdWx0Pj59IFJlc3VsdGFkbyBkZSBsYSBwZXRpY2nDs25cbiAgICogQHRlbXBsYXRlIFRSZXN1bHQgLSBUaXBvIGRlIHJlc3VsdGFkbyBlc3BlcmFkb1xuICAgKiBAdGVtcGxhdGUgVERhdGEgLSBUaXBvIGRlIGRhdG9zIGRlIGVudHJhZGFcbiAgICovXG4gIGFzeW5jIGV4ZWN1dGVSZXF1ZXN0PFRSZXN1bHQsIFREYXRhID0gYW55PihcbiAgICBvcHRpb25zOiBSZXF1ZXN0T3B0aW9uczxURGF0YT5cbiAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxUUmVzdWx0Pj4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBFeHRyYWVyIG9wY2lvbmVzXG4gICAgICBjb25zdCB7IFxuICAgICAgICBtZXRob2QsIFxuICAgICAgICBwYXRoID0gJycsIFxuICAgICAgICBpZCwgXG4gICAgICAgIGRhdGEsIFxuICAgICAgICBxdWVyeVBhcmFtcyA9IHt9LCBcbiAgICAgICAgY29uZmlnID0ge30sXG4gICAgICAgIHJlc3BvbnNlVHJhbnNmb3JtZXJcbiAgICAgIH0gPSBvcHRpb25zO1xuICAgICAgXG4gICAgICAvLyBDb25zdHJ1aXIgZWwgZW5kcG9pbnQgY29tcGxldG9cbiAgICAgIGxldCBlbmRwb2ludCA9ICcnO1xuICAgICAgXG4gICAgICAvLyBTaSBzZSBwcm9wb3JjaW9uYSB1biBJRCwgbG8gYcOxYWRpbW9zIGEgbGEgcnV0YVxuICAgICAgaWYgKGlkKSB7XG4gICAgICAgIGVuZHBvaW50ID0gdGhpcy5idWlsZEVuZHBvaW50KGAke3BhdGggPyBgJHtwYXRofS9gIDogJyd9JHtpZH1gLCBxdWVyeVBhcmFtcyk7XG4gICAgICB9IGVsc2UgaWYgKHBhdGgpIHtcbiAgICAgICAgZW5kcG9pbnQgPSB0aGlzLmJ1aWxkRW5kcG9pbnQocGF0aCwgcXVlcnlQYXJhbXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW5kcG9pbnQgPSB0aGlzLmJ1aWxkRW5kcG9pbnQoJycsIHF1ZXJ5UGFyYW1zKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gRWplY3V0YXIgbGEgcGV0aWNpw7NuIGEgdHJhdsOpcyBkZWwgY2xpZW50ZSBIVFRQXG4gICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmV4ZWN1dGVSZXF1ZXN0PFRSZXN1bHQsIFREYXRhPihcbiAgICAgICAgbWV0aG9kLFxuICAgICAgICBlbmRwb2ludCxcbiAgICAgICAge1xuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIHJlc3BvbnNlVHJhbnNmb3JtZXJcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gTWFuZWpvIGNlbnRyYWxpemFkbyBkZSBlcnJvcmVzXG4gICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBhbCBlamVjdXRhciBwZXRpY2nDs24gcGVyc29uYWxpemFkYTpgLCBlcnJvcik7XG4gICAgICBcbiAgICAgIC8vIENvbnZlcnRpciBlbCBlcnJvciBlbiB1bmEgcmVzcHVlc3RhIGRlIGVycm9yIGVzdMOhbmRhclxuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgY29uc3QgZXJyb3JSZXNwb25zZTogQXBpUmVzcG9uc2U8VFJlc3VsdD4gPSB7XG4gICAgICAgICAgc3VjY2VlZGVkOiBmYWxzZSxcbiAgICAgICAgICBkYXRhOiBudWxsIGFzIHVua25vd24gYXMgVFJlc3VsdCxcbiAgICAgICAgICBtZXNzYWdlOiBgRXJyb3IgYWwgZWplY3V0YXIgcGV0aWNpw7NuOiAke2Vycm9yLm1lc3NhZ2V9YCxcbiAgICAgICAgICBkZXRhaWxzOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBjb2RlOiAnUkVRVUVTVF9FUlJPUicsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlXG4gICAgICAgICAgfSksXG4gICAgICAgICAgaHR0cFN0YXR1c0NvZGU6IDUwMFxuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgcmV0dXJuIGVycm9yUmVzcG9uc2U7XG4gICAgICB9XG4gICAgICBcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxuICBcbiBcblxuICAvKipcbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIGFzeW5jIGdldExpc3QocGFnZU51bWJlcjogbnVtYmVyLCBwYWdlU2l6ZTogbnVtYmVyKTogUHJvbWlzZTxBcGlSZXNwb25zZTxQYWdlZExpc3Q8VD4+PiB7XG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB7XG4gICAgICBQYWdlTnVtYmVyOiBwYWdlTnVtYmVyLnRvU3RyaW5nKCksXG4gICAgICBQYWdlU2l6ZTogcGFnZVNpemUudG9TdHJpbmcoKVxuICAgIH07XG4gICAgXG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVJlcXVlc3Q8UGFnZWRMaXN0PFQ+Pih7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgcXVlcnlQYXJhbXNcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdGRvY1xuICAgKi9cbiAgYXN5bmMgZ2V0QnlJZChpZDogc3RyaW5nLCBkZXRhaWxzOiBib29sZWFuID0gZmFsc2UpOiBQcm9taXNlPEFwaVJlc3BvbnNlPFQ+PiB7XG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSBkZXRhaWxzID8geyBkZXRhaWxzOiBkZXRhaWxzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSB9IDogdW5kZWZpbmVkO1xuICAgIFxuICAgIHJldHVybiB0aGlzLmV4ZWN1dGVSZXF1ZXN0PFQ+KHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICBpZCxcbiAgICAgIHF1ZXJ5UGFyYW1zXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIGFzeW5jIGNyZWF0ZShtb2RlbDogVCk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5leGVjdXRlUmVxdWVzdDxULCBUPih7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGRhdGE6IG1vZGVsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIGFzeW5jIHVwZGF0ZShtb2RlbDogVCk6IFByb21pc2U8QXBpUmVzcG9uc2U8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5leGVjdXRlUmVxdWVzdDxULCBUPih7XG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgaWQ6IG1vZGVsLmlkLFxuICAgICAgZGF0YTogbW9kZWxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdGRvY1xuICAgKi9cbiAgYXN5bmMgZGVsZXRlKGlkOiBzdHJpbmcpOiBQcm9taXNlPEFwaVJlc3BvbnNlPGJvb2xlYW4+PiB7XG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVJlcXVlc3Q8Ym9vbGVhbj4oe1xuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgIGlkXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIGFzeW5jIHNlYXJjaChzZWFyY2hQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBQcm9taXNlPEFwaVJlc3BvbnNlPFBhZ2VkTGlzdDxUPj4+IHtcbiAgICByZXR1cm4gdGhpcy5leGVjdXRlUmVxdWVzdDxQYWdlZExpc3Q8VD4+KHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICBwYXRoOiAnc2VhcmNoJyxcbiAgICAgIHF1ZXJ5UGFyYW1zOiBzZWFyY2hQYXJhbXNcbiAgICB9KTtcbiAgfVxufSJdfQ==
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CatalogService = void 0;
|
|
4
|
+
const base_fiscalapi_service_1 = require("./base-fiscalapi-service");
|
|
5
|
+
/**
|
|
6
|
+
* Implementación del servicio de catálogos
|
|
7
|
+
*/
|
|
8
|
+
class CatalogService extends base_fiscalapi_service_1.BaseFiscalapiService {
|
|
9
|
+
/**
|
|
10
|
+
* Crea una nueva instancia del servicio de catálogos
|
|
11
|
+
* @param {IFiscalapiHttpClient} httpClient - Cliente HTTP
|
|
12
|
+
* @param {string} apiVersion - Versión de la API
|
|
13
|
+
*/
|
|
14
|
+
constructor(httpClient, apiVersion) {
|
|
15
|
+
super(httpClient, 'catalogs', apiVersion);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Recupera un registro de un catálogo por catalogName y id.
|
|
19
|
+
*
|
|
20
|
+
* @param catalogName - Nombre del catálogo
|
|
21
|
+
* @param id - Id del registro en el catalogName
|
|
22
|
+
* @returns Promise que resuelve en una respuesta API con CatalogDto
|
|
23
|
+
*/
|
|
24
|
+
async getRecordById(catalogName, id) {
|
|
25
|
+
const path = `${catalogName}/key/${id}`;
|
|
26
|
+
const endpoint = this.buildEndpoint(path);
|
|
27
|
+
// api/v4/catalogs/<catalogName>/key/<id>
|
|
28
|
+
return this.httpClient.getAsync(endpoint);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Busca en un catálogo.
|
|
32
|
+
*
|
|
33
|
+
* @param catalogName - Catalog name. Must be a catalog retrieved from getList()
|
|
34
|
+
* @param searchText - Criterio de búsqueda. Debe tener 4 caracteres de longitud como mínimo.
|
|
35
|
+
* @param pageNumber - Numero de pagina a recuperar (default: 1)
|
|
36
|
+
* @param pageSize - Tamaño de la página entre 1 y 100 registros por página (default: 50)
|
|
37
|
+
* @returns Promise que resuelve en una respuesta API con lista paginada de CatalogDto
|
|
38
|
+
*/
|
|
39
|
+
async searchCatalog(catalogName, searchText, pageNumber = 1, pageSize = 50) {
|
|
40
|
+
const path = `${catalogName}/${searchText}`;
|
|
41
|
+
const queryParams = {
|
|
42
|
+
pageNumber: pageNumber.toString(),
|
|
43
|
+
pageSize: pageSize.toString()
|
|
44
|
+
};
|
|
45
|
+
const endpoint = this.buildEndpoint(path, queryParams);
|
|
46
|
+
const response = await this.httpClient.getAsync(endpoint);
|
|
47
|
+
return response;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.CatalogService = CatalogService;
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2NhdGFsb2ctc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxxRUFBZ0U7QUFHaEU7O0dBRUc7QUFDSCxNQUFhLGNBQWUsU0FBUSw2Q0FBZ0M7SUFDbEU7Ozs7T0FJRztJQUNILFlBQVksVUFBZ0MsRUFBRSxVQUFrQjtRQUM5RCxLQUFLLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBSUM7Ozs7OztNQU1FO0lBQ0ssS0FBSyxDQUFDLGFBQWEsQ0FBQyxXQUFtQixFQUFFLEVBQVU7UUFDeEQsTUFBTSxJQUFJLEdBQUcsR0FBRyxXQUFXLFFBQVEsRUFBRSxFQUFFLENBQUM7UUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyx5Q0FBeUM7UUFDekMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBYSxRQUFRLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7Ozs7Ozs7O01BUUU7SUFDSyxLQUFLLENBQUMsYUFBYSxDQUN4QixXQUFtQixFQUNuQixVQUFrQixFQUNsQixhQUFxQixDQUFDLEVBQ3RCLFdBQW1CLEVBQUU7UUFFckIsTUFBTSxJQUFJLEdBQUcsR0FBRyxXQUFXLElBQUksVUFBVSxFQUFFLENBQUM7UUFDNUMsTUFBTSxXQUFXLEdBQUc7WUFDaEIsVUFBVSxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDakMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUU7U0FDaEMsQ0FBQztRQUNGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQXdCLFFBQVEsQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Q0FHSjtBQXBERCx3Q0FvREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYXRhbG9nRHRvIH0gZnJvbSAnLi4vY29tbW9uL2NhdGFsb2ctZHRvJztcbmltcG9ydCB7IElGaXNjYWxhcGlIdHRwQ2xpZW50IH0gZnJvbSAnLi4vaHR0cC9maXNjYWxhcGktaHR0cC1jbGllbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vY29tbW9uL2FwaS1yZXNwb25zZSc7XG5pbXBvcnQgeyBCYXNlRmlzY2FsYXBpU2VydmljZSB9IGZyb20gJy4vYmFzZS1maXNjYWxhcGktc2VydmljZSc7XG5pbXBvcnQgeyBJQ2F0YWxvZ1NlcnZpY2UsIFBhZ2VkTGlzdCB9IGZyb20gJy4uJztcblxuLyoqXG4gKiBJbXBsZW1lbnRhY2nDs24gZGVsIHNlcnZpY2lvIGRlIGNhdMOhbG9nb3NcbiAqL1xuZXhwb3J0IGNsYXNzIENhdGFsb2dTZXJ2aWNlIGV4dGVuZHMgQmFzZUZpc2NhbGFwaVNlcnZpY2U8Q2F0YWxvZ0R0bz4gaW1wbGVtZW50cyBJQ2F0YWxvZ1NlcnZpY2Uge1xuICAvKipcbiAgICogQ3JlYSB1bmEgbnVldmEgaW5zdGFuY2lhIGRlbCBzZXJ2aWNpbyBkZSBjYXTDoWxvZ29zXG4gICAqIEBwYXJhbSB7SUZpc2NhbGFwaUh0dHBDbGllbnR9IGh0dHBDbGllbnQgLSBDbGllbnRlIEhUVFBcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwaVZlcnNpb24gLSBWZXJzacOzbiBkZSBsYSBBUElcbiAgICovXG4gIGNvbnN0cnVjdG9yKGh0dHBDbGllbnQ6IElGaXNjYWxhcGlIdHRwQ2xpZW50LCBhcGlWZXJzaW9uOiBzdHJpbmcpIHtcbiAgICBzdXBlcihodHRwQ2xpZW50LCAnY2F0YWxvZ3MnLCBhcGlWZXJzaW9uKTtcbiAgfVxuXG5cblxuICAgIC8qKlxuICAgICogUmVjdXBlcmEgdW4gcmVnaXN0cm8gZGUgdW4gY2F0w6Fsb2dvIHBvciBjYXRhbG9nTmFtZSB5IGlkLlxuICAgICogXG4gICAgKiBAcGFyYW0gY2F0YWxvZ05hbWUgLSBOb21icmUgZGVsIGNhdMOhbG9nb1xuICAgICogQHBhcmFtIGlkIC0gSWQgZGVsIHJlZ2lzdHJvIGVuIGVsIGNhdGFsb2dOYW1lXG4gICAgKiBAcmV0dXJucyBQcm9taXNlIHF1ZSByZXN1ZWx2ZSBlbiB1bmEgcmVzcHVlc3RhIEFQSSBjb24gQ2F0YWxvZ0R0b1xuICAgICovXG4gICAgcHVibGljIGFzeW5jIGdldFJlY29yZEJ5SWQoY2F0YWxvZ05hbWU6IHN0cmluZywgaWQ6IHN0cmluZyk6IFByb21pc2U8QXBpUmVzcG9uc2U8Q2F0YWxvZ0R0bz4+IHtcbiAgICAgIGNvbnN0IHBhdGggPSBgJHtjYXRhbG9nTmFtZX0va2V5LyR7aWR9YDtcbiAgICAgIGNvbnN0IGVuZHBvaW50ID0gdGhpcy5idWlsZEVuZHBvaW50KHBhdGgpO1xuICAgICAgLy8gYXBpL3Y0L2NhdGFsb2dzLzxjYXRhbG9nTmFtZT4va2V5LzxpZD5cbiAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0QXN5bmM8Q2F0YWxvZ0R0bz4oZW5kcG9pbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQnVzY2EgZW4gdW4gY2F0w6Fsb2dvLlxuICAgICogXG4gICAgKiBAcGFyYW0gY2F0YWxvZ05hbWUgLSBDYXRhbG9nIG5hbWUuIE11c3QgYmUgYSBjYXRhbG9nIHJldHJpZXZlZCBmcm9tIGdldExpc3QoKVxuICAgICogQHBhcmFtIHNlYXJjaFRleHQgLSBDcml0ZXJpbyBkZSBiw7pzcXVlZGEuIERlYmUgdGVuZXIgNCBjYXJhY3RlcmVzIGRlIGxvbmdpdHVkIGNvbW8gbcOtbmltby5cbiAgICAqIEBwYXJhbSBwYWdlTnVtYmVyIC0gTnVtZXJvIGRlIHBhZ2luYSBhIHJlY3VwZXJhciAoZGVmYXVsdDogMSlcbiAgICAqIEBwYXJhbSBwYWdlU2l6ZSAtIFRhbWHDsW8gZGUgbGEgcMOhZ2luYSBlbnRyZSAxIHkgMTAwIHJlZ2lzdHJvcyBwb3IgcMOhZ2luYSAoZGVmYXVsdDogNTApXG4gICAgKiBAcmV0dXJucyBQcm9taXNlIHF1ZSByZXN1ZWx2ZSBlbiB1bmEgcmVzcHVlc3RhIEFQSSBjb24gbGlzdGEgcGFnaW5hZGEgZGUgQ2F0YWxvZ0R0b1xuICAgICovXG4gICAgcHVibGljIGFzeW5jIHNlYXJjaENhdGFsb2coXG4gICAgICBjYXRhbG9nTmFtZTogc3RyaW5nLCBcbiAgICAgIHNlYXJjaFRleHQ6IHN0cmluZyxcbiAgICAgIHBhZ2VOdW1iZXI6IG51bWJlciA9IDEsIFxuICAgICAgcGFnZVNpemU6IG51bWJlciA9IDUwXG4gICAgKTogUHJvbWlzZTxBcGlSZXNwb25zZTxQYWdlZExpc3Q8Q2F0YWxvZ0R0bz4+PiB7XG4gICAgICBjb25zdCBwYXRoID0gYCR7Y2F0YWxvZ05hbWV9LyR7c2VhcmNoVGV4dH1gO1xuICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSB7XG4gICAgICAgICAgcGFnZU51bWJlcjogcGFnZU51bWJlci50b1N0cmluZygpLFxuICAgICAgICAgIHBhZ2VTaXplOiBwYWdlU2l6ZS50b1N0cmluZygpXG4gICAgICB9O1xuICAgICAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmJ1aWxkRW5kcG9pbnQocGF0aCwgcXVlcnlQYXJhbXMpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmh0dHBDbGllbnQuZ2V0QXN5bmM8UGFnZWRMaXN0PENhdGFsb2dEdG8+PihlbmRwb2ludCk7XG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuXG4gIFxufVxuIl19
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FiscalapiClient = void 0;
|
|
4
|
+
const fiscalapi_http_client_factory_1 = require("../http/fiscalapi-http-client-factory");
|
|
5
|
+
const api_key_service_1 = require("./api-key-service");
|
|
6
|
+
const catalog_service_1 = require("./catalog-service");
|
|
7
|
+
const invoice_service_1 = require("./invoice-service");
|
|
8
|
+
const person_service_1 = require("./person-service");
|
|
9
|
+
const product_service_1 = require("./product-service");
|
|
10
|
+
const tax_file_service_1 = require("./tax-file-service");
|
|
11
|
+
/**
|
|
12
|
+
* Cliente principal para FiscalAPI
|
|
13
|
+
*/
|
|
14
|
+
class FiscalapiClient {
|
|
15
|
+
/**
|
|
16
|
+
* Crea una nueva instancia del cliente de FiscalAPI
|
|
17
|
+
* @param {FiscalapiSettings} settings - Configuración
|
|
18
|
+
* @private
|
|
19
|
+
*/
|
|
20
|
+
constructor(settings) {
|
|
21
|
+
// Crea el cliente HTTP
|
|
22
|
+
const httpClient = fiscalapi_http_client_factory_1.FiscalapiHttpClientFactory.create(settings);
|
|
23
|
+
const apiVersion = settings.apiVersion || 'v4';
|
|
24
|
+
// Inicializa los servicios
|
|
25
|
+
this.invoices = new invoice_service_1.InvoiceService(httpClient, apiVersion);
|
|
26
|
+
this.products = new product_service_1.ProductService(httpClient, apiVersion);
|
|
27
|
+
this.persons = new person_service_1.PersonService(httpClient, apiVersion);
|
|
28
|
+
this.apiKeys = new api_key_service_1.ApiKeyService(httpClient, apiVersion);
|
|
29
|
+
this.catalogs = new catalog_service_1.CatalogService(httpClient, apiVersion);
|
|
30
|
+
this.taxFiles = new tax_file_service_1.TaxFileService(httpClient, apiVersion);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Crea una nueva instancia del cliente de FiscalAPI
|
|
34
|
+
* @param {FiscalapiSettings} settings - Configuración
|
|
35
|
+
* @returns {IFiscalapiClient} Instancia del cliente de FiscalAPI
|
|
36
|
+
*/
|
|
37
|
+
static create(settings) {
|
|
38
|
+
if (!settings) {
|
|
39
|
+
throw new Error('La configuración no puede ser nula o indefinida');
|
|
40
|
+
}
|
|
41
|
+
// Valida la configuración
|
|
42
|
+
FiscalapiClient.validateSettings(settings);
|
|
43
|
+
// Establece valores predeterminados para configuraciones opcionales
|
|
44
|
+
settings.apiVersion = settings.apiVersion || 'v4';
|
|
45
|
+
settings.timeZone = settings.timeZone || 'America/Mexico_City';
|
|
46
|
+
settings.debug = settings.debug || false;
|
|
47
|
+
return new FiscalapiClient(settings);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Valida la configuración
|
|
51
|
+
* @param {FiscalapiSettings} settings - Configuración
|
|
52
|
+
* @private
|
|
53
|
+
*/
|
|
54
|
+
static validateSettings(settings) {
|
|
55
|
+
if (!settings.apiUrl) {
|
|
56
|
+
throw new Error('apiUrl es requerido');
|
|
57
|
+
}
|
|
58
|
+
if (!settings.apiKey) {
|
|
59
|
+
throw new Error('apiKey es requerido');
|
|
60
|
+
}
|
|
61
|
+
if (!settings.tenant) {
|
|
62
|
+
throw new Error('tenant es requerido');
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.FiscalapiClient = FiscalapiClient;
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlzY2FsYXBpLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9maXNjYWxhcGktY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVNBLHlGQUFtRjtBQUNuRix1REFBa0Q7QUFDbEQsdURBQW1EO0FBQ25ELHVEQUFtRDtBQUNuRCxxREFBaUQ7QUFDakQsdURBQW1EO0FBQ25ELHlEQUFvRDtBQUVwRDs7R0FFRztBQUNILE1BQWEsZUFBZTtJQStCMUI7Ozs7T0FJRztJQUNILFlBQW9CLFFBQTJCO1FBQzdDLHVCQUF1QjtRQUN2QixNQUFNLFVBQVUsR0FBRywwREFBMEIsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0QsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUM7UUFFL0MsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxnQ0FBYyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZ0NBQWMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLDhCQUFhLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSwrQkFBYSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZ0NBQWMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGlDQUFjLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUEyQjtRQUN2QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUVELDBCQUEwQjtRQUMxQixlQUFlLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFM0Msb0VBQW9FO1FBQ3BFLFFBQVEsQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUM7UUFDbEQsUUFBUSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxJQUFJLHFCQUFxQixDQUFDO1FBQy9ELFFBQVEsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUM7UUFFekMsT0FBTyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUEyQjtRQUN6RCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDekMsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF6RkQsMENBeUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgXG4gIElGaXNjYWxhcGlDbGllbnQsXG4gIElJbnZvaWNlU2VydmljZSwgXG4gIElQcm9kdWN0U2VydmljZSwgXG4gIElQZXJzb25TZXJ2aWNlLCBcbiAgSUFwaUtleVNlcnZpY2UsIFxuICBJQ2F0YWxvZ1NlcnZpY2UsIFxuICBJVGF4RmlsZVNlcnZpY2UgfSBmcm9tICcuLic7XG5pbXBvcnQgeyBGaXNjYWxhcGlTZXR0aW5ncyB9IGZyb20gJy4uL2NvbW1vbi9maXNjYWxhcGktc2V0dGluZ3MnO1xuaW1wb3J0IHsgRmlzY2FsYXBpSHR0cENsaWVudEZhY3RvcnkgfSBmcm9tICcuLi9odHRwL2Zpc2NhbGFwaS1odHRwLWNsaWVudC1mYWN0b3J5JztcbmltcG9ydCB7IEFwaUtleVNlcnZpY2UgfSBmcm9tICcuL2FwaS1rZXktc2VydmljZSc7XG5pbXBvcnQgeyBDYXRhbG9nU2VydmljZSB9IGZyb20gJy4vY2F0YWxvZy1zZXJ2aWNlJztcbmltcG9ydCB7IEludm9pY2VTZXJ2aWNlIH0gZnJvbSAnLi9pbnZvaWNlLXNlcnZpY2UnO1xuaW1wb3J0IHsgUGVyc29uU2VydmljZSB9IGZyb20gJy4vcGVyc29uLXNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZHVjdFNlcnZpY2UgfSBmcm9tICcuL3Byb2R1Y3Qtc2VydmljZSc7XG5pbXBvcnQgeyBUYXhGaWxlU2VydmljZSB9IGZyb20gJy4vdGF4LWZpbGUtc2VydmljZSc7XG5cbi8qKlxuICogQ2xpZW50ZSBwcmluY2lwYWwgcGFyYSBGaXNjYWxBUElcbiAqL1xuZXhwb3J0IGNsYXNzIEZpc2NhbGFwaUNsaWVudCBpbXBsZW1lbnRzIElGaXNjYWxhcGlDbGllbnQge1xuICAvKipcbiAgICogU2VydmljaW8gZGUgZmFjdHVyYXNcbiAgICovXG4gIHJlYWRvbmx5IGludm9pY2VzOiBJSW52b2ljZVNlcnZpY2U7XG4gIFxuICAvKipcbiAgICogU2VydmljaW8gZGUgcHJvZHVjdG9zXG4gICAqL1xuICByZWFkb25seSBwcm9kdWN0czogSVByb2R1Y3RTZXJ2aWNlO1xuICBcbiAgLyoqXG4gICAqIFNlcnZpY2lvIGRlIHBlcnNvbmFzXG4gICAqL1xuICByZWFkb25seSBwZXJzb25zOiBJUGVyc29uU2VydmljZTtcbiAgXG4gIC8qKlxuICAgKiBTZXJ2aWNpbyBkZSBjbGF2ZXMgZGUgQVBJXG4gICAqL1xuICByZWFkb25seSBhcGlLZXlzOiBJQXBpS2V5U2VydmljZTtcbiAgXG4gIC8qKlxuICAgKiBTZXJ2aWNpbyBkZSBjYXTDoWxvZ29zXG4gICAqL1xuICByZWFkb25seSBjYXRhbG9nczogSUNhdGFsb2dTZXJ2aWNlO1xuICBcbiAgLyoqXG4gICAqIFNlcnZpY2lvIGRlIGFyY2hpdm9zIGZpc2NhbGVzXG4gICAqL1xuICByZWFkb25seSB0YXhGaWxlczogSVRheEZpbGVTZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBDcmVhIHVuYSBudWV2YSBpbnN0YW5jaWEgZGVsIGNsaWVudGUgZGUgRmlzY2FsQVBJXG4gICAqIEBwYXJhbSB7RmlzY2FsYXBpU2V0dGluZ3N9IHNldHRpbmdzIC0gQ29uZmlndXJhY2nDs25cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgY29uc3RydWN0b3Ioc2V0dGluZ3M6IEZpc2NhbGFwaVNldHRpbmdzKSB7XG4gICAgLy8gQ3JlYSBlbCBjbGllbnRlIEhUVFBcbiAgICBjb25zdCBodHRwQ2xpZW50ID0gRmlzY2FsYXBpSHR0cENsaWVudEZhY3RvcnkuY3JlYXRlKHNldHRpbmdzKTtcbiAgICBjb25zdCBhcGlWZXJzaW9uID0gc2V0dGluZ3MuYXBpVmVyc2lvbiB8fCAndjQnO1xuICAgIFxuICAgIC8vIEluaWNpYWxpemEgbG9zIHNlcnZpY2lvc1xuICAgIHRoaXMuaW52b2ljZXMgPSBuZXcgSW52b2ljZVNlcnZpY2UoaHR0cENsaWVudCwgYXBpVmVyc2lvbik7XG4gICAgdGhpcy5wcm9kdWN0cyA9IG5ldyBQcm9kdWN0U2VydmljZShodHRwQ2xpZW50LCBhcGlWZXJzaW9uKTtcbiAgICB0aGlzLnBlcnNvbnMgPSBuZXcgUGVyc29uU2VydmljZShodHRwQ2xpZW50LCBhcGlWZXJzaW9uKTtcbiAgICB0aGlzLmFwaUtleXMgPSBuZXcgQXBpS2V5U2VydmljZShodHRwQ2xpZW50LCBhcGlWZXJzaW9uKTtcbiAgICB0aGlzLmNhdGFsb2dzID0gbmV3IENhdGFsb2dTZXJ2aWNlKGh0dHBDbGllbnQsIGFwaVZlcnNpb24pO1xuICAgIHRoaXMudGF4RmlsZXMgPSBuZXcgVGF4RmlsZVNlcnZpY2UoaHR0cENsaWVudCwgYXBpVmVyc2lvbik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYSB1bmEgbnVldmEgaW5zdGFuY2lhIGRlbCBjbGllbnRlIGRlIEZpc2NhbEFQSVxuICAgKiBAcGFyYW0ge0Zpc2NhbGFwaVNldHRpbmdzfSBzZXR0aW5ncyAtIENvbmZpZ3VyYWNpw7NuXG4gICAqIEByZXR1cm5zIHtJRmlzY2FsYXBpQ2xpZW50fSBJbnN0YW5jaWEgZGVsIGNsaWVudGUgZGUgRmlzY2FsQVBJXG4gICAqL1xuICBzdGF0aWMgY3JlYXRlKHNldHRpbmdzOiBGaXNjYWxhcGlTZXR0aW5ncyk6IElGaXNjYWxhcGlDbGllbnQge1xuICAgIGlmICghc2V0dGluZ3MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTGEgY29uZmlndXJhY2nDs24gbm8gcHVlZGUgc2VyIG51bGEgbyBpbmRlZmluaWRhJyk7XG4gICAgfVxuICAgIFxuICAgIC8vIFZhbGlkYSBsYSBjb25maWd1cmFjacOzblxuICAgIEZpc2NhbGFwaUNsaWVudC52YWxpZGF0ZVNldHRpbmdzKHNldHRpbmdzKTtcbiAgICBcbiAgICAvLyBFc3RhYmxlY2UgdmFsb3JlcyBwcmVkZXRlcm1pbmFkb3MgcGFyYSBjb25maWd1cmFjaW9uZXMgb3BjaW9uYWxlc1xuICAgIHNldHRpbmdzLmFwaVZlcnNpb24gPSBzZXR0aW5ncy5hcGlWZXJzaW9uIHx8ICd2NCc7XG4gICAgc2V0dGluZ3MudGltZVpvbmUgPSBzZXR0aW5ncy50aW1lWm9uZSB8fCAnQW1lcmljYS9NZXhpY29fQ2l0eSc7XG4gICAgc2V0dGluZ3MuZGVidWcgPSBzZXR0aW5ncy5kZWJ1ZyB8fCBmYWxzZTtcbiAgICBcbiAgICByZXR1cm4gbmV3IEZpc2NhbGFwaUNsaWVudChzZXR0aW5ncyk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhIGxhIGNvbmZpZ3VyYWNpw7NuXG4gICAqIEBwYXJhbSB7RmlzY2FsYXBpU2V0dGluZ3N9IHNldHRpbmdzIC0gQ29uZmlndXJhY2nDs25cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHZhbGlkYXRlU2V0dGluZ3Moc2V0dGluZ3M6IEZpc2NhbGFwaVNldHRpbmdzKTogdm9pZCB7XG4gICAgaWYgKCFzZXR0aW5ncy5hcGlVcmwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYXBpVXJsIGVzIHJlcXVlcmlkbycpO1xuICAgIH1cbiAgICBcbiAgICBpZiAoIXNldHRpbmdzLmFwaUtleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhcGlLZXkgZXMgcmVxdWVyaWRvJyk7XG4gICAgfVxuICAgIFxuICAgIGlmICghc2V0dGluZ3MudGVuYW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RlbmFudCBlcyByZXF1ZXJpZG8nKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InvoiceService = void 0;
|
|
4
|
+
const base_fiscalapi_service_1 = require("./base-fiscalapi-service");
|
|
5
|
+
/**
|
|
6
|
+
* Implementación del servicio de facturas
|
|
7
|
+
*/
|
|
8
|
+
class InvoiceService extends base_fiscalapi_service_1.BaseFiscalapiService {
|
|
9
|
+
/**
|
|
10
|
+
* Crea una nueva instancia del servicio de facturas
|
|
11
|
+
* @param {IFiscalapiHttpClient} httpClient - Cliente HTTP
|
|
12
|
+
* @param {string} apiVersion - Versión de la API
|
|
13
|
+
*/
|
|
14
|
+
constructor(httpClient, apiVersion) {
|
|
15
|
+
super(httpClient, 'invoices', apiVersion);
|
|
16
|
+
this.INCOME_ENDPOINT = 'income';
|
|
17
|
+
this.CREDIT_NOTE_ENDPOINT = 'credit-note';
|
|
18
|
+
this.PAYMENT_ENDPOINT = 'payment';
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @inheritdoc
|
|
22
|
+
*/
|
|
23
|
+
async create(requestModel) {
|
|
24
|
+
if (!requestModel) {
|
|
25
|
+
throw new Error('requestModel cannot be null');
|
|
26
|
+
}
|
|
27
|
+
let endpoint;
|
|
28
|
+
switch (requestModel.typeCode) {
|
|
29
|
+
case 'I':
|
|
30
|
+
endpoint = this.INCOME_ENDPOINT;
|
|
31
|
+
break;
|
|
32
|
+
case 'E':
|
|
33
|
+
endpoint = this.CREDIT_NOTE_ENDPOINT;
|
|
34
|
+
break;
|
|
35
|
+
case 'P':
|
|
36
|
+
endpoint = this.PAYMENT_ENDPOINT;
|
|
37
|
+
break;
|
|
38
|
+
default:
|
|
39
|
+
throw new Error(`Unsupported invoice type: ${requestModel.typeCode}`);
|
|
40
|
+
}
|
|
41
|
+
return await this.executeRequest({
|
|
42
|
+
path: endpoint,
|
|
43
|
+
data: requestModel,
|
|
44
|
+
method: 'POST',
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Cancela una factura
|
|
49
|
+
* @param {CancelInvoiceRequest} request - Solicitud para cancelar factura
|
|
50
|
+
* @returns {Promise<ApiResponse<CancelInvoiceResponse>>} Respuesta de la cancelación
|
|
51
|
+
*/
|
|
52
|
+
async cancel(request) {
|
|
53
|
+
if (!request) {
|
|
54
|
+
throw new Error('request cannot be null');
|
|
55
|
+
}
|
|
56
|
+
return await this.executeRequest({
|
|
57
|
+
data: request,
|
|
58
|
+
method: 'DELETE',
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Obtiene el PDF de una factura
|
|
63
|
+
* @param {CreatePdfRequest} request - Solicitud para crear PDF
|
|
64
|
+
* @returns {Promise<ApiResponse<FileResponse>>} Respuesta con el archivo PDF
|
|
65
|
+
*/
|
|
66
|
+
async getPdf(request) {
|
|
67
|
+
if (!request) {
|
|
68
|
+
throw new Error('request cannot be null');
|
|
69
|
+
}
|
|
70
|
+
return await this.executeRequest({
|
|
71
|
+
path: 'pdf',
|
|
72
|
+
data: request,
|
|
73
|
+
method: 'POST',
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Obtiene el XML de una factura
|
|
78
|
+
* @param {string} id - ID de la factura
|
|
79
|
+
* @returns {Promise<ApiResponse<FileResponse>>} Respuesta con el archivo XML
|
|
80
|
+
*/
|
|
81
|
+
async getXml(id) {
|
|
82
|
+
if (!id || id.trim() === '') {
|
|
83
|
+
throw new Error('id cannot be null or empty');
|
|
84
|
+
}
|
|
85
|
+
return await this.executeRequest({
|
|
86
|
+
path: `${id}/xml`,
|
|
87
|
+
method: 'GET',
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Envía una factura por correo electrónico
|
|
92
|
+
* @param {SendInvoiceRequest} request - Solicitud para enviar factura
|
|
93
|
+
* @returns {Promise<ApiResponse<boolean>>} Resultado de la operación
|
|
94
|
+
*/
|
|
95
|
+
async send(request) {
|
|
96
|
+
return await this.executeRequest({
|
|
97
|
+
path: 'send',
|
|
98
|
+
data: request,
|
|
99
|
+
method: 'POST',
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Obtiene el estado de una factura
|
|
104
|
+
* @param {InvoiceStatusRequest} request - Solicitud para consultar estado
|
|
105
|
+
* @returns {Promise<ApiResponse<InvoiceStatusResponse>>} Respuesta con el estado de la factura
|
|
106
|
+
*/
|
|
107
|
+
async getStatus(request) {
|
|
108
|
+
return await this.executeRequest({
|
|
109
|
+
path: 'status',
|
|
110
|
+
data: request,
|
|
111
|
+
method: 'POST',
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.InvoiceService = InvoiceService;
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2ljZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2ludm9pY2Utc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxxRUFBZ0U7QUFZaEU7O0dBRUc7QUFDSCxNQUFhLGNBQWUsU0FBUSw2Q0FBNkI7SUFLL0Q7Ozs7T0FJRztJQUNILFlBQVksVUFBZ0MsRUFBRSxVQUFrQjtRQUM5RCxLQUFLLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQVYzQixvQkFBZSxHQUFHLFFBQVEsQ0FBQztRQUMzQix5QkFBb0IsR0FBRyxhQUFhLENBQUM7UUFDckMscUJBQWdCLEdBQUcsU0FBUyxDQUFDO0lBUzlDLENBQUM7SUFFRDs7T0FFRztJQUNPLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBcUI7UUFDMUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBRUQsSUFBSSxRQUFnQixDQUFDO1FBRXJCLFFBQVEsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlCLEtBQUssR0FBRztnQkFDTixRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDaEMsTUFBTTtZQUNSLEtBQUssR0FBRztnQkFDTixRQUFRLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO2dCQUNyQyxNQUFNO1lBQ1IsS0FBSyxHQUFHO2dCQUNOLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ2pDLE1BQU07WUFDUjtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUMsT0FBTyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQW1CO1lBQ2pELElBQUksRUFBQyxRQUFRO1lBQ2IsSUFBSSxFQUFDLFlBQVk7WUFDakIsTUFBTSxFQUFDLE1BQU07U0FDZCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBNkI7UUFDeEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFFRCxPQUFPLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBOEM7WUFDNUUsSUFBSSxFQUFDLE9BQU87WUFDWixNQUFNLEVBQUMsUUFBUTtTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBeUI7UUFDcEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFDRCxPQUFPLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBaUM7WUFDL0QsSUFBSSxFQUFDLEtBQUs7WUFDVixJQUFJLEVBQUMsT0FBTztZQUNaLE1BQU0sRUFBQyxNQUFNO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQVU7UUFFckIsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCxPQUFPLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBdUI7WUFDckQsSUFBSSxFQUFDLEdBQUcsRUFBRSxNQUFNO1lBQ2hCLE1BQU0sRUFBRSxLQUFLO1NBQ2QsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQTJCO1FBQ3BDLE9BQU8sTUFBTSxJQUFJLENBQUMsY0FBYyxDQUE4QjtZQUM1RCxJQUFJLEVBQUMsTUFBTTtZQUNYLElBQUksRUFBQyxPQUFPO1lBQ1osTUFBTSxFQUFDLE1BQU07U0FDZCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBNkI7UUFDdkMsT0FBTyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQThDO1lBQzlFLElBQUksRUFBQyxRQUFRO1lBQ2IsSUFBSSxFQUFDLE9BQU87WUFDWixNQUFNLEVBQUMsTUFBTTtTQUNkLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDRjtBQXhIRCx3Q0F3SEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRmlzY2FsYXBpSHR0cENsaWVudCB9IGZyb20gJy4uL2h0dHAvZmlzY2FsYXBpLWh0dHAtY2xpZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcGlSZXNwb25zZSB9IGZyb20gJy4uL2NvbW1vbi9hcGktcmVzcG9uc2UnO1xuaW1wb3J0IHsgRmlsZVJlc3BvbnNlIH0gZnJvbSAnLi4vY29tbW9uL2ZpbGUtcmVzcG9uc2UnO1xuaW1wb3J0IHsgQmFzZUZpc2NhbGFwaVNlcnZpY2UgfSBmcm9tICcuL2Jhc2UtZmlzY2FsYXBpLXNlcnZpY2UnO1xuaW1wb3J0IHsgSUludm9pY2VTZXJ2aWNlIH0gZnJvbSAnLi4vYWJzdHJhY3Rpb25zL2ludm9pY2Utc2VydmljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgXG4gIEludm9pY2UsIFxuICBDYW5jZWxJbnZvaWNlUmVxdWVzdCwgXG4gIENhbmNlbEludm9pY2VSZXNwb25zZSwgXG4gIENyZWF0ZVBkZlJlcXVlc3QsIFxuICBTZW5kSW52b2ljZVJlcXVlc3QsXG4gIEludm9pY2VTdGF0dXNSZXF1ZXN0LFxuICBJbnZvaWNlU3RhdHVzUmVzcG9uc2Vcbn0gZnJvbSAnLi4vbW9kZWxzL2ludm9pY2UnO1xuXG4vKipcbiAqIEltcGxlbWVudGFjacOzbiBkZWwgc2VydmljaW8gZGUgZmFjdHVyYXNcbiAqL1xuZXhwb3J0IGNsYXNzIEludm9pY2VTZXJ2aWNlIGV4dGVuZHMgQmFzZUZpc2NhbGFwaVNlcnZpY2U8SW52b2ljZT4gaW1wbGVtZW50cyBJSW52b2ljZVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IElOQ09NRV9FTkRQT0lOVCA9ICdpbmNvbWUnO1xuICBwcml2YXRlIHJlYWRvbmx5IENSRURJVF9OT1RFX0VORFBPSU5UID0gJ2NyZWRpdC1ub3RlJztcbiAgcHJpdmF0ZSByZWFkb25seSBQQVlNRU5UX0VORFBPSU5UID0gJ3BheW1lbnQnO1xuXG4gIC8qKlxuICAgKiBDcmVhIHVuYSBudWV2YSBpbnN0YW5jaWEgZGVsIHNlcnZpY2lvIGRlIGZhY3R1cmFzXG4gICAqIEBwYXJhbSB7SUZpc2NhbGFwaUh0dHBDbGllbnR9IGh0dHBDbGllbnQgLSBDbGllbnRlIEhUVFBcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwaVZlcnNpb24gLSBWZXJzacOzbiBkZSBsYSBBUElcbiAgICovXG4gIGNvbnN0cnVjdG9yKGh0dHBDbGllbnQ6IElGaXNjYWxhcGlIdHRwQ2xpZW50LCBhcGlWZXJzaW9uOiBzdHJpbmcpIHtcbiAgICBzdXBlcihodHRwQ2xpZW50LCAnaW52b2ljZXMnLCBhcGlWZXJzaW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdGRvY1xuICAgKi9cbiAgIG92ZXJyaWRlIGFzeW5jIGNyZWF0ZShyZXF1ZXN0TW9kZWw6IEludm9pY2UpOiBQcm9taXNlPEFwaVJlc3BvbnNlPEludm9pY2U+PiB7XG4gICAgaWYgKCFyZXF1ZXN0TW9kZWwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncmVxdWVzdE1vZGVsIGNhbm5vdCBiZSBudWxsJyk7XG4gICAgfVxuXG4gICAgbGV0IGVuZHBvaW50OiBzdHJpbmc7XG5cbiAgICBzd2l0Y2ggKHJlcXVlc3RNb2RlbC50eXBlQ29kZSkge1xuICAgICAgY2FzZSAnSSc6XG4gICAgICAgIGVuZHBvaW50ID0gdGhpcy5JTkNPTUVfRU5EUE9JTlQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRSc6XG4gICAgICAgIGVuZHBvaW50ID0gdGhpcy5DUkVESVRfTk9URV9FTkRQT0lOVDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdQJzpcbiAgICAgICAgZW5kcG9pbnQgPSB0aGlzLlBBWU1FTlRfRU5EUE9JTlQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBpbnZvaWNlIHR5cGU6ICR7cmVxdWVzdE1vZGVsLnR5cGVDb2RlfWApO1xuICAgIH1cblxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3Q8SW52b2ljZSwgSW52b2ljZT4oe1xuICAgICAgICBwYXRoOmVuZHBvaW50LFxuICAgICAgICBkYXRhOnJlcXVlc3RNb2RlbCxcbiAgICAgICAgbWV0aG9kOidQT1NUJyxcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbmNlbGEgdW5hIGZhY3R1cmFcbiAgICogQHBhcmFtIHtDYW5jZWxJbnZvaWNlUmVxdWVzdH0gcmVxdWVzdCAtIFNvbGljaXR1ZCBwYXJhIGNhbmNlbGFyIGZhY3R1cmFcbiAgICogQHJldHVybnMge1Byb21pc2U8QXBpUmVzcG9uc2U8Q2FuY2VsSW52b2ljZVJlc3BvbnNlPj59IFJlc3B1ZXN0YSBkZSBsYSBjYW5jZWxhY2nDs25cbiAgICovXG4gIGFzeW5jIGNhbmNlbChyZXF1ZXN0OiBDYW5jZWxJbnZvaWNlUmVxdWVzdCk6IFByb21pc2U8QXBpUmVzcG9uc2U8Q2FuY2VsSW52b2ljZVJlc3BvbnNlPj4ge1xuICAgIGlmICghcmVxdWVzdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdyZXF1ZXN0IGNhbm5vdCBiZSBudWxsJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3Q8Q2FuY2VsSW52b2ljZVJlc3BvbnNlLCBDYW5jZWxJbnZvaWNlUmVxdWVzdD4oe1xuICAgICAgZGF0YTpyZXF1ZXN0LFxuICAgICAgbWV0aG9kOidERUxFVEUnLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgZWwgUERGIGRlIHVuYSBmYWN0dXJhXG4gICAqIEBwYXJhbSB7Q3JlYXRlUGRmUmVxdWVzdH0gcmVxdWVzdCAtIFNvbGljaXR1ZCBwYXJhIGNyZWFyIFBERlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxBcGlSZXNwb25zZTxGaWxlUmVzcG9uc2U+Pn0gUmVzcHVlc3RhIGNvbiBlbCBhcmNoaXZvIFBERlxuICAgKi9cbiAgYXN5bmMgZ2V0UGRmKHJlcXVlc3Q6IENyZWF0ZVBkZlJlcXVlc3QpOiBQcm9taXNlPEFwaVJlc3BvbnNlPEZpbGVSZXNwb25zZT4+IHtcbiAgICBpZiAoIXJlcXVlc3QpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncmVxdWVzdCBjYW5ub3QgYmUgbnVsbCcpO1xuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdDxGaWxlUmVzcG9uc2UsIENyZWF0ZVBkZlJlcXVlc3Q+KHtcbiAgICAgIHBhdGg6J3BkZicsXG4gICAgICBkYXRhOnJlcXVlc3QsXG4gICAgICBtZXRob2Q6J1BPU1QnLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgZWwgWE1MIGRlIHVuYSBmYWN0dXJhXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpZCAtIElEIGRlIGxhIGZhY3R1cmFcbiAgICogQHJldHVybnMge1Byb21pc2U8QXBpUmVzcG9uc2U8RmlsZVJlc3BvbnNlPj59IFJlc3B1ZXN0YSBjb24gZWwgYXJjaGl2byBYTUxcbiAgICovXG4gIGFzeW5jIGdldFhtbChpZDogc3RyaW5nKTogUHJvbWlzZTxBcGlSZXNwb25zZTxGaWxlUmVzcG9uc2U+PiB7XG5cbiAgICBpZiAoIWlkIHx8IGlkLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaWQgY2Fubm90IGJlIG51bGwgb3IgZW1wdHknKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdDxGaWxlUmVzcG9uc2UsIHN0cmluZz4oe1xuICAgICAgcGF0aDpgJHtpZH0veG1sYCxcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgfSk7XG5cbiAgfVxuXG4gIC8qKlxuICAgKiBFbnbDrWEgdW5hIGZhY3R1cmEgcG9yIGNvcnJlbyBlbGVjdHLDs25pY29cbiAgICogQHBhcmFtIHtTZW5kSW52b2ljZVJlcXVlc3R9IHJlcXVlc3QgLSBTb2xpY2l0dWQgcGFyYSBlbnZpYXIgZmFjdHVyYVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxBcGlSZXNwb25zZTxib29sZWFuPj59IFJlc3VsdGFkbyBkZSBsYSBvcGVyYWNpw7NuXG4gICAqL1xuICBhc3luYyBzZW5kKHJlcXVlc3Q6IFNlbmRJbnZvaWNlUmVxdWVzdCk6IFByb21pc2U8QXBpUmVzcG9uc2U8Ym9vbGVhbj4+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdDxib29sZWFuLCBTZW5kSW52b2ljZVJlcXVlc3Q+KHtcbiAgICAgIHBhdGg6J3NlbmQnLFxuICAgICAgZGF0YTpyZXF1ZXN0LFxuICAgICAgbWV0aG9kOidQT1NUJyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGVsIGVzdGFkbyBkZSB1bmEgZmFjdHVyYVxuICAgKiBAcGFyYW0ge0ludm9pY2VTdGF0dXNSZXF1ZXN0fSByZXF1ZXN0IC0gU29saWNpdHVkIHBhcmEgY29uc3VsdGFyIGVzdGFkb1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxBcGlSZXNwb25zZTxJbnZvaWNlU3RhdHVzUmVzcG9uc2U+Pn0gUmVzcHVlc3RhIGNvbiBlbCBlc3RhZG8gZGUgbGEgZmFjdHVyYVxuICAgKi9cbiAgYXN5bmMgZ2V0U3RhdHVzKHJlcXVlc3Q6IEludm9pY2VTdGF0dXNSZXF1ZXN0KTogUHJvbWlzZTxBcGlSZXNwb25zZTxJbnZvaWNlU3RhdHVzUmVzcG9uc2U+PiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmV4ZWN1dGVSZXF1ZXN0PEludm9pY2VTdGF0dXNSZXNwb25zZSwgSW52b2ljZVN0YXR1c1JlcXVlc3Q+KHtcbiAgICAgICAgcGF0aDonc3RhdHVzJyxcbiAgICAgICAgZGF0YTpyZXF1ZXN0LFxuICAgICAgICBtZXRob2Q6J1BPU1QnLFxuICAgICAgfSk7XG4gIH1cbn0iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PersonService = void 0;
|
|
4
|
+
const base_fiscalapi_service_1 = require("./base-fiscalapi-service");
|
|
5
|
+
/**
|
|
6
|
+
* Implementación del servicio de personas
|
|
7
|
+
*/
|
|
8
|
+
class PersonService extends base_fiscalapi_service_1.BaseFiscalapiService {
|
|
9
|
+
/**
|
|
10
|
+
* Crea una nueva instancia del servicio de personas
|
|
11
|
+
* @param {IFiscalapiHttpClient} httpClient - Cliente HTTP
|
|
12
|
+
* @param {string} apiVersion - Versión de la API
|
|
13
|
+
*/
|
|
14
|
+
constructor(httpClient, apiVersion) {
|
|
15
|
+
super(httpClient, 'people', apiVersion);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.PersonService = PersonService;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcGVyc29uLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EscUVBQWdFO0FBR2hFOztHQUVHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsNkNBQTRCO0lBQzdEOzs7O09BSUc7SUFDSCxZQUFZLFVBQWdDLEVBQUUsVUFBa0I7UUFDOUQsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNGO0FBVEQsc0NBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IFBlcnNvbiB9IGZyb20gJy4uL21vZGVscy9wZXJzb24nO1xuaW1wb3J0IHsgSUZpc2NhbGFwaUh0dHBDbGllbnQgfSBmcm9tICcuLi9odHRwL2Zpc2NhbGFwaS1odHRwLWNsaWVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmFzZUZpc2NhbGFwaVNlcnZpY2UgfSBmcm9tICcuL2Jhc2UtZmlzY2FsYXBpLXNlcnZpY2UnO1xuaW1wb3J0IHsgSVBlcnNvblNlcnZpY2UgfSBmcm9tICcuLic7XG5cbi8qKlxuICogSW1wbGVtZW50YWNpw7NuIGRlbCBzZXJ2aWNpbyBkZSBwZXJzb25hc1xuICovXG5leHBvcnQgY2xhc3MgUGVyc29uU2VydmljZSBleHRlbmRzIEJhc2VGaXNjYWxhcGlTZXJ2aWNlPFBlcnNvbj4gaW1wbGVtZW50cyBJUGVyc29uU2VydmljZSB7XG4gIC8qKlxuICAgKiBDcmVhIHVuYSBudWV2YSBpbnN0YW5jaWEgZGVsIHNlcnZpY2lvIGRlIHBlcnNvbmFzXG4gICAqIEBwYXJhbSB7SUZpc2NhbGFwaUh0dHBDbGllbnR9IGh0dHBDbGllbnQgLSBDbGllbnRlIEhUVFBcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwaVZlcnNpb24gLSBWZXJzacOzbiBkZSBsYSBBUElcbiAgICovXG4gIGNvbnN0cnVjdG9yKGh0dHBDbGllbnQ6IElGaXNjYWxhcGlIdHRwQ2xpZW50LCBhcGlWZXJzaW9uOiBzdHJpbmcpIHtcbiAgICBzdXBlcihodHRwQ2xpZW50LCAncGVvcGxlJywgYXBpVmVyc2lvbik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProductService = void 0;
|
|
4
|
+
const base_fiscalapi_service_1 = require("./base-fiscalapi-service");
|
|
5
|
+
/**
|
|
6
|
+
* Implementación del servicio de productos
|
|
7
|
+
*/
|
|
8
|
+
class ProductService extends base_fiscalapi_service_1.BaseFiscalapiService {
|
|
9
|
+
/**
|
|
10
|
+
* Crea una nueva instancia del servicio de productos
|
|
11
|
+
* @param {IFiscalapiHttpClient} httpClient - Cliente HTTP
|
|
12
|
+
* @param {string} apiVersion - Versión de la API
|
|
13
|
+
*/
|
|
14
|
+
constructor(httpClient, apiVersion) {
|
|
15
|
+
super(httpClient, 'products', apiVersion);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.ProductService = ProductService;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3Byb2R1Y3Qtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxxRUFBZ0U7QUFHaEU7O0dBRUc7QUFDSCxNQUFhLGNBQWUsU0FBUSw2Q0FBNkI7SUFDL0Q7Ozs7T0FJRztJQUNILFlBQVksVUFBZ0MsRUFBRSxVQUFrQjtRQUM5RCxLQUFLLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM1QyxDQUFDO0NBQ0Y7QUFURCx3Q0FTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2R1Y3QgfSBmcm9tICcuLi9tb2RlbHMvcHJvZHVjdCc7XG5pbXBvcnQgeyBJRmlzY2FsYXBpSHR0cENsaWVudCB9IGZyb20gJy4uL2h0dHAvZmlzY2FsYXBpLWh0dHAtY2xpZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBCYXNlRmlzY2FsYXBpU2VydmljZSB9IGZyb20gJy4vYmFzZS1maXNjYWxhcGktc2VydmljZSc7XG5pbXBvcnQgeyBJUHJvZHVjdFNlcnZpY2UgfSBmcm9tICcuLic7XG5cbi8qKlxuICogSW1wbGVtZW50YWNpw7NuIGRlbCBzZXJ2aWNpbyBkZSBwcm9kdWN0b3NcbiAqL1xuZXhwb3J0IGNsYXNzIFByb2R1Y3RTZXJ2aWNlIGV4dGVuZHMgQmFzZUZpc2NhbGFwaVNlcnZpY2U8UHJvZHVjdD4gaW1wbGVtZW50cyBJUHJvZHVjdFNlcnZpY2Uge1xuICAvKipcbiAgICogQ3JlYSB1bmEgbnVldmEgaW5zdGFuY2lhIGRlbCBzZXJ2aWNpbyBkZSBwcm9kdWN0b3NcbiAgICogQHBhcmFtIHtJRmlzY2FsYXBpSHR0cENsaWVudH0gaHR0cENsaWVudCAtIENsaWVudGUgSFRUUFxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXBpVmVyc2lvbiAtIFZlcnNpw7NuIGRlIGxhIEFQSVxuICAgKi9cbiAgY29uc3RydWN0b3IoaHR0cENsaWVudDogSUZpc2NhbGFwaUh0dHBDbGllbnQsIGFwaVZlcnNpb246IHN0cmluZykge1xuICAgIHN1cGVyKGh0dHBDbGllbnQsICdwcm9kdWN0cycsIGFwaVZlcnNpb24pO1xuICB9XG59Il19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TaxFileService = void 0;
|
|
4
|
+
const base_fiscalapi_service_1 = require("./base-fiscalapi-service");
|
|
5
|
+
/**
|
|
6
|
+
* Implementación del servicio de archivos fiscales
|
|
7
|
+
*/
|
|
8
|
+
class TaxFileService extends base_fiscalapi_service_1.BaseFiscalapiService {
|
|
9
|
+
/**
|
|
10
|
+
* Crea una nueva instancia del servicio de archivos fiscales
|
|
11
|
+
* @param {IFiscalapiHttpClient} httpClient - Cliente HTTP
|
|
12
|
+
* @param {string} apiVersion - Versión de la API
|
|
13
|
+
*/
|
|
14
|
+
constructor(httpClient, apiVersion) {
|
|
15
|
+
super(httpClient, 'tax-files', apiVersion);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Obtiene el último par de ids de certificados válidos y vigente de una persona. Es decir sus certificados por defecto (ids)
|
|
19
|
+
*
|
|
20
|
+
* @param personId - Id de la persona propietaria de los certificados
|
|
21
|
+
* @returns Promise que resuelve en una respuesta API con una lista de un par de certificados, pero sin contenido, solo sus Ids
|
|
22
|
+
*/
|
|
23
|
+
async getDefaultReferences(personId) {
|
|
24
|
+
// GET /api/v4/tax-files/{personId}/default-references
|
|
25
|
+
const path = `${personId}/default-references`;
|
|
26
|
+
const endpoint = this.buildEndpoint(path);
|
|
27
|
+
return this.httpClient.getAsync(endpoint);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Obtiene el último par de certificados válidos y vigente de una persona. Es decir sus certificados por defecto
|
|
31
|
+
*
|
|
32
|
+
* @param personId - Id de la persona dueña de los certificados
|
|
33
|
+
* @returns Promise que resuelve en una respuesta API con una lista de un par de certificados
|
|
34
|
+
*/
|
|
35
|
+
async getDefaultValues(personId) {
|
|
36
|
+
// GET /api/v4/tax-files/{personId}/default-values
|
|
37
|
+
const path = `${personId}/default-values`;
|
|
38
|
+
const endpoint = this.buildEndpoint(path);
|
|
39
|
+
return this.httpClient.getAsync(endpoint);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.TaxFileService = TaxFileService;
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LWZpbGUtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy90YXgtZmlsZS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHFFQUFnRTtBQUdoRTs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLDZDQUE2QjtJQUMvRDs7OztPQUlHO0lBQ0gsWUFBWSxVQUFnQyxFQUFFLFVBQWtCO1FBQzlELEtBQUssQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFHQzs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxRQUFnQjtRQUN6QyxzREFBc0Q7UUFDdEQsTUFBTSxJQUFJLEdBQUcsR0FBRyxRQUFRLHFCQUFxQixDQUFDO1FBQzlDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBWSxRQUFRLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7O01BS0U7SUFDSyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsUUFBZ0I7UUFDNUMsa0RBQWtEO1FBQ2xELE1BQU0sSUFBSSxHQUFHLEdBQUcsUUFBUSxpQkFBaUIsQ0FBQztRQUMxQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQVksUUFBUSxDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNKO0FBcENELHdDQW9DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRheEZpbGUgfSBmcm9tICcuLi9tb2RlbHMvdGF4LWZpbGUnO1xuaW1wb3J0IHsgSUZpc2NhbGFwaUh0dHBDbGllbnQgfSBmcm9tICcuLi9odHRwL2Zpc2NhbGFwaS1odHRwLWNsaWVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi9jb21tb24vYXBpLXJlc3BvbnNlJztcbmltcG9ydCB7IEZpbGVSZXNwb25zZSB9IGZyb20gJy4uL2NvbW1vbi9maWxlLXJlc3BvbnNlJztcbmltcG9ydCB7IEJhc2VGaXNjYWxhcGlTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLWZpc2NhbGFwaS1zZXJ2aWNlJztcbmltcG9ydCB7IElUYXhGaWxlU2VydmljZSB9IGZyb20gJy4uJztcblxuLyoqXG4gKiBJbXBsZW1lbnRhY2nDs24gZGVsIHNlcnZpY2lvIGRlIGFyY2hpdm9zIGZpc2NhbGVzXG4gKi9cbmV4cG9ydCBjbGFzcyBUYXhGaWxlU2VydmljZSBleHRlbmRzIEJhc2VGaXNjYWxhcGlTZXJ2aWNlPFRheEZpbGU+IGltcGxlbWVudHMgSVRheEZpbGVTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIENyZWEgdW5hIG51ZXZhIGluc3RhbmNpYSBkZWwgc2VydmljaW8gZGUgYXJjaGl2b3MgZmlzY2FsZXNcbiAgICogQHBhcmFtIHtJRmlzY2FsYXBpSHR0cENsaWVudH0gaHR0cENsaWVudCAtIENsaWVudGUgSFRUUFxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXBpVmVyc2lvbiAtIFZlcnNpw7NuIGRlIGxhIEFQSVxuICAgKi9cbiAgY29uc3RydWN0b3IoaHR0cENsaWVudDogSUZpc2NhbGFwaUh0dHBDbGllbnQsIGFwaVZlcnNpb246IHN0cmluZykge1xuICAgIHN1cGVyKGh0dHBDbGllbnQsICd0YXgtZmlsZXMnLCBhcGlWZXJzaW9uKTtcbiAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBPYnRpZW5lIGVsIMO6bHRpbW8gcGFyIGRlIGlkcyBkZSBjZXJ0aWZpY2Fkb3MgdsOhbGlkb3MgeSB2aWdlbnRlIGRlIHVuYSBwZXJzb25hLiBFcyBkZWNpciBzdXMgY2VydGlmaWNhZG9zIHBvciBkZWZlY3RvIChpZHMpXG4gICAgICogXG4gICAgICogQHBhcmFtIHBlcnNvbklkIC0gSWQgZGUgbGEgcGVyc29uYSBwcm9waWV0YXJpYSBkZSBsb3MgY2VydGlmaWNhZG9zXG4gICAgICogQHJldHVybnMgUHJvbWlzZSBxdWUgcmVzdWVsdmUgZW4gdW5hIHJlc3B1ZXN0YSBBUEkgY29uIHVuYSBsaXN0YSBkZSB1biBwYXIgZGUgY2VydGlmaWNhZG9zLCBwZXJvIHNpbiBjb250ZW5pZG8sIHNvbG8gc3VzIElkc1xuICAgICAqL1xuICAgIGFzeW5jIGdldERlZmF1bHRSZWZlcmVuY2VzKHBlcnNvbklkOiBzdHJpbmcpOiBQcm9taXNlPEFwaVJlc3BvbnNlPFRheEZpbGVbXT4+IHtcbiAgICAgIC8vIEdFVCAvYXBpL3Y0L3RheC1maWxlcy97cGVyc29uSWR9L2RlZmF1bHQtcmVmZXJlbmNlc1xuICAgICAgY29uc3QgcGF0aCA9IGAke3BlcnNvbklkfS9kZWZhdWx0LXJlZmVyZW5jZXNgO1xuICAgICAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmJ1aWxkRW5kcG9pbnQocGF0aCk7XG4gICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldEFzeW5jPFRheEZpbGVbXT4oZW5kcG9pbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogT2J0aWVuZSBlbCDDumx0aW1vIHBhciBkZSBjZXJ0aWZpY2Fkb3MgdsOhbGlkb3MgeSB2aWdlbnRlIGRlIHVuYSBwZXJzb25hLiBFcyBkZWNpciBzdXMgY2VydGlmaWNhZG9zIHBvciBkZWZlY3RvXG4gICAgKiBcbiAgICAqIEBwYXJhbSBwZXJzb25JZCAtIElkIGRlIGxhIHBlcnNvbmEgZHVlw7FhIGRlIGxvcyBjZXJ0aWZpY2Fkb3NcbiAgICAqIEByZXR1cm5zIFByb21pc2UgcXVlIHJlc3VlbHZlIGVuIHVuYSByZXNwdWVzdGEgQVBJIGNvbiB1bmEgbGlzdGEgZGUgdW4gcGFyIGRlIGNlcnRpZmljYWRvc1xuICAgICovXG4gICAgcHVibGljIGFzeW5jIGdldERlZmF1bHRWYWx1ZXMocGVyc29uSWQ6IHN0cmluZyk6IFByb21pc2U8QXBpUmVzcG9uc2U8VGF4RmlsZVtdPj4ge1xuICAgICAgLy8gR0VUIC9hcGkvdjQvdGF4LWZpbGVzL3twZXJzb25JZH0vZGVmYXVsdC12YWx1ZXNcbiAgICAgIGNvbnN0IHBhdGggPSBgJHtwZXJzb25JZH0vZGVmYXVsdC12YWx1ZXNgO1xuICAgICAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmJ1aWxkRW5kcG9pbnQocGF0aCk7XG4gICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldEFzeW5jPFRheEZpbGVbXT4oZW5kcG9pbnQpO1xuICAgIH1cbn0iXX0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SAT_DATE_FORMAT = void 0;
|
|
4
|
+
exports.formatSatDate = formatSatDate;
|
|
5
|
+
exports.parseSatDate = parseSatDate;
|
|
6
|
+
const luxon_1 = require("luxon");
|
|
7
|
+
/**
|
|
8
|
+
* Formato de fecha SAT (para facturas mexicanas)
|
|
9
|
+
*/
|
|
10
|
+
exports.SAT_DATE_FORMAT = 'yyyy-MM-dd\'T\'HH:mm:ss';
|
|
11
|
+
/**
|
|
12
|
+
* Formatea una fecha de acuerdo al formato de fecha SAT
|
|
13
|
+
* @param {Date|string|DateTime} date - Fecha a formatear
|
|
14
|
+
* @returns {string} Cadena de fecha formateada
|
|
15
|
+
*/
|
|
16
|
+
function formatSatDate(date) {
|
|
17
|
+
if (typeof date === 'string') {
|
|
18
|
+
return luxon_1.DateTime.fromISO(date).toFormat(exports.SAT_DATE_FORMAT);
|
|
19
|
+
}
|
|
20
|
+
else if (date instanceof Date) {
|
|
21
|
+
return luxon_1.DateTime.fromJSDate(date).toFormat(exports.SAT_DATE_FORMAT);
|
|
22
|
+
}
|
|
23
|
+
else if (date instanceof luxon_1.DateTime) {
|
|
24
|
+
return date.toFormat(exports.SAT_DATE_FORMAT);
|
|
25
|
+
}
|
|
26
|
+
throw new Error('Formato de fecha inválido');
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Analiza una cadena de formato de fecha SAT en un objeto DateTime
|
|
30
|
+
* @param {string} dateStr - Cadena de fecha en formato SAT
|
|
31
|
+
* @returns {DateTime} Objeto DateTime
|
|
32
|
+
*/
|
|
33
|
+
function parseSatDate(dateStr) {
|
|
34
|
+
return luxon_1.DateTime.fromFormat(dateStr, exports.SAT_DATE_FORMAT);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9kYXRlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWNBLHNDQVVDO0FBT0Qsb0NBRUc7QUFoQ0gsaUNBQWlDO0FBR2pDOztHQUVHO0FBQ1UsUUFBQSxlQUFlLEdBQUcseUJBQXlCLENBQUM7QUFFekQ7Ozs7R0FJRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxJQUE4QjtJQUMxRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLE9BQU8sZ0JBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLHVCQUFlLENBQUMsQ0FBQztJQUMxRCxDQUFDO1NBQU0sSUFBSSxJQUFJLFlBQVksSUFBSSxFQUFFLENBQUM7UUFDaEMsT0FBTyxnQkFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsdUJBQWUsQ0FBQyxDQUFDO0lBQzdELENBQUM7U0FBTSxJQUFJLElBQUksWUFBWSxnQkFBUSxFQUFFLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLHVCQUFlLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLE9BQWU7SUFDeEMsT0FBTyxnQkFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsdUJBQWUsQ0FBQyxDQUFDO0FBQ3ZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIgXG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gJ2x1eG9uJztcblxuXG4vKipcbiAqIEZvcm1hdG8gZGUgZmVjaGEgU0FUIChwYXJhIGZhY3R1cmFzIG1leGljYW5hcylcbiAqL1xuZXhwb3J0IGNvbnN0IFNBVF9EQVRFX0ZPUk1BVCA9ICd5eXl5LU1NLWRkXFwnVFxcJ0hIOm1tOnNzJztcblxuLyoqXG4gKiBGb3JtYXRlYSB1bmEgZmVjaGEgZGUgYWN1ZXJkbyBhbCBmb3JtYXRvIGRlIGZlY2hhIFNBVFxuICogQHBhcmFtIHtEYXRlfHN0cmluZ3xEYXRlVGltZX0gZGF0ZSAtIEZlY2hhIGEgZm9ybWF0ZWFyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBDYWRlbmEgZGUgZmVjaGEgZm9ybWF0ZWFkYVxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U2F0RGF0ZShkYXRlOiBEYXRlIHwgc3RyaW5nIHwgRGF0ZVRpbWUpOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIERhdGVUaW1lLmZyb21JU08oZGF0ZSkudG9Gb3JtYXQoU0FUX0RBVEVfRk9STUFUKTtcbiAgfSBlbHNlIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiBEYXRlVGltZS5mcm9tSlNEYXRlKGRhdGUpLnRvRm9ybWF0KFNBVF9EQVRFX0ZPUk1BVCk7XG4gIH0gZWxzZSBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGVUaW1lKSB7XG4gICAgcmV0dXJuIGRhdGUudG9Gb3JtYXQoU0FUX0RBVEVfRk9STUFUKTtcbiAgfVxuICBcbiAgdGhyb3cgbmV3IEVycm9yKCdGb3JtYXRvIGRlIGZlY2hhIGludsOhbGlkbycpO1xufVxuXG4vKipcbiAqIEFuYWxpemEgdW5hIGNhZGVuYSBkZSBmb3JtYXRvIGRlIGZlY2hhIFNBVCBlbiB1biBvYmpldG8gRGF0ZVRpbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSBkYXRlU3RyIC0gQ2FkZW5hIGRlIGZlY2hhIGVuIGZvcm1hdG8gU0FUXG4gKiBAcmV0dXJucyB7RGF0ZVRpbWV9IE9iamV0byBEYXRlVGltZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTYXREYXRlKGRhdGVTdHI6IHN0cmluZyk6IERhdGVUaW1lIHtcbiAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbUZvcm1hdChkYXRlU3RyLCBTQVRfREFURV9GT1JNQVQpO1xuICB9XG4gICJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.encodeToBase64 = encodeToBase64;
|
|
4
|
+
exports.decodeFromBase64 = decodeFromBase64;
|
|
5
|
+
/**
|
|
6
|
+
* Codifica una cadena a base64
|
|
7
|
+
* @param {string} text - Texto a codificar
|
|
8
|
+
* @returns {string} Cadena codificada en base64
|
|
9
|
+
*/
|
|
10
|
+
function encodeToBase64(text) {
|
|
11
|
+
return Buffer.from(text).toString('base64');
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Decodifica una cadena base64
|
|
15
|
+
* @param {string} base64Text - Cadena codificada en base64
|
|
16
|
+
* @returns {string} Cadena decodificada
|
|
17
|
+
*/
|
|
18
|
+
function decodeFromBase64(base64Text) {
|
|
19
|
+
return Buffer.from(base64Text, 'base64').toString('utf8');
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RpbmctdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvZW5jb2RpbmctdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSx3Q0FFRztBQU9ELDRDQUVDO0FBaEJIOzs7O0dBSUc7QUFDSCxTQUFnQixjQUFjLENBQUMsSUFBWTtJQUN2QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsVUFBa0I7SUFDakQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiBcbi8qKlxuICogQ29kaWZpY2EgdW5hIGNhZGVuYSBhIGJhc2U2NFxuICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSBUZXh0byBhIGNvZGlmaWNhclxuICogQHJldHVybnMge3N0cmluZ30gQ2FkZW5hIGNvZGlmaWNhZGEgZW4gYmFzZTY0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVUb0Jhc2U2NCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbSh0ZXh0KS50b1N0cmluZygnYmFzZTY0Jyk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBEZWNvZGlmaWNhIHVuYSBjYWRlbmEgYmFzZTY0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBiYXNlNjRUZXh0IC0gQ2FkZW5hIGNvZGlmaWNhZGEgZW4gYmFzZTY0XG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IENhZGVuYSBkZWNvZGlmaWNhZGFcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBkZWNvZGVGcm9tQmFzZTY0KGJhc2U2NFRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGJhc2U2NFRleHQsICdiYXNlNjQnKS50b1N0cmluZygndXRmOCcpO1xuICB9Il19
|