evatr-api 0.1.1
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.md +21 -0
- package/README.md +434 -0
- package/dist/api-updater.d.ts +67 -0
- package/dist/api-updater.d.ts.map +1 -0
- package/dist/api-updater.js +283 -0
- package/dist/api-updater.js.map +1 -0
- package/dist/client.d.ts +111 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +278 -0
- package/dist/client.js.map +1 -0
- package/dist/constants.d.ts +39 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +268 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/migration-helper.d.ts +92 -0
- package/dist/migration-helper.d.ts.map +1 -0
- package/dist/migration-helper.js +222 -0
- package/dist/migration-helper.js.map +1 -0
- package/dist/status-loader.d.ts +71 -0
- package/dist/status-loader.d.ts.map +1 -0
- package/dist/status-loader.js +191 -0
- package/dist/status-loader.js.map +1 -0
- package/dist/types.d.ts +152 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +77 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +135 -0
- package/dist/utils.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable no-console */
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.EvatrApiUpdater = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* Utilities for checking and updating API documentation and status messages
|
|
10
|
+
*/
|
|
11
|
+
const axios_1 = __importDefault(require("axios"));
|
|
12
|
+
const fs_1 = require("fs");
|
|
13
|
+
const constants_1 = require("./constants");
|
|
14
|
+
const path_1 = require("path");
|
|
15
|
+
/**
|
|
16
|
+
* API Update utilities for eVatR API
|
|
17
|
+
*/
|
|
18
|
+
class EvatrApiUpdater {
|
|
19
|
+
/**
|
|
20
|
+
* Check for new API documentation version
|
|
21
|
+
*/
|
|
22
|
+
static async checkApiDocsUpdate() {
|
|
23
|
+
try {
|
|
24
|
+
console.log('Checking for API documentation updates...');
|
|
25
|
+
// Fetch current API docs
|
|
26
|
+
const response = await axios_1.default.get(this.API_DOCS_URL);
|
|
27
|
+
const apiDocs = response.data;
|
|
28
|
+
const latestVersion = apiDocs.info?.version;
|
|
29
|
+
if (!latestVersion) {
|
|
30
|
+
throw new Error('Could not extract version from API docs');
|
|
31
|
+
}
|
|
32
|
+
// Check if we have a local version
|
|
33
|
+
const localApiDocsPath = (0, path_1.join)(this.DOCS_DIR, 'api-docs.json');
|
|
34
|
+
let currentVersion;
|
|
35
|
+
if ((0, fs_1.existsSync)(localApiDocsPath)) {
|
|
36
|
+
try {
|
|
37
|
+
const localDocs = JSON.parse((0, fs_1.readFileSync)(localApiDocsPath, 'utf8'));
|
|
38
|
+
currentVersion = localDocs.info?.version;
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
console.warn('Could not read local API docs version:', error);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const hasUpdate = !currentVersion || currentVersion !== latestVersion;
|
|
45
|
+
return {
|
|
46
|
+
hasUpdate,
|
|
47
|
+
currentVersion,
|
|
48
|
+
latestVersion,
|
|
49
|
+
downloadUrl: this.API_DOCS_URL
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
console.error('Error checking API docs update:', error);
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Download and save new API documentation
|
|
59
|
+
*/
|
|
60
|
+
static async downloadApiDocs() {
|
|
61
|
+
try {
|
|
62
|
+
console.log('Downloading latest API documentation...');
|
|
63
|
+
const response = await axios_1.default.get(this.API_DOCS_URL);
|
|
64
|
+
const apiDocs = response.data;
|
|
65
|
+
const version = apiDocs.info?.version || 'unknown';
|
|
66
|
+
const timestamp = new Date().toISOString().split('T')[0]; // YYYY-MM-DD
|
|
67
|
+
// Save with version and date
|
|
68
|
+
const filename = `api-docs-${version}-${timestamp}.json`;
|
|
69
|
+
const filepath = (0, path_1.join)(this.DOCS_DIR, filename);
|
|
70
|
+
(0, fs_1.writeFileSync)(filepath, JSON.stringify(apiDocs, null, 2));
|
|
71
|
+
// Also update the main api-docs.json file
|
|
72
|
+
const mainFilepath = (0, path_1.join)(this.DOCS_DIR, 'api-docs.json');
|
|
73
|
+
(0, fs_1.writeFileSync)(mainFilepath, JSON.stringify(apiDocs, null, 2));
|
|
74
|
+
console.log(`✅ API documentation saved to: ${filename}`);
|
|
75
|
+
return filepath;
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
console.error('Error downloading API docs:', error);
|
|
79
|
+
throw error;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Check for new status messages
|
|
84
|
+
*/
|
|
85
|
+
static async checkStatusMessagesUpdate() {
|
|
86
|
+
try {
|
|
87
|
+
console.log('Checking for status messages updates...');
|
|
88
|
+
// Fetch current status messages from API
|
|
89
|
+
const response = await axios_1.default.get(constants_1.ENDPOINTS.STATUS_MESSAGES);
|
|
90
|
+
const latestMessages = response.data;
|
|
91
|
+
// Load local status messages
|
|
92
|
+
const localStatusPath = (0, path_1.join)(this.DOCS_DIR, 'statusmeldungen.json');
|
|
93
|
+
let currentMessages = [];
|
|
94
|
+
if ((0, fs_1.existsSync)(localStatusPath)) {
|
|
95
|
+
try {
|
|
96
|
+
currentMessages = JSON.parse((0, fs_1.readFileSync)(localStatusPath, 'utf8'));
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
console.warn('Could not read local status messages:', error);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Compare messages
|
|
103
|
+
const diff = this.compareStatusMessages(currentMessages, latestMessages);
|
|
104
|
+
const hasUpdate = diff.added.length > 0 || diff.removed.length > 0 || diff.modified.length > 0;
|
|
105
|
+
return {
|
|
106
|
+
hasUpdate,
|
|
107
|
+
currentVersion: `${currentMessages.length} messages`,
|
|
108
|
+
latestVersion: `${latestMessages.length} messages`,
|
|
109
|
+
downloadUrl: constants_1.ENDPOINTS.STATUS_MESSAGES,
|
|
110
|
+
diff
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
console.error('Error checking status messages update:', error);
|
|
115
|
+
throw error;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Download and save new status messages
|
|
120
|
+
*/
|
|
121
|
+
static async downloadStatusMessages() {
|
|
122
|
+
try {
|
|
123
|
+
console.log('Downloading latest status messages...');
|
|
124
|
+
const response = await axios_1.default.get(constants_1.ENDPOINTS.STATUS_MESSAGES);
|
|
125
|
+
const statusMessages = response.data;
|
|
126
|
+
const timestamp = new Date().toISOString().split('T')[0]; // YYYY-MM-DD
|
|
127
|
+
// Save with date
|
|
128
|
+
const filename = `statusmeldungen-${timestamp}.json`;
|
|
129
|
+
const filepath = (0, path_1.join)(this.DOCS_DIR, filename);
|
|
130
|
+
(0, fs_1.writeFileSync)(filepath, JSON.stringify(statusMessages, null, 2));
|
|
131
|
+
// Also update the main statusmeldungen.json file
|
|
132
|
+
const mainFilepath = (0, path_1.join)(this.DOCS_DIR, 'statusmeldungen.json');
|
|
133
|
+
(0, fs_1.writeFileSync)(mainFilepath, JSON.stringify(statusMessages, null, 2));
|
|
134
|
+
console.log(`✅ Status messages saved to: ${filename}`);
|
|
135
|
+
return filepath;
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
console.error('Error downloading status messages:', error);
|
|
139
|
+
throw error;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Compare two sets of status messages and return differences
|
|
144
|
+
*/
|
|
145
|
+
static compareStatusMessages(current, latest) {
|
|
146
|
+
const currentMap = new Map(current.map(msg => [msg.status, msg]));
|
|
147
|
+
const latestMap = new Map(latest.map(msg => [msg.status, msg]));
|
|
148
|
+
const added = [];
|
|
149
|
+
const removed = [];
|
|
150
|
+
const modified = [];
|
|
151
|
+
// Find added and modified messages
|
|
152
|
+
for (const [status, latestMsg] of latestMap) {
|
|
153
|
+
const currentMsg = currentMap.get(status);
|
|
154
|
+
if (!currentMsg) {
|
|
155
|
+
added.push(latestMsg);
|
|
156
|
+
}
|
|
157
|
+
else if (JSON.stringify(currentMsg) !== JSON.stringify(latestMsg)) {
|
|
158
|
+
modified.push({ status, old: currentMsg, new: latestMsg });
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
// Find removed messages
|
|
162
|
+
for (const [status, currentMsg] of currentMap) {
|
|
163
|
+
if (!latestMap.has(status)) {
|
|
164
|
+
removed.push(currentMsg);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return { added, removed, modified };
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Print status message differences in a readable format
|
|
171
|
+
*/
|
|
172
|
+
static printStatusMessageDiff(diff) {
|
|
173
|
+
console.log('\n=== Status Messages Differences ===');
|
|
174
|
+
if (diff.added.length > 0) {
|
|
175
|
+
console.log(`\n➕ Added (${diff.added.length}):`);
|
|
176
|
+
diff.added.forEach(msg => {
|
|
177
|
+
console.log(` ${msg.status}: ${msg.meldung}`);
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
if (diff.removed.length > 0) {
|
|
181
|
+
console.log(`\n➖ Removed (${diff.removed.length}):`);
|
|
182
|
+
diff.removed.forEach(msg => {
|
|
183
|
+
console.log(` ${msg.status}: ${msg.meldung}`);
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
if (diff.modified.length > 0) {
|
|
187
|
+
console.log(`\n🔄 Modified (${diff.modified.length}):`);
|
|
188
|
+
diff.modified.forEach(({ status, old, new: newMsg }) => {
|
|
189
|
+
console.log(` ${status}:`);
|
|
190
|
+
console.log(` Old: ${old.meldung}`);
|
|
191
|
+
console.log(` New: ${newMsg.meldung}`);
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
if (diff.added.length === 0 && diff.removed.length === 0 && diff.modified.length === 0) {
|
|
195
|
+
console.log('✅ No differences found');
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Update constants.ts file with new status messages
|
|
200
|
+
*/
|
|
201
|
+
static async updateConstantsFile(statusMessages) {
|
|
202
|
+
try {
|
|
203
|
+
console.log('Updating constants.ts with new status messages...');
|
|
204
|
+
// Create the status messages object
|
|
205
|
+
const statusMessagesObj = statusMessages.reduce((acc, msg) => {
|
|
206
|
+
acc[msg.status] = msg;
|
|
207
|
+
return acc;
|
|
208
|
+
}, {});
|
|
209
|
+
// Read current constants file
|
|
210
|
+
const constantsPath = './src/constants.ts';
|
|
211
|
+
const constantsContent = (0, fs_1.readFileSync)(constantsPath, 'utf8');
|
|
212
|
+
// Replace the STATUS_MESSAGES object
|
|
213
|
+
const statusMessagesStr = JSON.stringify(statusMessagesObj, null, 2)
|
|
214
|
+
.replace(/"/g, "'")
|
|
215
|
+
.replace(/'/g, "'");
|
|
216
|
+
const newConstantsContent = constantsContent.replace(/export const STATUS_MESSAGES: Record<string, ApiStatusMessage> = \{[\s\S]*?\};/, `export const STATUS_MESSAGES: Record<string, StatusMessage> = ${statusMessagesStr};`);
|
|
217
|
+
(0, fs_1.writeFileSync)(constantsPath, newConstantsContent);
|
|
218
|
+
console.log('✅ Constants file updated');
|
|
219
|
+
}
|
|
220
|
+
catch (error) {
|
|
221
|
+
console.error('Error updating constants file:', error);
|
|
222
|
+
throw error;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Run complete update check and download if needed
|
|
227
|
+
*/
|
|
228
|
+
static async checkAndUpdateAll() {
|
|
229
|
+
console.log('🔍 Checking for eVatR API updates...\n');
|
|
230
|
+
try {
|
|
231
|
+
// Check API docs
|
|
232
|
+
const apiDocsResult = await this.checkApiDocsUpdate();
|
|
233
|
+
if (apiDocsResult.hasUpdate) {
|
|
234
|
+
console.log(`📄 API Docs update available: ${apiDocsResult.currentVersion} → ${apiDocsResult.latestVersion}`);
|
|
235
|
+
await this.downloadApiDocs();
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
console.log('📄 API Docs are up to date');
|
|
239
|
+
}
|
|
240
|
+
// Check status messages
|
|
241
|
+
const statusResult = await this.checkStatusMessagesUpdate();
|
|
242
|
+
if (statusResult.hasUpdate && statusResult.diff) {
|
|
243
|
+
console.log(`📋 Status Messages update available: ${statusResult.currentVersion} → ${statusResult.latestVersion}`);
|
|
244
|
+
this.printStatusMessageDiff(statusResult.diff);
|
|
245
|
+
const filepath = await this.downloadStatusMessages();
|
|
246
|
+
// Ask if user wants to update constants.ts
|
|
247
|
+
console.log('\n❓ Would you like to update the constants.ts file with the new status messages?');
|
|
248
|
+
console.log(' You can run: EvatrApiUpdater.updateConstantsFromFile("' + filepath + '")');
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
console.log('📋 Status Messages are up to date');
|
|
252
|
+
}
|
|
253
|
+
console.log('\n✅ Update check completed');
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
console.error('❌ Error during update check:', error);
|
|
257
|
+
throw error;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Update constants from a downloaded status messages file
|
|
262
|
+
*/
|
|
263
|
+
static async updateConstantsFromFile(filepath) {
|
|
264
|
+
try {
|
|
265
|
+
const apiStatusMessages = JSON.parse((0, fs_1.readFileSync)(filepath, 'utf8'));
|
|
266
|
+
const statusMessages = apiStatusMessages.map(msg => ({
|
|
267
|
+
status: msg.status,
|
|
268
|
+
message: msg.meldung,
|
|
269
|
+
category: msg.kategorie === 'Ergebnis' ? 'Result' : msg.kategorie === 'Fehler' ? 'Error' : 'Hint',
|
|
270
|
+
http: msg.httpcode,
|
|
271
|
+
}), {});
|
|
272
|
+
await this.updateConstantsFile(statusMessages);
|
|
273
|
+
}
|
|
274
|
+
catch (error) {
|
|
275
|
+
console.error('Error updating constants from file:', error);
|
|
276
|
+
throw error;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
exports.EvatrApiUpdater = EvatrApiUpdater;
|
|
281
|
+
EvatrApiUpdater.API_DOCS_URL = constants_1.DEFAULT_HOST + '/api-docs';
|
|
282
|
+
EvatrApiUpdater.DOCS_DIR = './docs';
|
|
283
|
+
//# sourceMappingURL=api-updater.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-updater.js","sourceRoot":"","sources":["../src/api-updater.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Main client class for the eVatR API
|
|
3
|
+
*/
|
|
4
|
+
import { EUMemberState, EvatrClientConfig, ExtendedResponse, QualifiedRequest, Request, Response, SimpleRequest, StatusMessage } from './types';
|
|
5
|
+
/**
|
|
6
|
+
* EvatrClient - Main client for interacting with the eVatR API
|
|
7
|
+
*/
|
|
8
|
+
export declare class EvatrClient {
|
|
9
|
+
private readonly httpClient;
|
|
10
|
+
constructor(config?: EvatrClientConfig);
|
|
11
|
+
/**
|
|
12
|
+
* Perform a simple VAT-ID validation (only checks validity)
|
|
13
|
+
* @param request Simple validation request with VAT-IDs only
|
|
14
|
+
* @param extended If true, returns ExtendedResponse with mapped dates and additional info
|
|
15
|
+
* @returns Promise<Response | ExtendedResponse>
|
|
16
|
+
*/
|
|
17
|
+
validateSimple(request: SimpleRequest): Promise<Response>;
|
|
18
|
+
validateSimple(request: SimpleRequest, extended: true): Promise<ExtendedResponse>;
|
|
19
|
+
validateSimple(request: SimpleRequest, extended: false): Promise<Response>;
|
|
20
|
+
/**
|
|
21
|
+
* Perform a qualified VAT-ID validation (checks validity and company data)
|
|
22
|
+
* @param request Qualified validation request with company data
|
|
23
|
+
* @param extended If true, returns ExtendedResponse with mapped dates and additional info
|
|
24
|
+
* @returns Promise<Response | ExtendedResponse>
|
|
25
|
+
*/
|
|
26
|
+
validateQualified(request: QualifiedRequest): Promise<Response>;
|
|
27
|
+
validateQualified(request: QualifiedRequest, extended: true): Promise<ExtendedResponse>;
|
|
28
|
+
validateQualified(request: QualifiedRequest, extended: false): Promise<Response>;
|
|
29
|
+
/**
|
|
30
|
+
* Perform VAT-ID validation with full request object
|
|
31
|
+
* @param request Full validation request
|
|
32
|
+
* @param extended If true, returns ExtendedResponse with mapped dates and additional info
|
|
33
|
+
* @returns Promise<Response | ExtendedResponse>
|
|
34
|
+
*/
|
|
35
|
+
validate(request: Request): Promise<Response>;
|
|
36
|
+
validate(request: Request, extended: true): Promise<ExtendedResponse>;
|
|
37
|
+
validate(request: Request, extended: false): Promise<Response>;
|
|
38
|
+
/**
|
|
39
|
+
* Get status messages from the API
|
|
40
|
+
* @returns Promise<StatusMessage[]>
|
|
41
|
+
*/
|
|
42
|
+
getStatusMessages(): Promise<StatusMessage[]>;
|
|
43
|
+
/**
|
|
44
|
+
* Get EU member states and their availability
|
|
45
|
+
* @returns Promise<ApiEUMemberState[]>
|
|
46
|
+
*/
|
|
47
|
+
getEUMemberStates(): Promise<EUMemberState[]>;
|
|
48
|
+
/**
|
|
49
|
+
* Get status message by status code
|
|
50
|
+
* @param statusCode Status code (e.g., "evatr-0000")
|
|
51
|
+
* @returns StatusMessage or undefined if not found
|
|
52
|
+
*/
|
|
53
|
+
getStatusMessage(statusCode: string): StatusMessage | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* Check if a status code indicates success
|
|
56
|
+
* @param statusCode Status code to check
|
|
57
|
+
* @returns boolean
|
|
58
|
+
*/
|
|
59
|
+
isSuccessStatus(statusCode: string): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Check if a status code indicates an error
|
|
62
|
+
* @param statusCode Status code to check
|
|
63
|
+
* @returns boolean
|
|
64
|
+
*/
|
|
65
|
+
isErrorStatus(statusCode: string): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Check if a status code indicates a warning/hint
|
|
68
|
+
* @param statusCode Status code to check
|
|
69
|
+
* @returns boolean
|
|
70
|
+
*/
|
|
71
|
+
isWarningStatus(statusCode: string): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Validate VAT-ID format (basic syntax check)
|
|
74
|
+
* @param vatId VAT-ID to validate
|
|
75
|
+
* @returns boolean
|
|
76
|
+
*/
|
|
77
|
+
static checkVatIdSyntax(vatId: string): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Extract country code from VAT-ID
|
|
80
|
+
* @param vatId VAT-ID
|
|
81
|
+
* @returns string Country code
|
|
82
|
+
*/
|
|
83
|
+
static getCountryCode(vatId: string): string;
|
|
84
|
+
/**
|
|
85
|
+
* Format VAT-ID by removing spaces and converting to uppercase
|
|
86
|
+
* @param vatId VAT-ID to format
|
|
87
|
+
* @returns string Formatted VAT-ID
|
|
88
|
+
*/
|
|
89
|
+
static normalizeVatId(vatId: string): string;
|
|
90
|
+
/**
|
|
91
|
+
* Maps parameters to API property names
|
|
92
|
+
*/
|
|
93
|
+
private mapToApiParams;
|
|
94
|
+
/**
|
|
95
|
+
* Maps API response to parameters
|
|
96
|
+
*/
|
|
97
|
+
private mapFromApiResponse;
|
|
98
|
+
/**
|
|
99
|
+
* Maps basic Response to ExtendedResponse with date objects and additional info
|
|
100
|
+
*/
|
|
101
|
+
private mapToExtendedResponse;
|
|
102
|
+
/**
|
|
103
|
+
* Internal method to perform the actual validation request
|
|
104
|
+
*/
|
|
105
|
+
private performValidation;
|
|
106
|
+
/**
|
|
107
|
+
* Handle and transform errors
|
|
108
|
+
*/
|
|
109
|
+
private handleError;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAKL,aAAa,EAEb,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,QAAQ,EACR,aAAa,EACb,aAAa,EACd,MAAM,SAAS,CAAC;AAIjB;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;gBAE/B,MAAM,GAAE,iBAAsB;IA+B1C;;;;;OAKG;IACG,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;IACzD,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACjF,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC;IAWhF;;;;;OAKG;IACG,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC/D,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACvF,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC;IAetF;;;;;OAKG;IACG,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACrE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKpE;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAiBnD;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAenD;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI/D;;;;OAIG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI5C;;;;OAIG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI1C;;;;OAIG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI5C;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAsB/C;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI5C;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI5C;;OAEG;IACH,OAAO,CAAC,cAAc;IAWtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;OAEG;YACW,iBAAiB;IAqD/B;;OAEG;IAEH,OAAO,CAAC,WAAW;CAkBpB"}
|