@ampeco/public-api-mcp 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +734 -0
  3. package/dist/build/flattener.d.ts +39 -0
  4. package/dist/build/flattener.d.ts.map +1 -0
  5. package/dist/build/flattener.js +193 -0
  6. package/dist/build/flattener.js.map +1 -0
  7. package/dist/build/index.d.ts +13 -0
  8. package/dist/build/index.d.ts.map +1 -0
  9. package/dist/build/index.js +175 -0
  10. package/dist/build/index.js.map +1 -0
  11. package/dist/build/optimizer.d.ts +32 -0
  12. package/dist/build/optimizer.d.ts.map +1 -0
  13. package/dist/build/optimizer.js +222 -0
  14. package/dist/build/optimizer.js.map +1 -0
  15. package/dist/build/parser.d.ts +35 -0
  16. package/dist/build/parser.d.ts.map +1 -0
  17. package/dist/build/parser.js +83 -0
  18. package/dist/build/parser.js.map +1 -0
  19. package/dist/build/types.d.ts +91 -0
  20. package/dist/build/types.d.ts.map +1 -0
  21. package/dist/build/types.js +5 -0
  22. package/dist/build/types.js.map +1 -0
  23. package/dist/build/zod-generator.d.ts +34 -0
  24. package/dist/build/zod-generator.d.ts.map +1 -0
  25. package/dist/build/zod-generator.js +317 -0
  26. package/dist/build/zod-generator.js.map +1 -0
  27. package/dist/cli/index.d.ts +7 -0
  28. package/dist/cli/index.d.ts.map +1 -0
  29. package/dist/cli/index.js +99 -0
  30. package/dist/cli/index.js.map +1 -0
  31. package/dist/generated/build-stats.json +7 -0
  32. package/dist/generated/endpoints.json +32181 -0
  33. package/dist/generated/schemas.d.ts +8157 -0
  34. package/dist/generated/schemas.d.ts.map +1 -0
  35. package/dist/generated/schemas.js +2726 -0
  36. package/dist/generated/schemas.js.map +1 -0
  37. package/dist/generated/schemas.ts +3171 -0
  38. package/dist/server/factory.d.ts +11 -0
  39. package/dist/server/factory.d.ts.map +1 -0
  40. package/dist/server/factory.js +450 -0
  41. package/dist/server/factory.js.map +1 -0
  42. package/dist/server/factory.test.d.ts +5 -0
  43. package/dist/server/factory.test.d.ts.map +1 -0
  44. package/dist/server/factory.test.js +77 -0
  45. package/dist/server/factory.test.js.map +1 -0
  46. package/dist/server/http.d.ts +10 -0
  47. package/dist/server/http.d.ts.map +1 -0
  48. package/dist/server/http.js +110 -0
  49. package/dist/server/http.js.map +1 -0
  50. package/dist/server/index.d.ts +8 -0
  51. package/dist/server/index.d.ts.map +1 -0
  52. package/dist/server/index.js +1502 -0
  53. package/dist/server/index.js.map +1 -0
  54. package/dist/server/loader.d.ts +10 -0
  55. package/dist/server/loader.d.ts.map +1 -0
  56. package/dist/server/loader.js +19 -0
  57. package/dist/server/loader.js.map +1 -0
  58. package/dist/server/prompts.d.ts +6 -0
  59. package/dist/server/prompts.d.ts.map +1 -0
  60. package/dist/server/prompts.js +462 -0
  61. package/dist/server/prompts.js.map +1 -0
  62. package/dist/server/stdio.d.ts +10 -0
  63. package/dist/server/stdio.d.ts.map +1 -0
  64. package/dist/server/stdio.js +25 -0
  65. package/dist/server/stdio.js.map +1 -0
  66. package/package.json +60 -0
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Schema Flattening Module
3
+ *
4
+ * This module handles:
5
+ * - Flattening allOf compositions by merging properties
6
+ * - Resolving nested schemas to reduce complexity
7
+ * - Handling anyOf, oneOf, and other complex schema constructs
8
+ */
9
+ type JSONSchema = Record<string, any>;
10
+ /**
11
+ * Flatten a JSON schema by resolving allOf, anyOf, oneOf compositions
12
+ *
13
+ * @param schema - JSON schema to flatten
14
+ * @returns Flattened schema
15
+ */
16
+ export declare function flattenSchema(schema: JSONSchema): JSONSchema;
17
+ /**
18
+ * Flatten all schemas in parameters
19
+ *
20
+ * @param parameters - Array of parameter definitions
21
+ * @returns Parameters with flattened schemas
22
+ */
23
+ export declare function flattenParameters(parameters: any[]): any[];
24
+ /**
25
+ * Flatten schemas in request body content
26
+ *
27
+ * @param requestBody - Request body definition
28
+ * @returns Request body with flattened schemas
29
+ */
30
+ export declare function flattenRequestBody(requestBody: any): any;
31
+ /**
32
+ * Flatten schemas in responses
33
+ *
34
+ * @param responses - Response definitions
35
+ * @returns Responses with flattened schemas
36
+ */
37
+ export declare function flattenResponses(responses: any): any;
38
+ export {};
39
+ //# sourceMappingURL=flattener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flattener.d.ts","sourceRoot":"","sources":["../../src/build/flattener.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEtC;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAwD5D;AA2DD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,CAc1D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG,CAmBxD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,CA+BpD"}
@@ -0,0 +1,193 @@
1
+ /**
2
+ * Schema Flattening Module
3
+ *
4
+ * This module handles:
5
+ * - Flattening allOf compositions by merging properties
6
+ * - Resolving nested schemas to reduce complexity
7
+ * - Handling anyOf, oneOf, and other complex schema constructs
8
+ */
9
+ /**
10
+ * Flatten a JSON schema by resolving allOf, anyOf, oneOf compositions
11
+ *
12
+ * @param schema - JSON schema to flatten
13
+ * @returns Flattened schema
14
+ */
15
+ export function flattenSchema(schema) {
16
+ if (!schema || typeof schema !== "object") {
17
+ return schema;
18
+ }
19
+ // Handle allOf - merge all schemas into one
20
+ if (schema.allOf && Array.isArray(schema.allOf)) {
21
+ return flattenAllOf(schema);
22
+ }
23
+ // Handle anyOf - keep as is but flatten nested schemas
24
+ if (schema.anyOf && Array.isArray(schema.anyOf)) {
25
+ return {
26
+ ...schema,
27
+ anyOf: schema.anyOf.map((s) => flattenSchema(s)),
28
+ };
29
+ }
30
+ // Handle oneOf - keep as is but flatten nested schemas
31
+ if (schema.oneOf && Array.isArray(schema.oneOf)) {
32
+ return {
33
+ ...schema,
34
+ oneOf: schema.oneOf.map((s) => flattenSchema(s)),
35
+ };
36
+ }
37
+ // Handle object properties
38
+ if (schema.type === "object" && schema.properties) {
39
+ return {
40
+ ...schema,
41
+ properties: Object.fromEntries(Object.entries(schema.properties).map(([key, value]) => [
42
+ key,
43
+ flattenSchema(value),
44
+ ])),
45
+ };
46
+ }
47
+ // Handle array items
48
+ if (schema.type === "array" && schema.items) {
49
+ return {
50
+ ...schema,
51
+ items: flattenSchema(schema.items),
52
+ };
53
+ }
54
+ // Handle additionalProperties
55
+ if (schema.additionalProperties && typeof schema.additionalProperties === "object") {
56
+ return {
57
+ ...schema,
58
+ additionalProperties: flattenSchema(schema.additionalProperties),
59
+ };
60
+ }
61
+ return schema;
62
+ }
63
+ /**
64
+ * Flatten an allOf composition by merging all schemas
65
+ *
66
+ * @param schema - Schema with allOf property
67
+ * @returns Merged schema
68
+ */
69
+ function flattenAllOf(schema) {
70
+ const { allOf, ...rest } = schema;
71
+ // Start with the base schema (everything except allOf)
72
+ let merged = { ...rest };
73
+ // Merge each schema in allOf
74
+ for (const subSchema of allOf) {
75
+ const flattened = flattenSchema(subSchema);
76
+ merged = mergeSchemas(merged, flattened);
77
+ }
78
+ return merged;
79
+ }
80
+ /**
81
+ * Deep merge two JSON schemas
82
+ *
83
+ * @param target - Target schema
84
+ * @param source - Source schema to merge into target
85
+ * @returns Merged schema
86
+ */
87
+ function mergeSchemas(target, source) {
88
+ let result = { ...target };
89
+ for (const [key, value] of Object.entries(source)) {
90
+ if (key === "properties" && target.properties) {
91
+ // Merge properties
92
+ result.properties = {
93
+ ...target.properties,
94
+ ...value,
95
+ };
96
+ }
97
+ else if (key === "required" && target.required && Array.isArray(value)) {
98
+ // Merge required arrays
99
+ result.required = [...new Set([...target.required, ...value])];
100
+ }
101
+ else if (key === "allOf" && Array.isArray(value)) {
102
+ // Recursively flatten nested allOf
103
+ const nested = flattenAllOf({ allOf: value });
104
+ result = mergeSchemas(result, nested);
105
+ }
106
+ else if (target[key] && typeof value === "object" && !Array.isArray(value)) {
107
+ // Deep merge objects
108
+ result[key] = mergeSchemas(target[key], value);
109
+ }
110
+ else {
111
+ // Override with source value
112
+ result[key] = value;
113
+ }
114
+ }
115
+ return result;
116
+ }
117
+ /**
118
+ * Flatten all schemas in parameters
119
+ *
120
+ * @param parameters - Array of parameter definitions
121
+ * @returns Parameters with flattened schemas
122
+ */
123
+ export function flattenParameters(parameters) {
124
+ if (!Array.isArray(parameters)) {
125
+ return parameters;
126
+ }
127
+ return parameters.map((param) => {
128
+ if (param.schema) {
129
+ return {
130
+ ...param,
131
+ schema: flattenSchema(param.schema),
132
+ };
133
+ }
134
+ return param;
135
+ });
136
+ }
137
+ /**
138
+ * Flatten schemas in request body content
139
+ *
140
+ * @param requestBody - Request body definition
141
+ * @returns Request body with flattened schemas
142
+ */
143
+ export function flattenRequestBody(requestBody) {
144
+ if (!requestBody || !requestBody.content) {
145
+ return requestBody;
146
+ }
147
+ const content = {};
148
+ for (const [mediaType, mediaTypeObject] of Object.entries(requestBody.content)) {
149
+ const obj = mediaTypeObject;
150
+ content[mediaType] = {
151
+ ...obj,
152
+ schema: obj.schema ? flattenSchema(obj.schema) : undefined,
153
+ };
154
+ }
155
+ return {
156
+ ...requestBody,
157
+ content,
158
+ };
159
+ }
160
+ /**
161
+ * Flatten schemas in responses
162
+ *
163
+ * @param responses - Response definitions
164
+ * @returns Responses with flattened schemas
165
+ */
166
+ export function flattenResponses(responses) {
167
+ if (!responses || typeof responses !== "object") {
168
+ return responses;
169
+ }
170
+ const flattened = {};
171
+ for (const [statusCode, response] of Object.entries(responses)) {
172
+ const resp = response;
173
+ if (resp.content) {
174
+ const content = {};
175
+ for (const [mediaType, mediaTypeObject] of Object.entries(resp.content)) {
176
+ const obj = mediaTypeObject;
177
+ content[mediaType] = {
178
+ ...obj,
179
+ schema: obj.schema ? flattenSchema(obj.schema) : undefined,
180
+ };
181
+ }
182
+ flattened[statusCode] = {
183
+ ...resp,
184
+ content,
185
+ };
186
+ }
187
+ else {
188
+ flattened[statusCode] = resp;
189
+ }
190
+ }
191
+ return flattened;
192
+ }
193
+ //# sourceMappingURL=flattener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flattener.js","sourceRoot":"","sources":["../../src/build/flattener.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Build Pipeline Entry Point
3
+ *
4
+ * This module orchestrates the entire build process:
5
+ * 1. Parse and dereference OpenAPI spec
6
+ * 2. Extract endpoints
7
+ * 3. Flatten schemas (allOf, nested objects)
8
+ * 4. Optimize and minify
9
+ * 5. Generate Zod schemas
10
+ * 6. Output build artifacts
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/build/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
@@ -0,0 +1,175 @@
1
+ /**
2
+ * Build Pipeline Entry Point
3
+ *
4
+ * This module orchestrates the entire build process:
5
+ * 1. Parse and dereference OpenAPI spec
6
+ * 2. Extract endpoints
7
+ * 3. Flatten schemas (allOf, nested objects)
8
+ * 4. Optimize and minify
9
+ * 5. Generate Zod schemas
10
+ * 6. Output build artifacts
11
+ */
12
+ import { writeFile, mkdir } from "fs/promises";
13
+ import { dirname, resolve } from "path";
14
+ import { parseAndDereference, extractEndpoints } from "./parser.js";
15
+ import { flattenParameters, flattenRequestBody, flattenResponses, } from "./flattener.js";
16
+ import { optimizeEndpoint, calculateSizeReduction } from "./optimizer.js";
17
+ import { generateZodSchemasFile } from "./zod-generator.js";
18
+ /**
19
+ * Main build function
20
+ */
21
+ async function build() {
22
+ console.log("=".repeat(60));
23
+ console.log("Starting OpenAPI MCP Build Pipeline");
24
+ console.log("=".repeat(60));
25
+ const buildStartTime = Date.now();
26
+ // Get input path from command line argument or use default
27
+ const cliInputPath = process.argv[2];
28
+ const defaultInputPath = "../backend/main/docs/public.yaml";
29
+ const inputPath = cliInputPath
30
+ ? resolve(process.cwd(), cliInputPath)
31
+ : resolve(process.cwd(), defaultInputPath);
32
+ // Configuration
33
+ const config = {
34
+ inputPath,
35
+ outputPath: resolve(process.cwd(), "src/generated"),
36
+ enableFlattening: true,
37
+ enableOptimization: true,
38
+ enableZodGeneration: true,
39
+ verbose: true,
40
+ };
41
+ // Change to the OpenAPI spec directory to resolve relative references
42
+ const originalCwd = process.cwd();
43
+ const specDir = dirname(inputPath);
44
+ process.chdir(specDir);
45
+ console.log(`Changed working directory to: ${specDir}`);
46
+ console.log(`\nConfiguration:`);
47
+ console.log(` Input: ${config.inputPath}`);
48
+ console.log(` Output: ${config.outputPath}`);
49
+ console.log(` Flattening: ${config.enableFlattening}`);
50
+ console.log(` Optimization: ${config.enableOptimization}`);
51
+ console.log(` Zod Generation: ${config.enableZodGeneration}`);
52
+ console.log("");
53
+ try {
54
+ // Step 1: Parse and dereference OpenAPI spec
55
+ console.log("\n[Step 1/6] Parsing and dereferencing OpenAPI spec...");
56
+ const api = await parseAndDereference(config.inputPath);
57
+ console.log(`✓ Parsed OpenAPI ${api.info.version}: ${api.info.title}`);
58
+ // Step 2: Extract endpoints
59
+ console.log("\n[Step 2/6] Extracting endpoints...");
60
+ const rawEndpoints = extractEndpoints(api);
61
+ console.log(`✓ Extracted ${rawEndpoints.length} endpoints`);
62
+ // Step 3: Process each endpoint through the pipeline
63
+ console.log("\n[Step 3/6] Processing endpoints through pipeline...");
64
+ const optimizedEndpoints = [];
65
+ for (const { path, method, operation } of rawEndpoints) {
66
+ let endpoint = {
67
+ path,
68
+ method,
69
+ operationId: operation.operationId,
70
+ summary: operation.summary,
71
+ description: operation.description,
72
+ deprecated: operation.deprecated,
73
+ tags: operation.tags,
74
+ };
75
+ // Flatten parameters
76
+ if (operation.parameters && config.enableFlattening) {
77
+ endpoint.parameters = flattenParameters(operation.parameters);
78
+ }
79
+ else if (operation.parameters) {
80
+ endpoint.parameters = operation.parameters;
81
+ }
82
+ // Flatten request body
83
+ if (operation.requestBody && config.enableFlattening) {
84
+ endpoint.requestBody = flattenRequestBody(operation.requestBody);
85
+ }
86
+ else if (operation.requestBody) {
87
+ endpoint.requestBody = operation.requestBody;
88
+ }
89
+ // Flatten responses
90
+ if (operation.responses && config.enableFlattening) {
91
+ endpoint.responses = flattenResponses(operation.responses);
92
+ }
93
+ else if (operation.responses) {
94
+ endpoint.responses = operation.responses;
95
+ }
96
+ // Optimize
97
+ if (config.enableOptimization) {
98
+ endpoint = optimizeEndpoint(endpoint);
99
+ }
100
+ optimizedEndpoints.push(endpoint);
101
+ }
102
+ console.log(`✓ Processed ${optimizedEndpoints.length} endpoints`);
103
+ // Step 4: Calculate size reduction
104
+ console.log("\n[Step 4/6] Calculating optimization statistics...");
105
+ const sizeStats = calculateSizeReduction(rawEndpoints, optimizedEndpoints);
106
+ console.log(`✓ Original size: ${sizeStats.originalSize.toLocaleString()} bytes`);
107
+ console.log(`✓ Optimized size: ${sizeStats.optimizedSize.toLocaleString()} bytes`);
108
+ console.log(`✓ Reduction: ${sizeStats.reductionPercent.toFixed(2)}%`);
109
+ // Step 5: Create build output
110
+ console.log("\n[Step 5/6] Creating build output...");
111
+ const buildOutput = {
112
+ endpoints: optimizedEndpoints,
113
+ info: {
114
+ title: api.info.title,
115
+ version: api.info.version,
116
+ description: api.info.description,
117
+ },
118
+ servers: api.servers,
119
+ buildTimestamp: new Date().toISOString(),
120
+ stats: {
121
+ totalEndpoints: optimizedEndpoints.length,
122
+ originalSize: sizeStats.originalSize,
123
+ optimizedSize: sizeStats.optimizedSize,
124
+ reductionPercent: sizeStats.reductionPercent,
125
+ buildDuration: Date.now() - buildStartTime,
126
+ },
127
+ };
128
+ // Step 6: Generate Zod schemas and write output files
129
+ console.log("\n[Step 6/6] Generating Zod schemas and writing output files...");
130
+ let zodSchemas = "";
131
+ if (config.enableZodGeneration) {
132
+ zodSchemas = generateZodSchemasFile(optimizedEndpoints);
133
+ console.log(`✓ Generated Zod schemas for ${optimizedEndpoints.length} endpoints`);
134
+ }
135
+ await mkdir(config.outputPath, { recursive: true });
136
+ // Write optimized endpoints
137
+ const endpointsPath = resolve(config.outputPath, "endpoints.json");
138
+ await writeFile(endpointsPath, JSON.stringify(buildOutput, null, 2));
139
+ console.log(`✓ Written: ${endpointsPath}`);
140
+ // Write Zod schemas
141
+ if (config.enableZodGeneration) {
142
+ const zodPath = resolve(config.outputPath, "schemas.ts");
143
+ await writeFile(zodPath, zodSchemas);
144
+ console.log(`✓ Written: ${zodPath}`);
145
+ }
146
+ // Write build stats
147
+ const statsPath = resolve(config.outputPath, "build-stats.json");
148
+ await writeFile(statsPath, JSON.stringify(buildOutput.stats, null, 2));
149
+ console.log(`✓ Written: ${statsPath}`);
150
+ const buildDuration = Date.now() - buildStartTime;
151
+ console.log("\n" + "=".repeat(60));
152
+ console.log("Build completed successfully!");
153
+ console.log("=".repeat(60));
154
+ console.log(`Total duration: ${buildDuration}ms`);
155
+ console.log(`Endpoints processed: ${optimizedEndpoints.length}`);
156
+ console.log(`Size reduction: ${sizeStats.reductionPercent.toFixed(2)}%`);
157
+ console.log("=".repeat(60));
158
+ console.log("");
159
+ // Restore original working directory
160
+ process.chdir(originalCwd);
161
+ }
162
+ catch (error) {
163
+ console.error("\n" + "=".repeat(60));
164
+ console.error("Build failed!");
165
+ console.error("=".repeat(60));
166
+ console.error(error);
167
+ console.error("=".repeat(60));
168
+ // Restore original working directory
169
+ process.chdir(originalCwd);
170
+ process.exit(1);
171
+ }
172
+ }
173
+ // Run the build
174
+ build();
175
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/build/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Optimization and Minification Module
3
+ *
4
+ * This module handles:
5
+ * - Aggressive minification techniques
6
+ * - Removing redundant whitespace and empty keys
7
+ * - Using efficient property naming conventions
8
+ * - Custom abbreviations for common OpenAPI terms
9
+ *
10
+ * Target: 50-70% reduction in token count
11
+ */
12
+ import type { OptimizedEndpoint } from "./types.js";
13
+ /**
14
+ * Optimize an endpoint definition to reduce token count
15
+ *
16
+ * @param endpoint - Endpoint to optimize
17
+ * @returns Optimized endpoint
18
+ */
19
+ export declare function optimizeEndpoint(endpoint: OptimizedEndpoint): OptimizedEndpoint;
20
+ /**
21
+ * Calculate size reduction statistics
22
+ *
23
+ * @param original - Original data
24
+ * @param optimized - Optimized data
25
+ * @returns Size statistics
26
+ */
27
+ export declare function calculateSizeReduction(original: any, optimized: any): {
28
+ originalSize: number;
29
+ optimizedSize: number;
30
+ reductionPercent: number;
31
+ };
32
+ //# sourceMappingURL=optimizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimizer.d.ts","sourceRoot":"","sources":["../../src/build/optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,iBAAiB,CAc/E;AAmMD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG;IACrE,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAaA"}