UNPKG

wrekenfile-converter

Version:

Convert OpenAPI and Postman specs into Wrekenfiles, with chunking for vector database storage

183 lines 10 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getMiniWrekenfilesForEndpoints = getMiniWrekenfilesForEndpoints; exports.getMiniWrekenfilesForEndpointsV2 = getMiniWrekenfilesForEndpointsV2; exports.getMiniWrekenfilesForMethods = getMiniWrekenfilesForMethods; exports.getMiniWrekenfilesForMethodsV2 = getMiniWrekenfilesForMethodsV2; exports.getMiniWrekenfilesForInterface = getMiniWrekenfilesForInterface; exports.getMiniWrekenfileContent = getMiniWrekenfileContent; exports.getMiniWrekenfileContentV2 = getMiniWrekenfileContentV2; const fs_1 = __importDefault(require("fs")); const js_yaml_1 = __importDefault(require("js-yaml")); const v1 = __importStar(require("./v1")); const v2 = __importStar(require("./v2")); const wrekenfile_validator_1 = require("./v1/wrekenfile-validator"); const mini_wrekenfile_generator_1 = require("./v1/mini-wrekenfile-generator"); const mini_wrekenfile_generator_2 = require("./v2/mini-wrekenfile-generator"); /** * Example usage of the Wrekenfile converters and mini-wrekenfile generator * This shows how to use both v1 and v2 converters */ function exampleUsageV1() { console.log('=== Wrekenfile v1 Examples ==='); // OpenAPI v3 example (v1) const openapiContent = fs_1.default.readFileSync('./examples/plaid.yml', 'utf8'); const openapiSpec = js_yaml_1.default.load(openapiContent); const wrekenfileYaml = v1.generateWrekenfile(openapiSpec, './examples'); console.log('OpenAPI v3 to Wrekenfile (v1):', wrekenfileYaml.slice(0, 200) + '...'); // Postman example (v1) const postmanContent = fs_1.default.readFileSync('./examples/Swytchcode API Docs.postman_collection.json', 'utf8'); const postmanCollection = JSON.parse(postmanContent); const wrekenfileFromPostman = v1.generateWrekenfileFromPostman(postmanCollection, {}); console.log('Postman to Wrekenfile (v1):', wrekenfileFromPostman.slice(0, 200) + '...'); // Mini Wrekenfiles (v1) fs_1.default.writeFileSync('./Wrekenfile.yaml', wrekenfileYaml); const miniFiles = (0, mini_wrekenfile_generator_1.generateMiniWrekenfiles)(wrekenfileYaml); console.log('Mini Wrekenfiles count (v1):', miniFiles.length); if (miniFiles.length > 0) { console.log('First mini Wrekenfile (v1):', miniFiles[0].content.slice(0, 200) + '...'); } } function exampleUsageV2() { console.log('=== Wrekenfile v2 Examples ==='); try { // OpenAPI v3 example (v2) const openapiContent = fs_1.default.readFileSync('./examples/3n.yaml', 'utf8'); const openapiSpec = js_yaml_1.default.load(openapiContent); const wrekenfileYaml = v2.generateWrekenfile(openapiSpec, './examples'); console.log('OpenAPI v3 to Wrekenfile (v2):', wrekenfileYaml.slice(0, 200) + '...'); const parsed = js_yaml_1.default.load(wrekenfileYaml); console.log(' Generated:', Object.keys(parsed.METHODS || {}).length, 'methods'); // OpenAPI v2 (Swagger) example (v2) const openapiV2Content = fs_1.default.readFileSync('./examples/5n_v2.yaml', 'utf8'); const openapiV2Spec = js_yaml_1.default.load(openapiV2Content); const wrekenfileV2Yaml = v2.generateWrekenfileV2(openapiV2Spec, './examples'); console.log('OpenAPI v2 to Wrekenfile (v2):', wrekenfileV2Yaml.slice(0, 200) + '...'); const parsedV2 = js_yaml_1.default.load(wrekenfileV2Yaml); console.log(' Generated:', Object.keys(parsedV2.METHODS || {}).length, 'methods'); // Postman example (v2) const postmanContent = fs_1.default.readFileSync('./examples/Nium APIpostman_collection.json', 'utf8'); const postmanCollection = JSON.parse(postmanContent); const wrekenfileFromPostman = v2.generateWrekenfileFromPostman(postmanCollection, {}); console.log('Postman to Wrekenfile (v2):', wrekenfileFromPostman.slice(0, 200) + '...'); const parsedPostman = js_yaml_1.default.load(wrekenfileFromPostman); console.log(' Generated:', Object.keys(parsedPostman.METHODS || {}).length, 'methods'); // Mini Wrekenfiles (v2) - supports both HTTP and SDK methods fs_1.default.writeFileSync('./Wrekenfile_v2.yaml', wrekenfileYaml); const miniFiles = (0, mini_wrekenfile_generator_2.generateMiniWrekenfiles)(wrekenfileYaml); console.log('Mini Wrekenfiles count (v2):', miniFiles.length); if (miniFiles.length > 0) { const firstMini = miniFiles[0]; console.log('First mini Wrekenfile (v2):', firstMini.content.slice(0, 200) + '...'); console.log(' Metadata:', { endpoint: firstMini.metadata.endpoint, interface: firstMini.metadata.interface, source: firstMini.metadata.source, methods: firstMini.metadata.methods, structs: firstMini.metadata.structs }); } // Validation const validation = (0, wrekenfile_validator_1.validateWrekenfile)('./Wrekenfile_v2.yaml'); console.log('Validation result:', validation.isValid, validation.errors, validation.warnings); } catch (err) { console.error('Error in v2 examples:', err.message); if (err.code) { console.error(' Error code:', err.code); } throw err; } } function exampleUsage() { exampleUsageV1(); console.log('\n'); exampleUsageV2(); } // Example: Function to get mini Wrekenfiles for specific endpoints (v1) function getMiniWrekenfilesForEndpoints(wrekenfileContent, targetEndpoints) { const allMiniFiles = (0, mini_wrekenfile_generator_1.generateMiniWrekenfiles)(wrekenfileContent); return allMiniFiles.filter((miniFile) => targetEndpoints.includes(miniFile.metadata.endpoint || '')); } // Example: Function to get mini Wrekenfiles for specific endpoints (v2) function getMiniWrekenfilesForEndpointsV2(wrekenfileContent, targetEndpoints) { const allMiniFiles = (0, mini_wrekenfile_generator_2.generateMiniWrekenfiles)(wrekenfileContent); return allMiniFiles.filter((miniFile) => miniFile.metadata.endpoint && targetEndpoints.includes(miniFile.metadata.endpoint)); } // Example: Function to get mini Wrekenfiles for specific methods (v1) function getMiniWrekenfilesForMethods(wrekenfileContent, targetMethods) { const allMiniFiles = (0, mini_wrekenfile_generator_1.generateMiniWrekenfiles)(wrekenfileContent); return allMiniFiles.filter((miniFile) => miniFile.metadata.methods.some((method) => targetMethods.includes(method))); } // Example: Function to get mini Wrekenfiles for specific methods (v2) function getMiniWrekenfilesForMethodsV2(wrekenfileContent, targetMethods) { const allMiniFiles = (0, mini_wrekenfile_generator_2.generateMiniWrekenfiles)(wrekenfileContent); return allMiniFiles.filter((miniFile) => miniFile.metadata.methods.some((method) => targetMethods.includes(method))); } // Example: Function to get mini Wrekenfiles for SDK interface (v2) function getMiniWrekenfilesForInterface(wrekenfileContent, interfaceName, source) { const allMiniFiles = (0, mini_wrekenfile_generator_2.generateMiniWrekenfiles)(wrekenfileContent); return allMiniFiles.filter((miniFile) => miniFile.metadata.interface === interfaceName && (!source || miniFile.metadata.source === source)); } // Example: Function to get mini Wrekenfile content as string for AI context (v1) function getMiniWrekenfileContent(wrekenfileContent, endpoint) { const allMiniFiles = (0, mini_wrekenfile_generator_1.generateMiniWrekenfiles)(wrekenfileContent); const miniFile = allMiniFiles.find((file) => file.metadata.endpoint === endpoint); return miniFile ? miniFile.content : null; } // Example: Function to get mini Wrekenfile content as string for AI context (v2) function getMiniWrekenfileContentV2(wrekenfileContent, endpoint, interfaceName, source) { const allMiniFiles = (0, mini_wrekenfile_generator_2.generateMiniWrekenfiles)(wrekenfileContent); const miniFile = allMiniFiles.find((file) => { if (endpoint && file.metadata.endpoint !== endpoint) return false; if (interfaceName && file.metadata.interface !== interfaceName) return false; if (source && file.metadata.source !== source) return false; return true; }); return miniFile ? miniFile.content : null; } // Run example if this file is executed directly if (require.main === module) { exampleUsage(); } //# sourceMappingURL=example-usage.js.map