@simpleapps-com/augur-api 0.2.0 → 0.2.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/README.md +0 -25
- package/dist/cjs/core/client.d.ts +0 -1
- package/dist/cjs/core/client.d.ts.map +1 -1
- package/dist/cjs/core/client.js +0 -4
- package/dist/cjs/core/client.js.map +1 -1
- package/dist/cjs/core/common-schemas.d.ts +13 -13
- package/dist/cjs/core/config.d.ts +0 -2
- package/dist/cjs/core/config.d.ts.map +1 -1
- package/dist/cjs/core/config.js.map +1 -1
- package/dist/cjs/core/schema-factories.d.ts +20 -20
- package/dist/cjs/core/schemas.d.ts +6 -6
- package/dist/cjs/services/agr-site/client.d.ts +3 -3
- package/dist/cjs/services/agr-site/schemas/ai.d.ts +3 -3
- package/dist/cjs/services/agr-site/schemas/content.d.ts +3 -3
- package/dist/cjs/services/agr-site/schemas/health.d.ts +2 -2
- package/dist/cjs/services/agr-site/schemas/settings.d.ts +3 -3
- package/dist/cjs/services/commerce/client.d.ts +10 -10
- package/dist/cjs/services/commerce/schemas/cart.d.ts +16 -16
- package/dist/cjs/services/commerce/schemas/checkout.d.ts +17 -17
- package/dist/cjs/services/commerce/schemas/health.d.ts +2 -2
- package/dist/cjs/services/commerce/schemas/recommendations.d.ts +5 -5
- package/dist/cjs/services/customers/client.d.ts +22 -22
- package/dist/cjs/services/customers/schemas/addresses.d.ts +12 -12
- package/dist/cjs/services/customers/schemas/contacts.d.ts +14 -14
- package/dist/cjs/services/customers/schemas/customers.d.ts +20 -20
- package/dist/cjs/services/customers/schemas/health.d.ts +2 -2
- package/dist/cjs/services/customers/schemas/invoices.d.ts +7 -7
- package/dist/cjs/services/customers/schemas/orders.d.ts +9 -9
- package/dist/cjs/services/customers/schemas/purchased-items.d.ts +5 -5
- package/dist/cjs/services/customers/schemas/quotes.d.ts +7 -7
- package/dist/cjs/services/items/client.d.ts +35 -35
- package/dist/cjs/services/items/client.d.ts.map +1 -1
- package/dist/cjs/services/items/schemas/alternateCode.d.ts +2 -2
- package/dist/cjs/services/items/schemas/attributeGroups.d.ts +4 -4
- package/dist/cjs/services/items/schemas/attributes.d.ts +10 -10
- package/dist/cjs/services/items/schemas/brands.d.ts +4 -4
- package/dist/cjs/services/items/schemas/categories.d.ts +16 -16
- package/dist/cjs/services/items/schemas/categories.d.ts.map +1 -1
- package/dist/cjs/services/items/schemas/health.d.ts +4 -4
- package/dist/cjs/services/items/schemas/invLoc.d.ts +2 -2
- package/dist/cjs/services/items/schemas/products.d.ts +16 -16
- package/dist/cjs/services/joomla/client.d.ts +13 -13
- package/dist/cjs/services/joomla/schemas/content.d.ts +17 -17
- package/dist/cjs/services/joomla/schemas/groups.d.ts +14 -14
- package/dist/cjs/services/joomla/schemas/health.d.ts +4 -4
- package/dist/cjs/services/joomla/schemas/users.d.ts +22 -22
- package/dist/cjs/services/legacy/client.d.ts +8 -8
- package/dist/cjs/services/legacy/schemas/health.d.ts +2 -2
- package/dist/cjs/services/legacy/schemas/inventory.d.ts +12 -12
- package/dist/cjs/services/legacy/schemas/orders.d.ts +4 -4
- package/dist/cjs/services/legacy/schemas/states.d.ts +16 -16
- package/dist/cjs/services/nexus/client.d.ts +39 -39
- package/dist/cjs/services/nexus/schemas/bin-transfers.d.ts +15 -15
- package/dist/cjs/services/nexus/schemas/health.d.ts +4 -4
- package/dist/cjs/services/nexus/schemas/receiving.d.ts +26 -26
- package/dist/cjs/services/nexus/schemas/transfers.d.ts +39 -39
- package/dist/cjs/services/open-search/client.d.ts +11 -11
- package/dist/cjs/services/open-search/schemas/attributes.d.ts +5 -5
- package/dist/cjs/services/open-search/schemas/health.d.ts +4 -4
- package/dist/cjs/services/open-search/schemas/items.d.ts +11 -11
- package/dist/cjs/services/open-search/schemas/search.d.ts +5 -5
- package/dist/cjs/services/orders/client.d.ts +12 -12
- package/dist/cjs/services/orders/schemas/health.d.ts +2 -2
- package/dist/cjs/services/orders/schemas/invoices.d.ts +2 -2
- package/dist/cjs/services/orders/schemas/orders.d.ts +7 -7
- package/dist/cjs/services/orders/schemas/purchase-orders.d.ts +11 -11
- package/dist/cjs/services/orders/schemas/salesrep.d.ts +4 -4
- package/dist/cjs/services/p21-pim/client.d.ts +13 -13
- package/dist/cjs/services/p21-pim/schemas/ai-suggestions.d.ts +6 -6
- package/dist/cjs/services/p21-pim/schemas/health.d.ts +2 -2
- package/dist/cjs/services/p21-pim/schemas/inventory.d.ts +14 -14
- package/dist/cjs/services/p21-pim/schemas/podcasts.d.ts +7 -7
- package/dist/cjs/services/payments/client.d.ts +9 -9
- package/dist/cjs/services/payments/schemas/element.d.ts +5 -5
- package/dist/cjs/services/payments/schemas/health.d.ts +4 -4
- package/dist/cjs/services/payments/schemas/unified.d.ts +30 -30
- package/dist/cjs/services/pricing/client.d.ts +5 -5
- package/dist/cjs/services/pricing/schemas/health.d.ts +4 -4
- package/dist/cjs/services/pricing/schemas/job-pricing.d.ts +14 -14
- package/dist/cjs/services/pricing/schemas/pricing.d.ts +5 -5
- package/dist/cjs/services/pricing/schemas/tax.d.ts +2 -2
- package/dist/cjs/services/vmi/client.d.ts +31 -31
- package/dist/cjs/services/vmi/schemas/health.d.ts +4 -4
- package/dist/cjs/services/vmi/schemas/inventory.d.ts +2 -2
- package/dist/cjs/services/vmi/schemas/products.d.ts +19 -19
- package/dist/cjs/services/vmi/schemas/profiles.d.ts +14 -14
- package/dist/cjs/services/vmi/schemas/restock.d.ts +9 -9
- package/dist/cjs/services/vmi/schemas/warehouse.d.ts +21 -21
- package/dist/esm/core/client.d.ts +0 -1
- package/dist/esm/core/client.d.ts.map +1 -1
- package/dist/esm/core/client.js +0 -4
- package/dist/esm/core/client.js.map +1 -1
- package/dist/esm/core/common-schemas.d.ts +13 -13
- package/dist/esm/core/config.d.ts +0 -2
- package/dist/esm/core/config.d.ts.map +1 -1
- package/dist/esm/core/config.js.map +1 -1
- package/dist/esm/core/schema-factories.d.ts +20 -20
- package/dist/esm/core/schemas.d.ts +6 -6
- package/dist/esm/services/agr-site/client.d.ts +3 -3
- package/dist/esm/services/agr-site/schemas/ai.d.ts +3 -3
- package/dist/esm/services/agr-site/schemas/content.d.ts +3 -3
- package/dist/esm/services/agr-site/schemas/health.d.ts +2 -2
- package/dist/esm/services/agr-site/schemas/settings.d.ts +3 -3
- package/dist/esm/services/commerce/client.d.ts +10 -10
- package/dist/esm/services/commerce/schemas/cart.d.ts +16 -16
- package/dist/esm/services/commerce/schemas/checkout.d.ts +17 -17
- package/dist/esm/services/commerce/schemas/health.d.ts +2 -2
- package/dist/esm/services/commerce/schemas/recommendations.d.ts +5 -5
- package/dist/esm/services/customers/client.d.ts +22 -22
- package/dist/esm/services/customers/schemas/addresses.d.ts +12 -12
- package/dist/esm/services/customers/schemas/contacts.d.ts +14 -14
- package/dist/esm/services/customers/schemas/customers.d.ts +20 -20
- package/dist/esm/services/customers/schemas/health.d.ts +2 -2
- package/dist/esm/services/customers/schemas/invoices.d.ts +7 -7
- package/dist/esm/services/customers/schemas/orders.d.ts +9 -9
- package/dist/esm/services/customers/schemas/purchased-items.d.ts +5 -5
- package/dist/esm/services/customers/schemas/quotes.d.ts +7 -7
- package/dist/esm/services/items/client.d.ts +35 -35
- package/dist/esm/services/items/client.d.ts.map +1 -1
- package/dist/esm/services/items/schemas/alternateCode.d.ts +2 -2
- package/dist/esm/services/items/schemas/attributeGroups.d.ts +4 -4
- package/dist/esm/services/items/schemas/attributes.d.ts +10 -10
- package/dist/esm/services/items/schemas/brands.d.ts +4 -4
- package/dist/esm/services/items/schemas/categories.d.ts +16 -16
- package/dist/esm/services/items/schemas/categories.d.ts.map +1 -1
- package/dist/esm/services/items/schemas/health.d.ts +4 -4
- package/dist/esm/services/items/schemas/invLoc.d.ts +2 -2
- package/dist/esm/services/items/schemas/products.d.ts +16 -16
- package/dist/esm/services/joomla/client.d.ts +13 -13
- package/dist/esm/services/joomla/schemas/content.d.ts +17 -17
- package/dist/esm/services/joomla/schemas/groups.d.ts +14 -14
- package/dist/esm/services/joomla/schemas/health.d.ts +4 -4
- package/dist/esm/services/joomla/schemas/users.d.ts +22 -22
- package/dist/esm/services/legacy/client.d.ts +8 -8
- package/dist/esm/services/legacy/schemas/health.d.ts +2 -2
- package/dist/esm/services/legacy/schemas/inventory.d.ts +12 -12
- package/dist/esm/services/legacy/schemas/orders.d.ts +4 -4
- package/dist/esm/services/legacy/schemas/states.d.ts +16 -16
- package/dist/esm/services/nexus/client.d.ts +39 -39
- package/dist/esm/services/nexus/schemas/bin-transfers.d.ts +15 -15
- package/dist/esm/services/nexus/schemas/health.d.ts +4 -4
- package/dist/esm/services/nexus/schemas/receiving.d.ts +26 -26
- package/dist/esm/services/nexus/schemas/transfers.d.ts +39 -39
- package/dist/esm/services/open-search/client.d.ts +11 -11
- package/dist/esm/services/open-search/schemas/attributes.d.ts +5 -5
- package/dist/esm/services/open-search/schemas/health.d.ts +4 -4
- package/dist/esm/services/open-search/schemas/items.d.ts +11 -11
- package/dist/esm/services/open-search/schemas/search.d.ts +5 -5
- package/dist/esm/services/orders/client.d.ts +12 -12
- package/dist/esm/services/orders/schemas/health.d.ts +2 -2
- package/dist/esm/services/orders/schemas/invoices.d.ts +2 -2
- package/dist/esm/services/orders/schemas/orders.d.ts +7 -7
- package/dist/esm/services/orders/schemas/purchase-orders.d.ts +11 -11
- package/dist/esm/services/orders/schemas/salesrep.d.ts +4 -4
- package/dist/esm/services/p21-pim/client.d.ts +13 -13
- package/dist/esm/services/p21-pim/schemas/ai-suggestions.d.ts +6 -6
- package/dist/esm/services/p21-pim/schemas/health.d.ts +2 -2
- package/dist/esm/services/p21-pim/schemas/inventory.d.ts +14 -14
- package/dist/esm/services/p21-pim/schemas/podcasts.d.ts +7 -7
- package/dist/esm/services/payments/client.d.ts +9 -9
- package/dist/esm/services/payments/schemas/element.d.ts +5 -5
- package/dist/esm/services/payments/schemas/health.d.ts +4 -4
- package/dist/esm/services/payments/schemas/unified.d.ts +30 -30
- package/dist/esm/services/pricing/client.d.ts +5 -5
- package/dist/esm/services/pricing/schemas/health.d.ts +4 -4
- package/dist/esm/services/pricing/schemas/job-pricing.d.ts +14 -14
- package/dist/esm/services/pricing/schemas/pricing.d.ts +5 -5
- package/dist/esm/services/pricing/schemas/tax.d.ts +2 -2
- package/dist/esm/services/vmi/client.d.ts +31 -31
- package/dist/esm/services/vmi/schemas/health.d.ts +4 -4
- package/dist/esm/services/vmi/schemas/inventory.d.ts +2 -2
- package/dist/esm/services/vmi/schemas/products.d.ts +19 -19
- package/dist/esm/services/vmi/schemas/profiles.d.ts +14 -14
- package/dist/esm/services/vmi/schemas/restock.d.ts +9 -9
- package/dist/esm/services/vmi/schemas/warehouse.d.ts +21 -21
- package/dist/types/core/client.d.ts +0 -1
- package/dist/types/core/client.d.ts.map +1 -1
- package/dist/types/core/common-schemas.d.ts +13 -13
- package/dist/types/core/config.d.ts +0 -2
- package/dist/types/core/config.d.ts.map +1 -1
- package/dist/types/core/schema-factories.d.ts +20 -20
- package/dist/types/core/schemas.d.ts +6 -6
- package/dist/types/services/agr-site/client.d.ts +3 -3
- package/dist/types/services/agr-site/schemas/ai.d.ts +3 -3
- package/dist/types/services/agr-site/schemas/content.d.ts +3 -3
- package/dist/types/services/agr-site/schemas/health.d.ts +2 -2
- package/dist/types/services/agr-site/schemas/settings.d.ts +3 -3
- package/dist/types/services/commerce/client.d.ts +10 -10
- package/dist/types/services/commerce/schemas/cart.d.ts +16 -16
- package/dist/types/services/commerce/schemas/checkout.d.ts +17 -17
- package/dist/types/services/commerce/schemas/health.d.ts +2 -2
- package/dist/types/services/commerce/schemas/recommendations.d.ts +5 -5
- package/dist/types/services/customers/client.d.ts +22 -22
- package/dist/types/services/customers/schemas/addresses.d.ts +12 -12
- package/dist/types/services/customers/schemas/contacts.d.ts +14 -14
- package/dist/types/services/customers/schemas/customers.d.ts +20 -20
- package/dist/types/services/customers/schemas/health.d.ts +2 -2
- package/dist/types/services/customers/schemas/invoices.d.ts +7 -7
- package/dist/types/services/customers/schemas/orders.d.ts +9 -9
- package/dist/types/services/customers/schemas/purchased-items.d.ts +5 -5
- package/dist/types/services/customers/schemas/quotes.d.ts +7 -7
- package/dist/types/services/items/client.d.ts +35 -35
- package/dist/types/services/items/client.d.ts.map +1 -1
- package/dist/types/services/items/schemas/alternateCode.d.ts +2 -2
- package/dist/types/services/items/schemas/attributeGroups.d.ts +4 -4
- package/dist/types/services/items/schemas/attributes.d.ts +10 -10
- package/dist/types/services/items/schemas/brands.d.ts +4 -4
- package/dist/types/services/items/schemas/categories.d.ts +16 -16
- package/dist/types/services/items/schemas/categories.d.ts.map +1 -1
- package/dist/types/services/items/schemas/health.d.ts +4 -4
- package/dist/types/services/items/schemas/invLoc.d.ts +2 -2
- package/dist/types/services/items/schemas/products.d.ts +16 -16
- package/dist/types/services/joomla/client.d.ts +13 -13
- package/dist/types/services/joomla/schemas/content.d.ts +17 -17
- package/dist/types/services/joomla/schemas/groups.d.ts +14 -14
- package/dist/types/services/joomla/schemas/health.d.ts +4 -4
- package/dist/types/services/joomla/schemas/users.d.ts +22 -22
- package/dist/types/services/legacy/client.d.ts +8 -8
- package/dist/types/services/legacy/schemas/health.d.ts +2 -2
- package/dist/types/services/legacy/schemas/inventory.d.ts +12 -12
- package/dist/types/services/legacy/schemas/orders.d.ts +4 -4
- package/dist/types/services/legacy/schemas/states.d.ts +16 -16
- package/dist/types/services/nexus/client.d.ts +39 -39
- package/dist/types/services/nexus/schemas/bin-transfers.d.ts +15 -15
- package/dist/types/services/nexus/schemas/health.d.ts +4 -4
- package/dist/types/services/nexus/schemas/receiving.d.ts +26 -26
- package/dist/types/services/nexus/schemas/transfers.d.ts +39 -39
- package/dist/types/services/open-search/client.d.ts +11 -11
- package/dist/types/services/open-search/schemas/attributes.d.ts +5 -5
- package/dist/types/services/open-search/schemas/health.d.ts +4 -4
- package/dist/types/services/open-search/schemas/items.d.ts +11 -11
- package/dist/types/services/open-search/schemas/search.d.ts +5 -5
- package/dist/types/services/orders/client.d.ts +12 -12
- package/dist/types/services/orders/schemas/health.d.ts +2 -2
- package/dist/types/services/orders/schemas/invoices.d.ts +2 -2
- package/dist/types/services/orders/schemas/orders.d.ts +7 -7
- package/dist/types/services/orders/schemas/purchase-orders.d.ts +11 -11
- package/dist/types/services/orders/schemas/salesrep.d.ts +4 -4
- package/dist/types/services/p21-pim/client.d.ts +13 -13
- package/dist/types/services/p21-pim/schemas/ai-suggestions.d.ts +6 -6
- package/dist/types/services/p21-pim/schemas/health.d.ts +2 -2
- package/dist/types/services/p21-pim/schemas/inventory.d.ts +14 -14
- package/dist/types/services/p21-pim/schemas/podcasts.d.ts +7 -7
- package/dist/types/services/payments/client.d.ts +9 -9
- package/dist/types/services/payments/schemas/element.d.ts +5 -5
- package/dist/types/services/payments/schemas/health.d.ts +4 -4
- package/dist/types/services/payments/schemas/unified.d.ts +30 -30
- package/dist/types/services/pricing/client.d.ts +5 -5
- package/dist/types/services/pricing/schemas/health.d.ts +4 -4
- package/dist/types/services/pricing/schemas/job-pricing.d.ts +14 -14
- package/dist/types/services/pricing/schemas/pricing.d.ts +5 -5
- package/dist/types/services/pricing/schemas/tax.d.ts +2 -2
- package/dist/types/services/vmi/client.d.ts +31 -31
- package/dist/types/services/vmi/schemas/health.d.ts +4 -4
- package/dist/types/services/vmi/schemas/inventory.d.ts +2 -2
- package/dist/types/services/vmi/schemas/products.d.ts +19 -19
- package/dist/types/services/vmi/schemas/profiles.d.ts +14 -14
- package/dist/types/services/vmi/schemas/restock.d.ts +9 -9
- package/dist/types/services/vmi/schemas/warehouse.d.ts +21 -21
- package/package.json +1 -1
- package/dist/cjs/core/response-capturer.d.ts +0 -58
- package/dist/cjs/core/response-capturer.d.ts.map +0 -1
- package/dist/cjs/core/response-capturer.js +0 -167
- package/dist/cjs/core/response-capturer.js.map +0 -1
- package/dist/esm/core/response-capturer.d.ts +0 -58
- package/dist/esm/core/response-capturer.d.ts.map +0 -1
- package/dist/esm/core/response-capturer.js +0 -130
- package/dist/esm/core/response-capturer.js.map +0 -1
- package/dist/types/core/response-capturer.d.ts +0 -58
- package/dist/types/core/response-capturer.d.ts.map +0 -1
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import * as fs from 'fs';
|
|
2
|
-
import * as path from 'path';
|
|
3
|
-
/**
|
|
4
|
-
* Utility class for capturing API responses to disk for schema validation improvement
|
|
5
|
-
*
|
|
6
|
-
* This utility helps developers capture real API responses to improve Zod schema definitions
|
|
7
|
-
* by providing visibility into actual response structures that may differ from documentation.
|
|
8
|
-
*/
|
|
9
|
-
export class ResponseCapturer {
|
|
10
|
-
/**
|
|
11
|
-
* Create a new ResponseCapturer instance
|
|
12
|
-
* @param enabled Whether response capture is enabled
|
|
13
|
-
* @param capturePath Directory path where responses should be saved
|
|
14
|
-
*/
|
|
15
|
-
constructor(enabled = false, capturePath) {
|
|
16
|
-
this.enabled = enabled || process.env.CAPTURE_RESPONSES === 'true';
|
|
17
|
-
this.capturePath = capturePath || process.env.CAPTURE_PATH || './captured-responses';
|
|
18
|
-
if (this.enabled) {
|
|
19
|
-
this.ensureCaptureDirectory();
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Capture an API response to disk if capture is enabled
|
|
24
|
-
* @param response Axios response object
|
|
25
|
-
* @param serviceName Name of the service making the request
|
|
26
|
-
*/
|
|
27
|
-
async captureResponse(response, serviceName) {
|
|
28
|
-
if (!this.enabled) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
try {
|
|
32
|
-
const capturedData = {
|
|
33
|
-
timestamp: new Date().toISOString(),
|
|
34
|
-
service: serviceName,
|
|
35
|
-
method: response.config.method?.toUpperCase() || 'UNKNOWN',
|
|
36
|
-
url: response.config.url || 'unknown',
|
|
37
|
-
status: response.status,
|
|
38
|
-
headers: this.extractHeaders(response),
|
|
39
|
-
response: response.data,
|
|
40
|
-
};
|
|
41
|
-
const filename = this.generateFilename(capturedData);
|
|
42
|
-
const filepath = path.join(this.capturePath, filename);
|
|
43
|
-
await fs.promises.writeFile(filepath, JSON.stringify(capturedData, null, 2), 'utf8');
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
// Silently fail to avoid disrupting API calls
|
|
47
|
-
// In a production environment, you might want to log this error
|
|
48
|
-
console.warn('Failed to capture API response:', error);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Generate a safe filename for the captured response
|
|
53
|
-
* @param capturedData The captured response data
|
|
54
|
-
* @returns A filesystem-safe filename
|
|
55
|
-
*/
|
|
56
|
-
generateFilename(capturedData) {
|
|
57
|
-
const timestamp = new Date(capturedData.timestamp)
|
|
58
|
-
.toISOString()
|
|
59
|
-
.replace(/:/g, '')
|
|
60
|
-
.replace(/\./g, '')
|
|
61
|
-
.replace(/T/, '_')
|
|
62
|
-
.replace(/Z/, '');
|
|
63
|
-
const endpoint = this.sanitizeEndpoint(capturedData.url);
|
|
64
|
-
const method = capturedData.method.toLowerCase();
|
|
65
|
-
return `${capturedData.service}_${endpoint}_${method}_${timestamp}.json`;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Sanitize endpoint URL to create a safe filename component
|
|
69
|
-
* @param url The API endpoint URL
|
|
70
|
-
* @returns A filesystem-safe string representing the endpoint
|
|
71
|
-
*/
|
|
72
|
-
sanitizeEndpoint(url) {
|
|
73
|
-
try {
|
|
74
|
-
const urlObj = new URL(url);
|
|
75
|
-
let endpoint = urlObj.pathname;
|
|
76
|
-
// Remove leading slash and replace path separators
|
|
77
|
-
endpoint = endpoint.replace(/^\//, '').replace(/\//g, '_');
|
|
78
|
-
// Replace common characters that aren't filesystem safe
|
|
79
|
-
endpoint = endpoint.replace(/[^a-zA-Z0-9_-]/g, '_');
|
|
80
|
-
// Remove multiple underscores
|
|
81
|
-
endpoint = endpoint.replace(/_+/g, '_');
|
|
82
|
-
// Remove trailing underscores
|
|
83
|
-
endpoint = endpoint.replace(/_$/, '');
|
|
84
|
-
return endpoint || 'root';
|
|
85
|
-
}
|
|
86
|
-
catch {
|
|
87
|
-
return 'unknown_endpoint';
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Extract relevant headers from the response
|
|
92
|
-
* @param response Axios response object
|
|
93
|
-
* @returns Simplified headers object
|
|
94
|
-
*/
|
|
95
|
-
extractHeaders(response) {
|
|
96
|
-
const headers = {};
|
|
97
|
-
if (response.headers) {
|
|
98
|
-
// Extract commonly useful headers
|
|
99
|
-
const relevantHeaders = [
|
|
100
|
-
'content-type',
|
|
101
|
-
'content-length',
|
|
102
|
-
'cache-control',
|
|
103
|
-
'x-request-id',
|
|
104
|
-
'x-rate-limit-remaining',
|
|
105
|
-
'x-rate-limit-reset',
|
|
106
|
-
];
|
|
107
|
-
for (const header of relevantHeaders) {
|
|
108
|
-
if (response.headers[header]) {
|
|
109
|
-
headers[header] = String(response.headers[header]);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
return headers;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Ensure the capture directory exists
|
|
117
|
-
*/
|
|
118
|
-
ensureCaptureDirectory() {
|
|
119
|
-
try {
|
|
120
|
-
if (!fs.existsSync(this.capturePath)) {
|
|
121
|
-
fs.mkdirSync(this.capturePath, { recursive: true });
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
catch (error) {
|
|
125
|
-
console.warn('Failed to create capture directory:', error);
|
|
126
|
-
// Don't throw here as it would break the API client initialization
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
//# sourceMappingURL=response-capturer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"response-capturer.js","sourceRoot":"","sources":["../../../src/core/response-capturer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { AxiosResponse } from 'axios';
|
|
2
|
-
/**
|
|
3
|
-
* Metadata for captured API responses
|
|
4
|
-
*/
|
|
5
|
-
export interface CapturedResponse {
|
|
6
|
-
timestamp: string;
|
|
7
|
-
service: string;
|
|
8
|
-
method: string;
|
|
9
|
-
url: string;
|
|
10
|
-
status: number;
|
|
11
|
-
headers: Record<string, string>;
|
|
12
|
-
response: unknown;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Utility class for capturing API responses to disk for schema validation improvement
|
|
16
|
-
*
|
|
17
|
-
* This utility helps developers capture real API responses to improve Zod schema definitions
|
|
18
|
-
* by providing visibility into actual response structures that may differ from documentation.
|
|
19
|
-
*/
|
|
20
|
-
export declare class ResponseCapturer {
|
|
21
|
-
private readonly enabled;
|
|
22
|
-
private readonly capturePath;
|
|
23
|
-
/**
|
|
24
|
-
* Create a new ResponseCapturer instance
|
|
25
|
-
* @param enabled Whether response capture is enabled
|
|
26
|
-
* @param capturePath Directory path where responses should be saved
|
|
27
|
-
*/
|
|
28
|
-
constructor(enabled?: boolean, capturePath?: string);
|
|
29
|
-
/**
|
|
30
|
-
* Capture an API response to disk if capture is enabled
|
|
31
|
-
* @param response Axios response object
|
|
32
|
-
* @param serviceName Name of the service making the request
|
|
33
|
-
*/
|
|
34
|
-
captureResponse(response: AxiosResponse, serviceName: string): Promise<void>;
|
|
35
|
-
/**
|
|
36
|
-
* Generate a safe filename for the captured response
|
|
37
|
-
* @param capturedData The captured response data
|
|
38
|
-
* @returns A filesystem-safe filename
|
|
39
|
-
*/
|
|
40
|
-
private generateFilename;
|
|
41
|
-
/**
|
|
42
|
-
* Sanitize endpoint URL to create a safe filename component
|
|
43
|
-
* @param url The API endpoint URL
|
|
44
|
-
* @returns A filesystem-safe string representing the endpoint
|
|
45
|
-
*/
|
|
46
|
-
private sanitizeEndpoint;
|
|
47
|
-
/**
|
|
48
|
-
* Extract relevant headers from the response
|
|
49
|
-
* @param response Axios response object
|
|
50
|
-
* @returns Simplified headers object
|
|
51
|
-
*/
|
|
52
|
-
private extractHeaders;
|
|
53
|
-
/**
|
|
54
|
-
* Ensure the capture directory exists
|
|
55
|
-
*/
|
|
56
|
-
private ensureCaptureDirectory;
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=response-capturer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"response-capturer.d.ts","sourceRoot":"","sources":["../../../src/core/response-capturer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAItC;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC;;;;OAIG;gBACS,OAAO,GAAE,OAAe,EAAE,WAAW,CAAC,EAAE,MAAM;IAS1D;;;;OAIG;IACG,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BlF;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAwBtB;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAU/B"}
|