@ampeco/public-api-mcp 0.3.0 → 3.98.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/README.md +61 -0
- package/dist/build/index.js +52 -7
- package/dist/build/index.js.map +1 -1
- package/dist/build/types.d.ts +24 -2
- package/dist/build/types.d.ts.map +1 -1
- package/dist/generated/build-stats.json +11 -5
- package/dist/generated/endpoints.json +398 -29
- package/dist/generated/response-schemas.json +85111 -0
- package/dist/generated/schemas.d.ts +326 -141
- package/dist/generated/schemas.d.ts.map +1 -1
- package/dist/generated/schemas.js +77 -18
- package/dist/generated/schemas.js.map +1 -1
- package/dist/generated/schemas.ts +79 -18
- package/dist/server/factory.d.ts +2 -2
- package/dist/server/factory.d.ts.map +1 -1
- package/dist/server/factory.js +129 -27
- package/dist/server/factory.js.map +1 -1
- package/dist/server/factory.test.js +5 -5
- package/dist/server/factory.test.js.map +1 -1
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +4 -2
- package/dist/server/http.js.map +1 -1
- package/dist/server/index.js +5 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/loader.d.ts +6 -1
- package/dist/server/loader.d.ts.map +1 -1
- package/dist/server/loader.js +9 -0
- package/dist/server/loader.js.map +1 -1
- package/dist/server/resources/handlers.js +2 -2
- package/dist/server/resources/handlers.js.map +1 -1
- package/dist/server/stdio.d.ts.map +1 -1
- package/dist/server/stdio.js +4 -2
- package/dist/server/stdio.js.map +1 -1
- package/dist/server/utils/response-transformer.d.ts +78 -0
- package/dist/server/utils/response-transformer.d.ts.map +1 -0
- package/dist/server/utils/response-transformer.js +423 -0
- package/dist/server/utils/response-transformer.js.map +1 -0
- package/dist/server/utils/response-transformer.test.d.ts +2 -0
- package/dist/server/utils/response-transformer.test.d.ts.map +1 -0
- package/dist/server/utils/response-transformer.test.js +103 -0
- package/dist/server/utils/response-transformer.test.js.map +1 -0
- package/package.json +2 -1
package/dist/server/index.js
CHANGED
|
@@ -10,7 +10,7 @@ import express from 'express';
|
|
|
10
10
|
import cors from 'cors';
|
|
11
11
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
12
12
|
import { createServer } from './factory.js';
|
|
13
|
-
import { loadEndpoints } from './loader.js';
|
|
13
|
+
import { loadEndpoints, loadResponseSchemas } from './loader.js';
|
|
14
14
|
/**
|
|
15
15
|
* Main server startup
|
|
16
16
|
*/
|
|
@@ -20,6 +20,9 @@ async function main() {
|
|
|
20
20
|
const endpoints = loadEndpoints();
|
|
21
21
|
console.log(`Loaded ${endpoints.endpoints.length} endpoints from ${endpoints.info.title} v${endpoints.info.version}`);
|
|
22
22
|
console.log(`Optimization: ${endpoints.stats.reductionPercent.toFixed(2)}% size reduction`);
|
|
23
|
+
console.log('Loading response schemas...');
|
|
24
|
+
const responseSchemas = loadResponseSchemas();
|
|
25
|
+
console.log(`Loaded ${Object.keys(responseSchemas).length} response schemas (${endpoints.stats.responseSchemas?.withSchemas || 0} with schemas)`);
|
|
23
26
|
// Create Express app
|
|
24
27
|
const app = express();
|
|
25
28
|
app.use(express.json());
|
|
@@ -68,7 +71,7 @@ async function main() {
|
|
|
68
71
|
const hostname = `${protocol}://${hostnameWithoutSuffix}`;
|
|
69
72
|
console.log(`[MCP Request] Target API: ${hostname}, Method: ${req.body?.method || 'unknown'}`);
|
|
70
73
|
// Create server instance with the bearer token and hostname
|
|
71
|
-
const server = createServer(endpoints, {
|
|
74
|
+
const server = createServer(endpoints, responseSchemas, {
|
|
72
75
|
hostname,
|
|
73
76
|
bearerToken,
|
|
74
77
|
emulateResourcesViaTools: false, // Legacy server uses native resources
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
package/dist/server/loader.d.ts
CHANGED
|
@@ -2,9 +2,14 @@
|
|
|
2
2
|
* Endpoint loader module
|
|
3
3
|
* Loads pre-processed endpoints from build artifacts
|
|
4
4
|
*/
|
|
5
|
-
import type { BuildOutput } from '../build/types.js';
|
|
5
|
+
import type { BuildOutput, ResponseSchemaMap } from '../build/types.js';
|
|
6
6
|
/**
|
|
7
7
|
* Load pre-processed endpoints from build artifacts
|
|
8
8
|
*/
|
|
9
9
|
export declare function loadEndpoints(): BuildOutput;
|
|
10
|
+
/**
|
|
11
|
+
* Load response schemas from build artifacts
|
|
12
|
+
* (Used internally by transformation logic only, not exposed via MCP)
|
|
13
|
+
*/
|
|
14
|
+
export declare function loadResponseSchemas(): ResponseSchemaMap;
|
|
10
15
|
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/server/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/server/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAMxE;;GAEG;AACH,wBAAgB,aAAa,IAAI,WAAW,CAI3C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,iBAAiB,CAIvD"}
|
package/dist/server/loader.js
CHANGED
|
@@ -16,4 +16,13 @@ export function loadEndpoints() {
|
|
|
16
16
|
const content = readFileSync(endpointsPath, 'utf-8');
|
|
17
17
|
return JSON.parse(content);
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Load response schemas from build artifacts
|
|
21
|
+
* (Used internally by transformation logic only, not exposed via MCP)
|
|
22
|
+
*/
|
|
23
|
+
export function loadResponseSchemas() {
|
|
24
|
+
const schemasPath = join(__dirname, '../generated/response-schemas.json');
|
|
25
|
+
const content = readFileSync(schemasPath, 'utf-8');
|
|
26
|
+
return JSON.parse(content);
|
|
27
|
+
}
|
|
19
28
|
//# sourceMappingURL=loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/server/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,wCAAwC;AACxC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;AAC5C,CAAC"}
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/server/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,wCAAwC;AACxC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,oCAAoC,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAsB,CAAC;AAClD,CAAC"}
|
|
@@ -47,7 +47,7 @@ export class ResourceHandler {
|
|
|
47
47
|
};
|
|
48
48
|
});
|
|
49
49
|
const duration = Date.now() - startTime;
|
|
50
|
-
console.
|
|
50
|
+
console.error(`[ResourceHandler] Listed ${resources.length} tag resources in ${duration}ms`);
|
|
51
51
|
return resources;
|
|
52
52
|
}
|
|
53
53
|
/**
|
|
@@ -55,7 +55,7 @@ export class ResourceHandler {
|
|
|
55
55
|
* Used by both resources/read handler and read_resource tool
|
|
56
56
|
*/
|
|
57
57
|
readResource(uri) {
|
|
58
|
-
console.
|
|
58
|
+
console.error(`[ResourceHandler] Reading URI: ${uri}`);
|
|
59
59
|
// Parse URI
|
|
60
60
|
const protocolMatch = uri.match(/^([^:]+):\/\/(.*)$/);
|
|
61
61
|
if (!protocolMatch) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/server/resources/handlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;GAGG;AACH,MAAM,OAAO,eAAe;IACN;IAApB,YAAoB,SAAsB;QAAtB,cAAS,GAAT,SAAS,CAAa;IAAG,CAAC;IAE9C;;;OAGG;IACH,QAAQ;QACN,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,kCAAkC;QAClC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAE5E,sBAAsB;QACtB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;YACvC,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,aAAa,EAAE,CAAC;YAClB,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,CAAC;QAED,uBAAuB;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC/B,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC9C,GAAG,KAAK,UAAU;gBAChB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBAChC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAC1B,CAAC;YAEF,OAAO;gBACL,GAAG,EAAE,SAAS,GAAG,EAAE;gBACnB,IAAI,EAAE,GAAG;gBACT,WAAW,EAAE,GAAG,YAAY,CAAC,MAAM,YAAY,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,iBAAiB,GAAG,GAAG;gBAC1G,QAAQ,EAAE,kBAAkB;aAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/server/resources/handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../src/server/stdio.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../src/server/stdio.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
|
package/dist/server/stdio.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
6
6
|
import { createServer } from './factory.js';
|
|
7
|
-
import { loadEndpoints } from './loader.js';
|
|
7
|
+
import { loadEndpoints, loadResponseSchemas } from './loader.js';
|
|
8
8
|
/**
|
|
9
9
|
* Start MCP server in stdio mode
|
|
10
10
|
* Uses stdin/stdout for communication with MCP clients
|
|
@@ -14,7 +14,9 @@ export async function startStdioServer(options) {
|
|
|
14
14
|
console.error('[Stdio Mode] Starting MCP server...');
|
|
15
15
|
const endpoints = loadEndpoints();
|
|
16
16
|
console.error(`[Stdio Mode] Loaded ${endpoints.endpoints.length} endpoints from ${endpoints.info.title} v${endpoints.info.version}`);
|
|
17
|
-
const
|
|
17
|
+
const responseSchemas = loadResponseSchemas();
|
|
18
|
+
console.error(`[Stdio Mode] Loaded ${Object.keys(responseSchemas).length} response schemas`);
|
|
19
|
+
const server = createServer(endpoints, responseSchemas, {
|
|
18
20
|
hostname,
|
|
19
21
|
bearerToken,
|
|
20
22
|
emulateResourcesViaTools,
|
package/dist/server/stdio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/server/stdio.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/server/stdio.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGjE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAA2B;IAE3B,MAAM,EACJ,WAAW,EACX,QAAQ,EACR,wBAAwB,GAAG,KAAK,GACjC,GAAG,OAAO,CAAC;IAEZ,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAErD,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,OAAO,CAAC,KAAK,CAAC,uBAAuB,SAAS,CAAC,SAAS,CAAC,MAAM,mBAAmB,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAErI,MAAM,eAAe,GAAG,mBAAmB,EAAE,CAAC;IAC9C,OAAO,CAAC,KAAK,CAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,mBAAmB,CAAC,CAAC;IAE7F,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,eAAe,EAAE;QACtD,QAAQ;QACR,WAAW;QACX,wBAAwB;KACzB,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAE7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACzD,OAAO,CAAC,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,KAAK,CAAC,+BAA+B,wBAAwB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACjH,OAAO,CAAC,KAAK,CAAC,8BAA8B,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;IAEzF,qBAAqB;IACrB,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Response transformation utilities for handling large API responses
|
|
3
|
+
*
|
|
4
|
+
* This module implements schema-driven smart response transformation to:
|
|
5
|
+
* - Preserve critical pagination metadata
|
|
6
|
+
* - Provide statistical summaries (min/max/sum/avg/median/percentiles)
|
|
7
|
+
* - Include categorical distributions
|
|
8
|
+
* - Sample representative items
|
|
9
|
+
* - Dramatically reduce token usage (80-95% for large responses)
|
|
10
|
+
*/
|
|
11
|
+
export interface TransformOptions {
|
|
12
|
+
/** Maximum response size before transformation (default: 20000) */
|
|
13
|
+
maxResponseSize?: number;
|
|
14
|
+
/** Number of sample items to include (default: 5) */
|
|
15
|
+
sampleSize?: number;
|
|
16
|
+
/** Whether to compute statistics (default: true) */
|
|
17
|
+
computeStats?: boolean;
|
|
18
|
+
/** Whether to include distribution analysis (default: true) */
|
|
19
|
+
includeDistribution?: boolean;
|
|
20
|
+
/** Enable transformation (can be disabled for backward compatibility) */
|
|
21
|
+
enabled?: boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface TransformedResponse {
|
|
24
|
+
/** Original HTTP status */
|
|
25
|
+
status: number;
|
|
26
|
+
/** Preserved metadata (pagination, totals, etc.) */
|
|
27
|
+
metadata: Record<string, any>;
|
|
28
|
+
/** Transformed data with statistics and samples */
|
|
29
|
+
data: {
|
|
30
|
+
/** Summary of transformation */
|
|
31
|
+
_transformation: {
|
|
32
|
+
applied: boolean;
|
|
33
|
+
reason: string;
|
|
34
|
+
originalSize: number;
|
|
35
|
+
transformedSize: number;
|
|
36
|
+
timestamp: string;
|
|
37
|
+
};
|
|
38
|
+
/** Sample items from arrays */
|
|
39
|
+
sample?: any[];
|
|
40
|
+
/** Statistical aggregations */
|
|
41
|
+
statistics?: {
|
|
42
|
+
count: number;
|
|
43
|
+
numericFields?: Record<string, {
|
|
44
|
+
min: number;
|
|
45
|
+
max: number;
|
|
46
|
+
avg: number;
|
|
47
|
+
sum: number;
|
|
48
|
+
median: number;
|
|
49
|
+
p25?: number;
|
|
50
|
+
p75?: number;
|
|
51
|
+
p95?: number;
|
|
52
|
+
}>;
|
|
53
|
+
categoricalFields?: Record<string, Record<string, number>>;
|
|
54
|
+
};
|
|
55
|
+
/** Original array name (for context) */
|
|
56
|
+
arrayName?: string;
|
|
57
|
+
/** Full data for small responses */
|
|
58
|
+
full?: any;
|
|
59
|
+
};
|
|
60
|
+
/** Original response shape for reference */
|
|
61
|
+
_originalShape?: {
|
|
62
|
+
topLevelKeys: string[];
|
|
63
|
+
arrayFields: Array<{
|
|
64
|
+
name: string;
|
|
65
|
+
length: number;
|
|
66
|
+
}>;
|
|
67
|
+
scalarFields: string[];
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Detect if response needs transformation
|
|
72
|
+
*/
|
|
73
|
+
export declare function shouldTransform(response: any, options: TransformOptions): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Main transformation function
|
|
76
|
+
*/
|
|
77
|
+
export declare function transformResponse(response: any, options?: TransformOptions, responseSchema?: any): TransformedResponse;
|
|
78
|
+
//# sourceMappingURL=response-transformer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-transformer.d.ts","sourceRoot":"","sources":["../../../src/server/utils/response-transformer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+DAA+D;IAC/D,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,mDAAmD;IACnD,IAAI,EAAE;QACJ,gCAAgC;QAChC,eAAe,EAAE;YACf,OAAO,EAAE,OAAO,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC;YACf,YAAY,EAAE,MAAM,CAAC;YACrB,eAAe,EAAE,MAAM,CAAC;YACxB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,+BAA+B;QAC/B,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QACf,+BAA+B;QAC/B,UAAU,CAAC,EAAE;YACX,KAAK,EAAE,MAAM,CAAC;YACd,aAAa,CAAC,EAAE,MAAM,CACpB,MAAM,EACN;gBACE,GAAG,EAAE,MAAM,CAAC;gBACZ,GAAG,EAAE,MAAM,CAAC;gBACZ,GAAG,EAAE,MAAM,CAAC;gBACZ,GAAG,EAAE,MAAM,CAAC;gBACZ,MAAM,EAAE,MAAM,CAAC;gBACf,GAAG,CAAC,EAAE,MAAM,CAAC;gBACb,GAAG,CAAC,EAAE,MAAM,CAAC;gBACb,GAAG,CAAC,EAAE,MAAM,CAAC;aACd,CACF,CAAC;YACF,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;SAC5D,CAAC;QACF,wCAAwC;QACxC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,oCAAoC;QACpC,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ,CAAC;IACF,4CAA4C;IAC5C,cAAc,CAAC,EAAE;QACf,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,WAAW,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACrD,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAUT;AAwWD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,GAAG,EACb,OAAO,GAAE,gBAAqB,EAC9B,cAAc,CAAC,EAAE,GAAG,GACnB,mBAAmB,CAwIrB"}
|