openapi-sync 2.1.12 → 2.1.14

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../Openapi-sync/index.ts","../regex.ts","../helpers.ts","../Openapi-sync/state.ts","../index.ts"],"names":["variableName","variableNameChar","isJson","value","isYamlString","fileContent","g","en","yamlStringToJson","content","jsonString","capitalize","text","getEndpointDetails","path","method","pathParts","name","variables","part","s","partVal","char","c","val","JSONStringify","obj","indent","result","keys","i","key","j","item","line","renderTypeRefMD","typeRef","getNestedValue","currentObj","dbPath","fs","db","__require","error","state","updateDB","data","setState","getState","resetState","rootUsingCwd","fetchTimeout","apiClient","axios","axiosRetry","retryCount","OpenapiSync","apiUrl","apiName","config","refetchInterval","__async","_a","_b","_c","_d","_e","_f","specResponse","source","spec","SwaggerParser","parseError","parseErrorMessage","folderPath","folderGroups","getFolderName","endpointData","customFolder","serverUrl","typePrefix","endpointPrefix","getSharedComponentName","componentName","componentType","defaultName","formattedName","parseSchemaToType","apiDoc","schema","isRequired","options","indentLevel","overrideName","type","pathToComponentParts","component","lodashget","v","objKeys","requiredKeys","typeCnt","doc","handleType","_type","arrType","_name","typeName","nullable","getSchemaExamples","prevSpec","isEqual","endpointsFileContent","typesFileContent","sharedTypesFileContent","components","componentInterfaces","componentSchema","contentKey","parts","currentLevel","currentSchemaLevel","cnt","getBodySchemaType","requestBody","contentKeys","treatEndpointUrl","endpointUrl","newEndpointUrl","replaceWord","indx","regexp","shouldExcludeEndpoint","tags","excludeConfig","includeConfig","matchesIncludeTags","tag","matchesIncludeEndpoints","endpoint","methodMatches","endpointPath","endpointSpec","_method","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","endpointTags","enSpec","folderName","endpointUrlTxt","eSpec","queryTypeCnt","param","typeContent","dtoTypeCnt","responseTypeObject","responseTypeCnt","responses","code","formatSecuritySpec","security","securityRequirement","scheme","scopes","sch","scopeText","securitySpec","curl","headers","body","extras","contentType","schemaType","securityItem","securitySchema","curlHeaders","header","CurlGenerator","endpointContent","group","folderPathForGroup","endpointsFilePath","typesFilePath","typesContent","sharedTypesFilePath","Openapi_sync_default","Init","configJS","registerError","jsConfigPath","tsConfigPath","jsonConfigPath","configPaths","configPath","e","apiNames"],"mappings":"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","file":"index.js","sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\nimport {\n capitalize,\n getEndpointDetails,\n isJson,\n JSONStringify,\n renderTypeRefMD,\n yamlStringToJson,\n} from \"../helpers\";\nimport {\n IConfig,\n IConfigReplaceWord,\n IOpenApiMediaTypeSpec,\n IOpenApiParameterSpec,\n IOpenApiRequestBodySpec,\n IOpenApiResponseSpec,\n IOpenApiSecuritySchemes,\n IOpenApiSpec,\n IOpenApSchemaSpec,\n} from \"../types\";\nimport isEqual from \"lodash.isequal\";\nimport lodashget from \"lodash.get\";\nimport axios, { Method } from \"axios\";\nimport axiosRetry from \"axios-retry\";\nimport SwaggerParser from \"@apidevtools/swagger-parser\";\nimport { getState, setState } from \"./state\";\nimport { CurlGenerator } from \"curl-generator\";\n\nconst rootUsingCwd = process.cwd();\nlet fetchTimeout: Record<string, null | NodeJS.Timeout> = {};\n\n// Create an Axios instance\nconst apiClient = axios.create({\n timeout: 60000, // Timeout after 1min\n});\n\n// Configure axios-retry\naxiosRetry(apiClient, {\n retries: 20, // Number of retry attempts\n retryCondition: (error) => {\n // Retry on network error\n return (\n error.code === \"ECONNABORTED\" || error.message.includes(\"Network Error\")\n );\n },\n retryDelay: (retryCount) => {\n return retryCount * 1000; // Exponential back-off: 1s, 2s, 3s, etc.\n },\n});\n\nconst OpenapiSync = async (\n apiUrl: string,\n apiName: string,\n config: IConfig,\n refetchInterval?: number\n) => {\n const specResponse = await apiClient.get(apiUrl);\n\n const source = isJson(specResponse.data)\n ? specResponse.data\n : yamlStringToJson(specResponse.data);\n\n // Parse the OpenAPI spec using swagger-parser with lenient parsing\n let spec: IOpenApiSpec;\n try {\n // Use lenient parsing by default (similar to redocly behavior)\n spec = (await SwaggerParser.parse(source)) as IOpenApiSpec;\n } catch (parseError) {\n const parseErrorMessage =\n parseError instanceof Error ? parseError.message : String(parseError);\n throw new Error(\n `Failed to parse OpenAPI spec for ${apiName}: ${parseErrorMessage}`\n );\n }\n\n const folderPath = path.join(config?.folder || \"\", apiName);\n\n // Initialize folder splitting data structures\n const folderGroups: Record<\n string,\n {\n endpoints: string;\n types: string;\n }\n > = {};\n\n // Helper function to determine folder name for an endpoint\n const getFolderName = (endpointData: {\n method: Method;\n path: string;\n summary?: string;\n operationId?: string;\n tags?: string[];\n parameters?: IOpenApiParameterSpec[];\n requestBody?: IOpenApiRequestBodySpec;\n responses?: IOpenApiResponseSpec;\n }): string => {\n // Use custom folder function if provided\n if (config?.folderSplit?.customFolder) {\n const customFolder = config.folderSplit.customFolder(endpointData);\n console.log(\"customFolder\", customFolder);\n if (customFolder) return customFolder;\n }\n\n // Use tag-based splitting if enabled\n if (\n config?.folderSplit?.byTags &&\n endpointData.tags &&\n endpointData.tags.length > 0\n ) {\n return endpointData.tags[0].toLowerCase().replace(/\\s+/g, \"-\");\n }\n\n // Default folder\n return \"default\";\n };\n\n const serverUrl =\n typeof config?.server === \"string\"\n ? config?.server\n : spec?.servers?.[config?.server || 0]?.url || \"\";\n const typePrefix =\n typeof config?.types?.name?.prefix === \"string\"\n ? config?.types.name.prefix\n : \"I\";\n const endpointPrefix =\n typeof config?.endpoints?.name?.prefix === \"string\"\n ? config?.endpoints.name.prefix\n : \"\";\n\n const getSharedComponentName = (\n componentName: string,\n componentType?:\n | \"parameters\"\n | \"responses\"\n | \"schemas\"\n | \"requestBodies\"\n | \"headers\"\n | \"links\"\n | \"callbacks\"\n ) => {\n const defaultName = capitalize(componentName);\n if (config?.types?.name?.format) {\n const formattedName = config?.types.name.format(\n \"shared\",\n {\n name: componentName,\n },\n defaultName\n );\n if (formattedName) return `${typePrefix}${formattedName}`;\n }\n return `${typePrefix}${defaultName}`;\n };\n\n const parseSchemaToType = (\n apiDoc: IOpenApiSpec,\n schema: IOpenApSchemaSpec,\n name: string,\n isRequired?: boolean,\n options?: {\n noSharedImport?: boolean;\n useComponentName?: boolean;\n },\n indentLevel: number = 0\n ) => {\n let overrideName = \"\";\n let componentName = \"\";\n let type = \"\";\n if (schema) {\n if (schema.$ref) {\n if (schema.$ref[0] === \"#\") {\n let pathToComponentParts = (schema.$ref || \"\").split(\"/\");\n pathToComponentParts.shift();\n const partsClone = [...pathToComponentParts];\n partsClone.pop();\n\n const pathToComponent = pathToComponentParts;\n const component = lodashget(\n apiDoc,\n pathToComponent,\n null\n ) as IOpenApSchemaSpec;\n\n if (component) {\n if ((component as any)?.name) {\n overrideName = (component as any).name;\n }\n componentName =\n pathToComponentParts[pathToComponentParts.length - 1];\n\n let name = getSharedComponentName(componentName);\n if (name.includes(\".\")) {\n const nameParts = name.split(\".\");\n name = nameParts\n .map((part, i) => {\n if (i === 0) {\n return part;\n }\n return `[\"${part}\"]`;\n })\n .join(\"\");\n }\n\n // Reference component via import instead of parsing\n type += `${options?.noSharedImport ? \"\" : \"Shared.\"}${name}`;\n // type += `${parseSchemaToType(apiDoc, component, \"\", isRequired)}`;\n }\n } else {\n type += \"\";\n //TODO $ref is a uri - use axios to fetch doc\n }\n } else if (schema.anyOf) {\n type += `(${schema.anyOf\n .map((v) => parseSchemaToType(apiDoc, v, \"\", isRequired, options))\n .filter((v) => !!v)\n .join(\"|\")})`;\n } else if (schema.oneOf) {\n type += `(${schema.oneOf\n .map((v) => parseSchemaToType(apiDoc, v, \"\", isRequired, options))\n .filter((v) => !!v)\n .join(\"|\")})`;\n } else if (schema.allOf) {\n type += `(${schema.allOf\n .map((v) => parseSchemaToType(apiDoc, v, \"\", isRequired, options))\n .filter((v) => !!v)\n .join(\"&\")})`;\n } else if (schema.items) {\n type += `${parseSchemaToType(\n apiDoc,\n schema.items,\n \"\",\n false,\n options\n )}[]`;\n } else if (schema.properties) {\n //parse object key one at a time\n const objKeys = Object.keys(schema.properties);\n const requiredKeys = schema.required || [];\n let typeCnt = \"\";\n objKeys.forEach((key) => {\n let doc: string = \"\";\n\n if (\n !config?.types?.doc?.disable &&\n schema.properties?.[key]?.description\n ) {\n doc =\n \" * \" +\n schema.properties?.[key].description\n .split(\"\\n\")\n .filter((line: string) => line.trim() !== \"\")\n .join(` \\n *${\" \".repeat(1)}`);\n }\n\n typeCnt +=\n (doc ? `/**\\n${doc}\\n */\\n` : \"\") +\n `${parseSchemaToType(\n apiDoc,\n schema.properties?.[key] as IOpenApSchemaSpec,\n key,\n requiredKeys.includes(key),\n options,\n indentLevel + 1\n )}`;\n });\n if (typeCnt.length > 0) {\n type += `{\\n${\" \".repeat(indentLevel)}${typeCnt}${\" \".repeat(\n indentLevel\n )}}`;\n } else {\n type += \"{[k: string]: any}\";\n }\n } else if (schema.enum && schema.enum.length > 0) {\n if (schema.enum.length > 1) type += \"(\";\n schema.enum\n .map((v) => JSON.stringify(v))\n .filter((v) => !!v)\n .forEach((v, i) => {\n type += `${i === 0 ? \"\" : \"|\"}${v}`;\n });\n\n if (schema.enum.length > 1) type += \")\";\n } else if (schema.type) {\n const handleType = (_type: typeof schema.type) => {\n let typeCnt = \"\";\n if (typeof _type === \"string\") {\n if (\n [\n \"string\",\n \"integer\",\n \"number\",\n \"array\",\n \"boolean\",\n \"null\",\n ].includes(_type)\n ) {\n if ([\"integer\", \"number\"].includes(_type)) {\n typeCnt += `number`;\n } else if (_type === \"array\") {\n //Since we would have already parsed the arrays keys above \"schema.items\" if it exists\n typeCnt += \"any[]\";\n /* if (schema.items) {\n typeCnt += `${parseSchemaToType(\n apiDoc,\n schema.items,\n \"\",\n false,\n options\n )}[]`;\n } else {\n typeCnt += \"any[]\";\n } */\n } else {\n typeCnt += _type;\n }\n } else if (_type === \"object\") {\n //Since we would have already parsed the object keys above \"schema.properties\" if it exists\n if (schema.additionalProperties) {\n typeCnt += `{[k: string]: ${\n parseSchemaToType(\n apiDoc,\n schema.additionalProperties,\n \"\",\n true,\n options\n ) || \"any\"\n }}`;\n } else {\n typeCnt += \"{[k: string]: any}\";\n }\n }\n } else if (Array.isArray(_type)) {\n const arrType = _type.map((v) => handleType(v));\n arrType.filter((v) => v !== \"\");\n if (arrType.length > 1) typeCnt += \"(\" + arrType.join(\"|\") + \")\";\n } else {\n typeCnt += \"any\";\n }\n\n return typeCnt;\n };\n type = handleType(schema.type);\n }\n } else {\n //Default type to string if no schema provided\n type = \"string\";\n }\n\n let _name = overrideName || name;\n if (options?.useComponentName && !_name) {\n _name = componentName;\n }\n\n let typeName = _name ? `\\t\"${_name}\"${isRequired ? \"\" : \"?\"}: ` : \"\";\n\n const nullable = schema?.nullable ? \" | null\" : \"\";\n return type.length > 0\n ? `${typeName}${type}${nullable}${_name ? \";\\n\" : \"\"}`\n : \"\";\n };\n\n const getSchemaExamples = (\n apiDoc: IOpenApiSpec,\n schema: IOpenApSchemaSpec\n ) => {\n let overrideName = \"\";\n let componentName = \"\";\n let type = \"\";\n if (schema) {\n if (schema.$ref) {\n if (schema.$ref[0] === \"#\") {\n let pathToComponentParts = (schema.$ref || \"\").split(\"/\");\n pathToComponentParts.shift();\n\n const pathToComponent = pathToComponentParts;\n const component = lodashget(\n apiDoc,\n pathToComponent,\n null\n ) as IOpenApSchemaSpec;\n\n if (component) {\n if ((component as any)?.name) {\n overrideName = (component as any).name;\n }\n componentName =\n pathToComponentParts[pathToComponentParts.length - 1];\n\n type += getSchemaExamples(apiDoc, component);\n }\n } else {\n type += \"\";\n //TODO $ref is a uri - use axios to fetch doc\n }\n } else if (schema.anyOf) {\n type += getSchemaExamples(apiDoc, schema.anyOf[0]);\n } else if (schema.oneOf) {\n type += getSchemaExamples(apiDoc, schema.oneOf[0]);\n } else if (schema.allOf) {\n type += `{${schema.allOf\n .map((v) => `...(${getSchemaExamples(apiDoc, v)})`)\n .join(\",\")}}`;\n } else if (schema.items) {\n type += `[${getSchemaExamples(apiDoc, schema.items)}]`;\n } else if (schema.properties) {\n //parse object key one at a time\n const objKeys = Object.keys(schema.properties);\n const arr = objKeys.map((key) => {\n return ` \"${key}\": ${getSchemaExamples(\n apiDoc,\n schema.properties?.[key] as IOpenApSchemaSpec\n )}`;\n });\n let typeCnt = arr.join(\",\\n\");\n if (typeCnt.length > 0) {\n type += `{\\n${typeCnt}\\n }`;\n } else {\n type += \"{}\";\n }\n } else if (schema.enum && schema.enum.length > 0) {\n if (schema.enum.length > 1) type += schema.enum[0];\n } else if (schema.type) {\n if (schema.example) {\n type += JSON.stringify(schema.example);\n } else {\n const handleType = (_type: typeof schema.type) => {\n let typeCnt = \"\";\n if (typeof _type === \"string\") {\n if (\n [\n \"string\",\n \"integer\",\n \"number\",\n \"array\",\n \"boolean\",\n \"null\",\n ].includes(_type)\n ) {\n if ([\"integer\", \"number\"].includes(_type)) {\n typeCnt += `123`;\n } else if (_type === \"array\") {\n //Since we would have already parsed the arrays keys above \"schema.items\" if it exists\n typeCnt += \"[]\";\n } else if (_type === \"boolean\") {\n typeCnt += `true`;\n } else if (_type === \"null\") {\n typeCnt += `null`;\n } else {\n typeCnt += `\"${_type}\"`;\n }\n } else if (_type === \"object\") {\n //Since we would have already parsed the object keys above \"schema.properties\" if it exists\n typeCnt += \"{}\";\n }\n } else if (Array.isArray(_type)) {\n const arrType = _type.map((v) => handleType(v));\n arrType.filter((v) => v !== \"\");\n if (arrType.length > 1) typeCnt += arrType.join(\"|\");\n } else {\n typeCnt += \"any\";\n }\n\n return typeCnt;\n };\n type = handleType(schema.type);\n }\n }\n } else {\n //Default type to string if no schema provided\n type = \"string\";\n }\n\n return type;\n };\n\n // auto update only on dev\n if (refetchInterval && !isNaN(refetchInterval) && refetchInterval > 0) {\n if (\n !(\n process.env.NODE_ENV &&\n [\"production\", \"prod\", \"test\", \"staging\"].includes(process.env.NODE_ENV)\n )\n ) {\n // auto sync at interval\n if (fetchTimeout[apiName]) clearTimeout(fetchTimeout[apiName]);\n\n // set next request timeout\n fetchTimeout[apiName] = setTimeout(\n () => OpenapiSync(apiUrl, apiName, config, refetchInterval),\n refetchInterval\n );\n }\n }\n\n // compare new spec with old spec, continuing only if spec it different\n const prevSpec = getState(apiName);\n if (isEqual(prevSpec, spec)) return;\n\n setState(apiName, spec);\n\n let endpointsFileContent = \"\";\n let typesFileContent = \"\";\n let sharedTypesFileContent: Record<string, string> = {};\n\n if (spec.components) {\n Object.keys(spec.components).forEach((key) => {\n if (\n [\n \"schemas\",\n \"responses\",\n \"parameters\",\n \"examples\",\n \"requestBodies\",\n \"headers\",\n \"links\",\n \"callbacks\",\n ].includes(key)\n ) {\n // Create components (shared) types\n const components: Record<string, IOpenApiMediaTypeSpec> =\n spec.components[key];\n\n const componentInterfaces: Record<string, string> = {};\n const componentSchema: Record<string, string> = {};\n\n const contentKeys = Object.keys(components);\n\n // only need 1 schema so will us the first schema provided\n contentKeys.forEach((contentKey) => {\n /* const schema = (() => {\n switch (key) {\n case \"parameters\":\n return components[contentKey].schema;\n default:\n return components[contentKey];\n }\n })() as IOpenApSchemaSpec; */\n const schema = (\n components[contentKey]?.schema\n ? components[contentKey].schema\n : components[contentKey]\n ) as IOpenApSchemaSpec;\n\n const typeCnt = `${parseSchemaToType(spec, schema, \"\", true, {\n noSharedImport: true,\n useComponentName: [\"parameters\"].includes(key),\n })}`;\n\n if (typeCnt) {\n const parts = contentKey.split(\".\");\n let currentLevel: any = componentInterfaces;\n let currentSchemaLevel: any = componentSchema;\n\n // Navigate or create the nested structure\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n if (i < parts.length - 1) {\n // If it's not the last part, create a nested object if it doesn't exist\n if (!(part in currentLevel)) {\n currentLevel[part] = {}; //<== This rely on js ability to assign value to origianl object by reference, so this assignment will be reflected in componentInterfaces\n currentSchemaLevel[part] = {}; //<== This rely on js ability to assign value to origianl object by reference, so this assignment will be reflected in componentSchema\n }\n currentLevel = currentLevel[part]; //<== This rely on js ability to assign value to origianl object by reference, so this assignment will be reflected in componentInterfaces\n currentSchemaLevel = currentSchemaLevel[part]; //<== This rely on js ability to assign value to origianl object by reference, so this assignment will be reflected in componentSchema\n } else {\n // This is the last part, assign the original schema value\n currentLevel[part] = typeCnt; //<== This rely on js ability to assign value to origianl object by reference, so this assignment will be reflected in componentInterfaces\n currentSchemaLevel[part] = schema; //<== This rely on js ability to assign value to origianl object by reference, so this assignment will be reflected in componentSchema\n }\n }\n }\n });\n\n // Generate TypeScript interfaces for each component\n Object.keys(componentInterfaces).forEach((key) => {\n const name = getSharedComponentName(key);\n const cnt = componentInterfaces[key];\n let doc: string = \"\";\n if (\n !config?.types?.doc?.disable &&\n key in components &&\n //@ts-expect-error\n components[key]?.description\n ) {\n doc =\n \" * \" +\n //@ts-expect-error\n components[key].description\n .split(\"\\n\")\n .filter((line: string) => line.trim() !== \"\")\n .join(` \\n *${\" \".repeat(1)}`);\n }\n\n sharedTypesFileContent[key] =\n (sharedTypesFileContent[key] ?? \"\") +\n (doc ? `/**\\n${doc}\\n */\\n` : \"\") +\n \"export type \" +\n name +\n \" = \" +\n (typeof cnt === \"string\" ? cnt : JSONStringify(cnt)) +\n \";\\n\";\n });\n }\n });\n }\n\n const getBodySchemaType = (requestBody: IOpenApiRequestBodySpec) => {\n let typeCnt = \"\";\n if (requestBody.content) {\n const contentKeys = Object.keys(requestBody.content);\n // only need 1 schema so will us the first schema provided\n if (contentKeys[0] && requestBody.content[contentKeys[0]].schema) {\n typeCnt += `${parseSchemaToType(\n spec,\n requestBody.content[contentKeys[0]].schema as IOpenApSchemaSpec,\n \"\"\n )}`;\n }\n }\n return typeCnt;\n };\n\n const treatEndpointUrl = (endpointUrl: string) => {\n if (\n config?.endpoints?.value?.replaceWords &&\n Array.isArray(config?.endpoints.value.replaceWords)\n ) {\n let newEndpointUrl = endpointUrl;\n config?.endpoints?.value?.replaceWords?.forEach(\n (replaceWord: IConfigReplaceWord, indx) => {\n const regexp = new RegExp(replaceWord.replace, \"g\");\n newEndpointUrl = newEndpointUrl.replace(\n regexp,\n replaceWord.with || \"\"\n );\n }\n );\n return newEndpointUrl;\n } else {\n return endpointUrl;\n }\n };\n\n // Helper function to check if an endpoint should be excluded\n const shouldExcludeEndpoint = (\n path: string,\n method: Method,\n tags: string[] = []\n ) => {\n const excludeConfig = config?.endpoints?.exclude;\n const includeConfig = config?.endpoints?.include;\n\n // If include is specified\n if (includeConfig) {\n // Check if endpoint matches include criteria\n const matchesIncludeTags =\n includeConfig.tags && includeConfig.tags.length > 0\n ? tags.some((tag) => includeConfig.tags!.includes(tag))\n : true;\n\n const matchesIncludeEndpoints =\n includeConfig.endpoints && includeConfig.endpoints.length > 0\n ? includeConfig.endpoints.some((endpoint) => {\n const methodMatches =\n !endpoint.method ||\n endpoint.method.toLowerCase() === method.toLowerCase();\n\n // Use exact path match if path is provided\n if (endpoint.path) {\n return path === endpoint.path && methodMatches;\n }\n // Use regex match if regex is provided\n else if (endpoint.regex) {\n const pathRegex = new RegExp(endpoint.regex);\n return pathRegex.test(path) && methodMatches;\n }\n\n return false;\n })\n : true;\n\n // If include is specified but endpoint doesn't match, exclude it\n if (!matchesIncludeTags || !matchesIncludeEndpoints) {\n return true;\n }\n }\n\n // Check exclude criteria, it takes precedence over include\n if (excludeConfig) {\n // Check tags exclusion\n if (excludeConfig.tags && excludeConfig.tags.length > 0) {\n const hasExcludedTag = tags.some((tag) =>\n excludeConfig.tags!.includes(tag)\n );\n if (hasExcludedTag) return true;\n }\n\n // Check endpoint exclusion\n if (excludeConfig.endpoints && excludeConfig.endpoints.length > 0) {\n const matchesExcludedEndpoint = excludeConfig.endpoints.some(\n (endpoint) => {\n const methodMatches =\n !endpoint.method ||\n endpoint.method.toLowerCase() === method.toLowerCase();\n\n // Use exact path match if path is provided\n if (endpoint.path) {\n return path === endpoint.path && methodMatches;\n }\n\n // Use regex match if regex is provided\n else if (endpoint.regex) {\n const pathRegex = new RegExp(endpoint.regex);\n return pathRegex.test(path) && methodMatches;\n }\n\n return false;\n }\n );\n if (matchesExcludedEndpoint) return true;\n }\n }\n\n return false;\n };\n\n Object.keys(spec.paths || {}).forEach((endpointPath) => {\n const endpointSpec = spec.paths[endpointPath];\n\n const endpointMethods = Object.keys(endpointSpec);\n endpointMethods.forEach((_method) => {\n const method = _method as Method;\n const endpoint = getEndpointDetails(endpointPath, method);\n\n // Get endpoint tags for filtering\n const endpointTags = endpointSpec[method]?.tags || [];\n\n // Check if this endpoint should be excluded\n if (shouldExcludeEndpoint(endpointPath, method, endpointTags)) {\n return; // Skip this endpoint\n }\n\n // Determine folder name for this endpoint\n const enSpec = endpointSpec[method];\n const folderName = getFolderName({\n method,\n path: endpointPath,\n summary: enSpec?.summary,\n operationId: enSpec?.operationId,\n tags: endpointTags,\n parameters: enSpec?.parameters,\n requestBody: enSpec?.requestBody,\n responses: enSpec?.responses,\n });\n\n // Initialize folder group if it doesn't exist\n if (!folderGroups[folderName]) {\n folderGroups[folderName] = {\n endpoints: \"\",\n types: \"\",\n };\n }\n\n const endpointUrlTxt =\n (config?.endpoints?.value?.includeServer ? serverUrl : \"\") +\n endpoint.pathParts\n .map((part) => {\n // check if part is a variable\n if (part[0] === \"{\" && part[part.length - 1] === \"}\") {\n const s = part.replace(/{/, \"\").replace(/}/, \"\");\n part = `\\${${s}}`;\n }\n\n //api/<userId>\n else if (part[0] === \"<\" && part[part.length - 1] === \">\") {\n const s = part.replace(/</, \"\").replace(/>/, \"\");\n part = `\\${${s}}`;\n }\n\n //api/:userId\n else if (part[0] === \":\") {\n const s = part.replace(/:/, \"\");\n part = `\\${${s}}`;\n }\n return part;\n })\n .join(\"/\");\n\n let endpointUrl = `\"${endpointUrlTxt}\"`;\n if (endpoint.variables.length > 0) {\n const params = endpoint.variables.map((v) => `${v}:string`).join(\",\");\n endpointUrl = `(${params})=> \\`${endpointUrlTxt}\\``;\n }\n\n //treat endpoint url\n endpointUrl = treatEndpointUrl(endpointUrl);\n\n const eSpec = endpointSpec[method];\n\n let queryTypeCnt = \"\";\n\n if (eSpec?.parameters) {\n // create query parameters types\n const parameters: IOpenApiParameterSpec[] = eSpec?.parameters;\n parameters.forEach((param, i) => {\n if (param.$ref || (param.in === \"query\" && param.name)) {\n queryTypeCnt += `${parseSchemaToType(\n spec,\n param.$ref ? (param as any) : (param.schema as any),\n param.name || \"\",\n param.required\n )}`;\n }\n });\n\n if (queryTypeCnt) {\n queryTypeCnt = `{\\n${queryTypeCnt}}`;\n let name = `${endpoint.name}Query`;\n\n // Use operationId if configured and available\n if (config?.types?.name?.useOperationId && eSpec?.operationId) {\n name = `${eSpec.operationId}Query`;\n }\n name = capitalize(`${typePrefix}${name}`);\n\n if (config?.types?.name?.format) {\n const formattedName = config?.types.name.format(\n \"endpoint\",\n {\n code: \"\",\n type: \"query\",\n method,\n path: endpointPath,\n summary: eSpec?.summary,\n operationId: eSpec?.operationId,\n },\n name\n );\n if (formattedName) name = `${typePrefix}${formattedName}`;\n }\n const typeContent = `export type ${name} = ${queryTypeCnt};\\n`;\n if (config?.folderSplit) {\n folderGroups[folderName].types += typeContent;\n } else {\n typesFileContent += typeContent;\n }\n }\n }\n\n const requestBody: IOpenApiRequestBodySpec = eSpec?.requestBody;\n let dtoTypeCnt = \"\";\n if (requestBody) {\n //create requestBody types\n dtoTypeCnt = getBodySchemaType(requestBody);\n\n if (dtoTypeCnt) {\n let name = `${endpoint.name}DTO`;\n\n // Use operationId if configured and available\n if (config?.types?.name?.useOperationId && eSpec?.operationId) {\n name = `${eSpec.operationId}DTO`;\n }\n\n name = capitalize(`${typePrefix}${name}`);\n\n if (config?.types?.name?.format) {\n const formattedName = config?.types.name.format(\n \"endpoint\",\n {\n code: \"\",\n type: \"dto\",\n method,\n path: endpointPath,\n summary: eSpec?.summary,\n operationId: eSpec?.operationId,\n },\n name\n );\n if (formattedName) name = `${typePrefix}${formattedName}`;\n }\n const typeContent = `export type ${name} = ${dtoTypeCnt};\\n`;\n if (config?.folderSplit) {\n folderGroups[folderName].types += typeContent;\n } else {\n typesFileContent += typeContent;\n }\n }\n }\n\n const responseTypeObject: Record<string, string> = {};\n\n let responseTypeCnt = \"\";\n if (eSpec?.responses) {\n // create request response types\n const responses: IOpenApiResponseSpec = eSpec?.responses;\n const resCodes = Object.keys(responses);\n resCodes.forEach((code) => {\n responseTypeCnt = getBodySchemaType(responses[code]);\n responseTypeObject[code] = responseTypeCnt;\n if (responseTypeCnt) {\n let name = `${endpoint.name}${code}Response`;\n\n // Use operationId if configured and available\n if (config?.types?.name?.useOperationId && eSpec?.operationId) {\n name = `${eSpec.operationId}${code}Response`;\n }\n\n name = capitalize(`${typePrefix}${name}`);\n\n if (config?.types?.name?.format) {\n const formattedName = config?.types.name.format(\n \"endpoint\",\n {\n code,\n type: \"response\",\n method,\n path: endpointPath,\n summary: eSpec?.summary,\n operationId: eSpec?.operationId,\n },\n name\n );\n if (formattedName) name = `${typePrefix}${formattedName}`;\n }\n const typeContent = `export type ${name} = ${responseTypeCnt};\\n`;\n if (config?.folderSplit) {\n folderGroups[folderName].types += typeContent;\n } else {\n typesFileContent += typeContent;\n }\n }\n });\n }\n\n // Function to format security requirements\n const formatSecuritySpec = (\n security: Array<Record<string, string[]>>\n ) => {\n if (!security || !security.length) return \"\";\n\n return security\n .map((securityRequirement) => {\n const requirements = Object.entries(securityRequirement)\n .map(([scheme, scopes]) => {\n let sch = scheme;\n let scopeText = \"\";\n if (Array.isArray(scopes) && scopes.length) {\n scopeText = `\\n - Scopes: [\\`${scopes.join(\"`, `\")}\\`]`;\n sch = `**${sch}**`;\n }\n\n return `\\n - ${sch}${scopeText}`;\n })\n .join(\"\");\n return requirements;\n })\n .join(\"\\n\");\n };\n\n // Get formatted security specification\n const securitySpec = eSpec?.security\n ? formatSecuritySpec(eSpec.security)\n : \"\";\n\n let doc = \"\";\n if (!config?.endpoints?.doc?.disable) {\n let curl = \"\";\n if (config?.endpoints?.doc?.showCurl) {\n // console.log(\"cirl data\", {\n // body: eSpec?.requestBody,\n // bodyContent:\n // eSpec?.requestBody?.content[\"application/json\"]?.schema\n // ?.properties,\n // security: eSpec?.security,\n // });\n const headers: Record<string, string | string[]> = {};\n let body = \"\";\n let extras = \"\";\n\n if (eSpec.requestBody?.content) {\n const contentTypes = Object.keys(eSpec.requestBody.content);\n contentTypes.forEach((contentType) => {\n // console.log(\"requestBody content\", {\n // contentType,\n // schema: eSpec.requestBody.content[contentType].schema,\n // });\n const schema = eSpec.requestBody.content[contentType].schema;\n if (schema) {\n if (Array.isArray(headers[\"Content-type\"])) {\n headers[\"Content-type\"].push(contentType);\n } else {\n headers[\"Content-type\"] = [contentType];\n }\n const schemaType = getSchemaExamples(\n spec,\n schema as IOpenApSchemaSpec\n );\n if (schemaType) body = schemaType;\n }\n });\n }\n\n if (eSpec?.security) {\n eSpec.security.forEach((securityItem: Record<string, string[]>) => {\n Object.keys(securityItem).forEach((security) => {\n const securitySchema: IOpenApiSecuritySchemes[string] =\n spec.components?.securitySchemes?.[security];\n\n if (securitySchema) {\n // headers[\"Authorization\"] = securitySchema;\n if (securitySchema.type === \"mutualTLS\") {\n extras += `\\n--cert client-certificate.crt \\\n--key client-private-key.key \\\n--cacert ca-certificate.crt`;\n } else if (securitySchema.type === \"apiKey\") {\n headers[\n securitySchema?.name || \"X-API-KEY\"\n ] = `{API_KEY_VALUE}`;\n } else {\n headers[\"Authorization\"] = `${\n securitySchema?.scheme === \"basic\" ? \"Basic\" : \"Bearer\"\n } {${\n securitySchema?.scheme === \"basic\" ? \"VALUE\" : \"TOKEN\"\n }}`;\n }\n }\n });\n });\n }\n\n const curlHeaders: Record<string, string> = {};\n Object.keys(headers).forEach((header) => {\n if (Array.isArray(headers[header])) {\n curlHeaders[header] = headers[header].join(\"; \");\n } else {\n curlHeaders[header] = headers[header];\n }\n });\n\n // console.log(\"curlHeaders\", { headers, curlHeaders, body });\n\n curl = `\\n\\`\\`\\`bash \n${CurlGenerator({\n url: serverUrl + endpointPath,\n method: method.toUpperCase() as any,\n headers: curlHeaders,\n body,\n})}${extras}\n\\`\\`\\``;\n }\n\n doc = `/**${eSpec?.description ? `\\n* ${eSpec?.description} ` : \"\"}\n * **Method**: \\`${method.toUpperCase()}\\` \n * **Summary**: ${eSpec?.summary || \"\"} \n * **Tags**: [${eSpec?.tags?.join(\", \") || \"\"}] \n * **OperationId**: ${eSpec?.operationId || \"\"} ${\n queryTypeCnt\n ? `\\n * **Query**: ${renderTypeRefMD(queryTypeCnt)} `\n : \"\"\n }${dtoTypeCnt ? `\\n * **DTO**: ${renderTypeRefMD(dtoTypeCnt)} ` : \"\"}${\n responseTypeCnt\n ? `\\n * **Response**: ${Object.entries(responseTypeObject)\n .map(\n ([code, type]) =>\n `\\n - **${code}**: ${renderTypeRefMD(type, 2)} `\n )\n .join(\"\")}`\n : \"\"\n }${securitySpec ? `\\n * **Security**: ${securitySpec}\\n` : \"\"}${curl}\n */\\n`;\n }\n\n let name =\n config?.endpoints?.name?.useOperationId &&\n eSpec?.operationId?.length > 0\n ? eSpec.operationId\n : `${endpoint.name}`;\n\n if (config?.endpoints?.name?.format) {\n const formattedName = config?.endpoints.name.format(\n {\n method,\n path: endpointPath,\n summary: eSpec?.summary,\n operationId: eSpec?.operationId,\n },\n name\n );\n if (formattedName) name = formattedName;\n }\n\n const content = {\n method: `\"${method}\"`,\n operationId: `\"${eSpec?.operationId}\"`,\n url: endpointUrl,\n tags: eSpec?.tags || [],\n };\n // Add the endpoint url to the specific folder group\n const endpointContent = `${doc}export const ${endpointPrefix}${name} = ${\n config?.endpoints?.value?.type === \"object\"\n ? JSONStringify(content)\n : endpointUrl\n }; \n`;\n\n // Add to folder group if folder splitting is enabled, otherwise add to global content\n if (config?.folderSplit) {\n folderGroups[folderName].endpoints += endpointContent;\n } else {\n endpointsFileContent += endpointContent;\n }\n });\n });\n\n // Write files based on folder splitting configuration\n if (config?.folderSplit) {\n // Write files for each folder group\n for (const [folderName, group] of Object.entries(folderGroups)) {\n if (group.endpoints || group.types) {\n const folderPathForGroup = path.join(folderPath, folderName);\n\n // Write endpoints file\n if (group.endpoints) {\n const endpointsFilePath = path.join(\n rootUsingCwd,\n folderPathForGroup,\n \"endpoints.ts\"\n );\n await fs.promises.mkdir(path.dirname(endpointsFilePath), {\n recursive: true,\n });\n await fs.promises.writeFile(endpointsFilePath, group.endpoints);\n }\n\n // Write types file\n if (group.types) {\n const typesFilePath = path.join(\n rootUsingCwd,\n folderPathForGroup,\n \"types.ts\"\n );\n await fs.promises.mkdir(path.dirname(typesFilePath), {\n recursive: true,\n });\n\n const typesContent =\n Object.values(sharedTypesFileContent).length > 0\n ? `import * as Shared from \"../shared\";\\n\\n${group.types}`\n : group.types;\n\n await fs.promises.writeFile(typesFilePath, typesContent);\n }\n }\n }\n }\n\n if (endpointsFileContent.length > 0) {\n // Original behavior - write to single files\n const endpointsFilePath = path.join(\n rootUsingCwd,\n folderPath,\n \"endpoints.ts\"\n );\n await fs.promises.mkdir(path.dirname(endpointsFilePath), {\n recursive: true,\n });\n await fs.promises.writeFile(endpointsFilePath, endpointsFileContent);\n }\n if (Object.values(sharedTypesFileContent).length > 0) {\n const sharedTypesFilePath = path.join(\n rootUsingCwd,\n folderPath,\n !config?.folderSplit ? \"types\" : \"\",\n \"shared.ts\"\n );\n await fs.promises.mkdir(path.dirname(sharedTypesFilePath), {\n recursive: true,\n });\n await fs.promises.writeFile(\n sharedTypesFilePath,\n Object.values(sharedTypesFileContent).join(\"\\n\")\n );\n }\n\n if (typesFileContent.length > 0) {\n const typesFilePath = path.join(\n rootUsingCwd,\n folderPath,\n \"types\",\n \"index.ts\"\n );\n await fs.promises.mkdir(path.dirname(typesFilePath), { recursive: true });\n await fs.promises.writeFile(\n typesFilePath,\n `${\n Object.values(sharedTypesFileContent).length > 0\n ? `import * as Shared from \"./shared\";\\n\\n`\n : \"\"\n }${typesFileContent}`\n );\n }\n};\nexport default OpenapiSync;\n","export const variableName = /^[A-Za-z_$][A-Za-z0-9_$]*$/;\nexport const variableNameChar = /[A-Za-z0-9_$]/;\n","import { variableNameChar } from \"./regex\";\nimport * as yaml from \"js-yaml\";\n\nexport const isJson = (value: any) => {\n return [\"object\"].includes(typeof value) && !(value instanceof Blob);\n};\n\nexport const isYamlString = (fileContent: string) => {\n try {\n yaml.load(fileContent);\n return true;\n } catch (en) {\n const e = en as any;\n if (e instanceof yaml.YAMLException) {\n return false;\n } else {\n throw e;\n }\n }\n};\n\nexport const yamlStringToJson = (fileContent: string) => {\n if (isYamlString(fileContent)) {\n const content = yaml.load(fileContent);\n\n const jsonString = JSON.stringify(content, null, 2);\n const json = JSON.parse(jsonString);\n return json;\n }\n};\n\nexport const capitalize = (text: string) => {\n const capitalizedWord =\n text.substring(0, 1).toUpperCase() + text.substring(1);\n return capitalizedWord;\n};\n\nexport const getEndpointDetails = (path: string, method: string) => {\n const pathParts = path.split(\"/\");\n let name = `${capitalize(method)}`;\n const variables: string[] = [];\n pathParts.forEach((part) => {\n // check if part is a variable\n //api/{userId}\n if (part[0] === \"{\" && part[part.length - 1] === \"}\") {\n const s = part.replace(/{/, \"\").replace(/}/, \"\");\n variables.push(s);\n part = `$${s}`;\n }\n\n //api/<userId>\n else if (part[0] === \"<\" && part[part.length - 1] === \">\") {\n const s = part.replace(/</, \"\").replace(/>/, \"\");\n variables.push(s);\n part = `$${s}`;\n }\n\n //api/:userId\n else if (part[0] === \":\") {\n const s = part.replace(/:/, \"\");\n variables.push(s);\n part = `$${s}`;\n }\n\n // parse to variable name\n let partVal = \"\";\n part.split(\"\").forEach((char) => {\n let c = char;\n if (!variableNameChar.test(char)) c = \"/\";\n partVal += c;\n });\n\n partVal.split(\"/\").forEach((val) => {\n name += capitalize(val);\n });\n });\n\n return { name, variables, pathParts };\n};\n\nexport const JSONStringify = (obj: Record<string, any>, indent = 1) => {\n let result = \"{\";\n const keys = Object.keys(obj);\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = obj[key];\n\n result += \"\\n\" + \" \".repeat(indent) + key + \": \";\n\n if (Array.isArray(value)) {\n result += \"[\";\n for (let j = 0; j < value.length; j++) {\n const item = value[j];\n if (typeof item === \"object\" && item !== null) {\n result += JSONStringify(item, indent + 1);\n } else {\n result += typeof item === \"string\" ? `\"${item}\"` : item;\n }\n if (j < value.length - 1) {\n result += \", \";\n }\n }\n result += \"]\";\n } else if (typeof value === \"object\" && value !== null) {\n result += \"\" + JSONStringify(value, indent + 1);\n } else {\n result += value\n .split(\"\\n\")\n .filter((line: string) => line.trim() !== \"\")\n .join(`\\n${\" \".repeat(indent)}`);\n }\n\n if (i < keys.length - 1) {\n result += \", \";\n }\n }\n\n result += `\\n${\" \".repeat(indent - 1)}}`;\n return result;\n};\n\nexport const renderTypeRefMD = (typeRef: string, indent = 1) => {\n return `\\n\\`\\`\\`typescript\\n${\" \".repeat(indent)} ${typeRef\n .split(\"\\n\")\n .filter((line) => line.trim() !== \"\")\n .join(`\\n${\" \".repeat(indent)} `)}\\n\\`\\`\\``;\n};\n\nexport function getNestedValue<T>(obj: object, path: string): T | undefined {\n // Split the path string into an array of keys\n const keys = path.split(\".\");\n\n // Use the reduce method to navigate the object\n return keys.reduce((currentObj: any, key: string) => {\n // If the current object is not null or undefined,\n // return the value of the next key. Otherwise, return undefined.\n return currentObj && currentObj[key] !== undefined\n ? currentObj[key]\n : undefined;\n }, obj) as T | undefined;\n}\n","import path from \"path\";\nimport { IOpenApiSpec } from \"../types\";\nimport fs from \"fs\";\n\nconst dbPath = path.join(__dirname, \"../\", \"../db.json\");\nif (!fs.existsSync(dbPath)) {\n fs.writeFileSync(dbPath, \"{}\");\n}\nlet db: Record<string, IOpenApiSpec> = {};\ntry {\n db = require(dbPath);\n} catch (error) {\n db = {};\n}\nlet state: Record<string, IOpenApiSpec> = db || {};\n\nconst updateDB = (data: typeof state) => {\n fs.writeFileSync(dbPath, JSON.stringify(data));\n};\nexport const setState = (key: string, value: IOpenApiSpec) => {\n state[key] = value;\n updateDB(state);\n};\n\nexport const getState = (key: string): IOpenApiSpec | undefined => {\n return state[key];\n};\n\nexport const resetState = () => {\n state = {};\n updateDB(state);\n};\n","import OpenapiSync from \"./Openapi-sync\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport { resetState } from \"./Openapi-sync/state\";\nimport { IConfig } from \"./types\";\n\n// Re-export modules for user consumption\nexport * from \"./types\";\nexport * from \"./helpers\";\nexport * from \"./regex\";\n\nconst rootUsingCwd = process.cwd();\n\nexport const Init = async (options?: { refetchInterval?: number }) => {\n // Load config file\n let configJS;\n // Register TypeScript loader before requiring the file\n try {\n require(\"esbuild-register\");\n } catch (registerError) {\n throw registerError;\n }\n\n const jsConfigPath = path.join(rootUsingCwd, \"openapi.sync.js\");\n const tsConfigPath = path.join(rootUsingCwd, \"openapi.sync.ts\");\n const jsonConfigPath = path.join(rootUsingCwd, \"openapi.sync.json\");\n const configPaths = [jsConfigPath, tsConfigPath, jsonConfigPath];\n try {\n for (const configPath of configPaths) {\n if (fs.existsSync(configPath)) {\n configJS = require(configPath);\n\n if (Object.keys(configJS).length === 1 && configJS.default) {\n configJS = configJS.default;\n }\n }\n }\n } catch (e) {\n console.log(e);\n }\n\n if (typeof configJS === \"function\") {\n configJS = configJS();\n }\n const config: IConfig = configJS;\n\n if (!config) {\n throw new Error(\"No config found\");\n }\n const apiNames = Object.keys(config.api);\n const refetchInterval =\n options &&\n \"refetchInterval\" in options &&\n !isNaN(options?.refetchInterval as number)\n ? options.refetchInterval\n : config.refetchInterval;\n resetState();\n for (let i = 0; i < apiNames.length; i += 1) {\n const apiName = apiNames[i];\n const apiUrl = config.api[apiName];\n\n OpenapiSync(apiUrl, apiName, config, refetchInterval);\n }\n};\n"]}
package/dist/index.mjs CHANGED
@@ -1,56 +1,48 @@
1
- var D=(a=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(a,{get:(m,e)=>(typeof require!="undefined"?require:m)[e]}):a)(function(a){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')});var ne=(a,m,e)=>new Promise((x,A)=>{var j=b=>{try{c(e.next(b))}catch(f){A(f)}},E=b=>{try{c(e.throw(b))}catch(f){A(f)}},c=b=>b.done?x(b.value):Promise.resolve(b.value).then(j,E);c((e=e.apply(a,m)).next())});import J from"fs";import F from"path";var Ot=/^[A-Za-z_$][A-Za-z0-9_$]*$/,Ge=/[A-Za-z0-9_$]/;import*as g from"js-yaml";var Qe=a=>["object"].includes(typeof a)&&!(a instanceof Blob),lt=a=>{try{return g.load(a),!0}catch(m){let e=m;if(e instanceof g.YAMLException)return!1;throw e}},Ze=a=>{if(lt(a)){let m=g.load(a),e=JSON.stringify(m,null,2);return JSON.parse(e)}},W=a=>a.substring(0,1).toUpperCase()+a.substring(1),He=(a,m)=>{let e=a.split("/"),x=`${W(m)}`,A=[];return e.forEach(j=>{if(j[0]==="{"&&j[j.length-1]==="}"){let c=j.replace(/{/,"").replace(/}/,"");A.push(c),j=`$${c}`}else if(j[0]==="<"&&j[j.length-1]===">"){let c=j.replace(/</,"").replace(/>/,"");A.push(c),j=`$${c}`}else if(j[0]===":"){let c=j.replace(/:/,"");A.push(c),j=`$${c}`}let E="";j.split("").forEach(c=>{let b=c;Ge.test(c)||(b="/"),E+=b}),E.split("/").forEach(c=>{x+=W(c)})}),{name:x,variables:A,pathParts:e}},_=(a,m=1)=>{let e="{",x=Object.keys(a);for(let A=0;A<x.length;A++){let j=x[A],E=a[j];if(e+=`
2
- `+" ".repeat(m)+j+": ",Array.isArray(E)){e+="[";for(let c=0;c<E.length;c++){let b=E[c];typeof b=="object"&&b!==null?e+=_(b,m+1):e+=typeof b=="string"?`"${b}"`:b,c<E.length-1&&(e+=", ")}e+="]"}else typeof E=="object"&&E!==null?e+=""+_(E,m+1):e+=E.split(`
3
- `).filter(c=>c.trim()!=="").join(`
4
- ${" ".repeat(m)}`);A<x.length-1&&(e+=", ")}return e+=`
5
- ${" ".repeat(m-1)}}`,e},oe=(a,m=1)=>`
6
- \`\`\`typescript
7
- ${" ".repeat(m)} ${a.split(`
8
- `).filter(e=>e.trim()!=="").join(`
9
- ${" ".repeat(m)} `)}
10
- \`\`\``;function jt(a,m){return m.split(".").reduce((x,A)=>x&&x[A]!==void 0?x[A]:void 0,a)}import mt from"lodash.isequal";import et from"lodash.get";import dt from"axios";import ut from"axios-retry";import{bundleFromString as yt,createConfig as $t}from"@redocly/openapi-core";import pt from"path";import pe from"fs";var ae=pt.join(__dirname,"../","../db.json");pe.existsSync(ae)||pe.writeFileSync(ae,"{}");var me={};try{me=D(ae)}catch(a){me={}}var ee=me||{},Xe=a=>{pe.writeFileSync(ae,JSON.stringify(a))},De=(a,m)=>{ee[a]=m,Xe(ee)},_e=a=>ee[a],ge=()=>{ee={},Xe(ee)};import{CurlGenerator as ft}from"curl-generator";var te=process.cwd(),de={},tt=dt.create({timeout:6e4});ut(tt,{retries:20,retryCondition:a=>a.code==="ECONNABORTED"||a.message.includes("Network Error"),retryDelay:a=>a*1e3});var rt=(a,m,e,x)=>ne(null,null,function*(){var ce,Oe,Ie,be,je,Ce;let A=yield tt.get(a),j=yield $t({extends:["minimal"]}),E=JSON.stringify(Qe(A.data)?A.data:Ze(A.data)),c=yield yt({source:E,config:j}),b=F.join((e==null?void 0:e.folder)||"",m),f=c.bundle.parsed,q={},ie=s=>{var r,O;if((r=e==null?void 0:e.folderSplit)!=null&&r.customFolder){let $=e.folderSplit.customFolder(s);if($)return $}return(O=e==null?void 0:e.folderSplit)!=null&&O.byTags&&s.tags&&s.tags.length>0?s.tags[0].toLowerCase().replace(/\s+/g,"-"):"default"},$e=typeof(e==null?void 0:e.server)=="string"?e==null?void 0:e.server:((Oe=(ce=f==null?void 0:f.servers)==null?void 0:ce[(e==null?void 0:e.server)||0])==null?void 0:Oe.url)||"",U=typeof((be=(Ie=e==null?void 0:e.types)==null?void 0:Ie.name)==null?void 0:be.prefix)=="string"?e==null?void 0:e.types.name.prefix:"I",nt=typeof((Ce=(je=e==null?void 0:e.endpoints)==null?void 0:je.name)==null?void 0:Ce.prefix)=="string"?e==null?void 0:e.endpoints.name.prefix:"",fe=(s,r)=>{var $,n;let O=W(s);if((n=($=e==null?void 0:e.types)==null?void 0:$.name)!=null&&n.format){let l=e==null?void 0:e.types.name.format("shared",{name:s},O);if(l)return`${U}${l}`}return`${U}${O}`},M=(s,r,O,$,n,l=0)=>{let h="",o="",i="";if(r){if(r.$ref)if(r.$ref[0]==="#"){let p=(r.$ref||"").split("/");p.shift(),[...p].pop();let w=et(s,p,null);if(w){w!=null&&w.name&&(h=w.name),o=p[p.length-1];let N=fe(o);N.includes(".")&&(N=N.split(".").map((L,V)=>V===0?L:`["${L}"]`).join("")),i+=`${n!=null&&n.noSharedImport?"":"Shared."}${N}`}}else i+="";else if(r.anyOf)i+=`(${r.anyOf.map(p=>M(s,p,"",$,n)).filter(p=>!!p).join("|")})`;else if(r.oneOf)i+=`(${r.oneOf.map(p=>M(s,p,"",$,n)).filter(p=>!!p).join("|")})`;else if(r.allOf)i+=`(${r.allOf.map(p=>M(s,p,"",$,n)).filter(p=>!!p).join("&")})`;else if(r.items)i+=`${M(s,r.items,"",!1,n)}[]`;else if(r.properties){let p=Object.keys(r.properties),I=r.required||[],S="";p.forEach(w=>{var Z,L,V,G,re,H;let N="";!((L=(Z=e==null?void 0:e.types)==null?void 0:Z.doc)!=null&&L.disable)&&((G=(V=r.properties)==null?void 0:V[w])!=null&&G.description)&&(N=" * "+((re=r.properties)==null?void 0:re[w].description.split(`
11
- `).filter(se=>se.trim()!=="").join(`
12
- *${" ".repeat(1)}`))),S+=(N?`/**
13
- ${N}
1
+ import {a as a$1,c,f,e,d,g}from'./chunk-RSLDWPYW.mjs';export{f as JSONStringify,d as capitalize,e as getEndpointDetails,h as getNestedValue,a as isJson,b as isYamlString,g as renderTypeRefMD,c as yamlStringToJson}from'./chunk-RSLDWPYW.mjs';import {a,b}from'./chunk-UYNJZXTD.mjs';export{c as variableName,d as variableNameChar}from'./chunk-UYNJZXTD.mjs';import F from'fs';import w from'path';import at from'lodash.isequal';import Ze from'lodash.get';import ot from'axios';import pt from'axios-retry';import it from'@apidevtools/swagger-parser';import {CurlGenerator}from'curl-generator';var se=w.join(__dirname,"../","../db.json");F.existsSync(se)||F.writeFileSync(se,"{}");var ie={};try{ie=a(se);}catch(I){ie={};}var D=ie||{},ze=I=>{F.writeFileSync(se,JSON.stringify(I));},Ye=(I,j)=>{D[I]=j,ze(D);},He=I=>D[I],Xe=()=>{D={},ze(D);};var _=process.cwd(),le={},De=ot.create({timeout:6e4});pt(De,{retries:20,retryCondition:I=>I.code==="ECONNABORTED"||I.message.includes("Network Error"),retryDelay:I=>I*1e3});var _e=(I,j,e$1,M)=>b(null,null,function*(){var $e,he,fe,Oe,Ie,je;let W=yield De.get(I),ne=a$1(W.data)?W.data:c(W.data),f$1;try{f$1=yield it.parse(ne);}catch(s){let r=s instanceof Error?s.message:String(s);throw new Error(`Failed to parse OpenAPI spec for ${j}: ${r}`)}let U=w.join((e$1==null?void 0:e$1.folder)||"",j),P={},T=s=>{var r,$;if((r=e$1==null?void 0:e$1.folderSplit)!=null&&r.customFolder){let u=e$1.folderSplit.customFolder(s);if(console.log("customFolder",u),u)return u}return ($=e$1==null?void 0:e$1.folderSplit)!=null&&$.byTags&&s.tags&&s.tags.length>0?s.tags[0].toLowerCase().replace(/\s+/g,"-"):"default"},G=typeof(e$1==null?void 0:e$1.server)=="string"?e$1==null?void 0:e$1.server:((he=($e=f$1==null?void 0:f$1.servers)==null?void 0:$e[(e$1==null?void 0:e$1.server)||0])==null?void 0:he.url)||"",R=typeof((Oe=(fe=e$1==null?void 0:e$1.types)==null?void 0:fe.name)==null?void 0:Oe.prefix)=="string"?e$1==null?void 0:e$1.types.name.prefix:"I",et=typeof((je=(Ie=e$1==null?void 0:e$1.endpoints)==null?void 0:Ie.name)==null?void 0:je.prefix)=="string"?e$1==null?void 0:e$1.endpoints.name.prefix:"",ue=(s,r)=>{var u,n;let $=d(s);if((n=(u=e$1==null?void 0:e$1.types)==null?void 0:u.name)!=null&&n.format){let p=e$1==null?void 0:e$1.types.name.format("shared",{name:s},$);if(p)return `${R}${p}`}return `${R}${$}`},q=(s,r,$,u,n,p=0)=>{let y="",a="",o="";if(r){if(r.$ref)if(r.$ref[0]==="#"){let i=(r.$ref||"").split("/");i.shift(),[...i].pop();let c=Ze(s,i,null);if(c){c!=null&&c.name&&(y=c.name),a=i[i.length-1];let A=ue(a);A.includes(".")&&(A=A.split(".").map((k,K)=>K===0?k:`["${k}"]`).join("")),o+=`${n!=null&&n.noSharedImport?"":"Shared."}${A}`;}}else o+="";else if(r.anyOf)o+=`(${r.anyOf.map(i=>q(s,i,"",u,n)).filter(i=>!!i).join("|")})`;else if(r.oneOf)o+=`(${r.oneOf.map(i=>q(s,i,"",u,n)).filter(i=>!!i).join("|")})`;else if(r.allOf)o+=`(${r.allOf.map(i=>q(s,i,"",u,n)).filter(i=>!!i).join("&")})`;else if(r.items)o+=`${q(s,r.items,"",false,n)}[]`;else if(r.properties){let i=Object.keys(r.properties),h=r.required||[],C="";i.forEach(c=>{var z,k,K,V,g,Y;let A="";!((k=(z=e$1==null?void 0:e$1.types)==null?void 0:z.doc)!=null&&k.disable)&&((V=(K=r.properties)==null?void 0:K[c])!=null&&V.description)&&(A=" * "+((g=r.properties)==null?void 0:g[c].description.split(`
2
+ `).filter(ee=>ee.trim()!=="").join(`
3
+ *${" ".repeat(1)}`))),C+=(A?`/**
4
+ ${A}
14
5
  */
15
- `:"")+`${M(s,(H=r.properties)==null?void 0:H[w],w,I.includes(w),n,l+1)}`}),S.length>0?i+=`{
16
- ${" ".repeat(l)}${S}${" ".repeat(l)}}`:i+="{[k: string]: any}"}else if(r.enum&&r.enum.length>0)r.enum.length>1&&(i+="("),r.enum.map(p=>JSON.stringify(p)).filter(p=>!!p).forEach((p,I)=>{i+=`${I===0?"":"|"}${p}`}),r.enum.length>1&&(i+=")");else if(r.type){let p=I=>{let S="";if(typeof I=="string")["string","integer","number","array","boolean","null"].includes(I)?["integer","number"].includes(I)?S+="number":I==="array"?S+="any[]":S+=I:I==="object"&&(r.additionalProperties?S+=`{[k: string]: ${M(s,r.additionalProperties,"",!0,n)||"any"}}`:S+="{[k: string]: any}");else if(Array.isArray(I)){let w=I.map(N=>p(N));w.filter(N=>N!==""),w.length>1&&(S+="("+w.join("|")+")")}else S+="any";return S};i=p(r.type)}}else i="string";let u=h||O;n!=null&&n.useComponentName&&!u&&(u=o);let T=u?` "${u}"${$?"":"?"}: `:"",t=r!=null&&r.nullable?" | null":"";return i.length>0?`${T}${i}${t}${u?`;
17
- `:""}`:""},K=(s,r)=>{let O="",$="",n="";if(r){if(r.$ref)if(r.$ref[0]==="#"){let l=(r.$ref||"").split("/");l.shift();let o=et(s,l,null);o&&(o!=null&&o.name&&(O=o.name),$=l[l.length-1],n+=K(s,o))}else n+="";else if(r.anyOf)n+=K(s,r.anyOf[0]);else if(r.oneOf)n+=K(s,r.oneOf[0]);else if(r.allOf)n+=`{${r.allOf.map(l=>`...(${K(s,l)})`).join(",")}}`;else if(r.items)n+=`[${K(s,r.items)}]`;else if(r.properties){let o=Object.keys(r.properties).map(i=>{var u;return` "${i}": ${K(s,(u=r.properties)==null?void 0:u[i])}`}).join(`,
18
- `);o.length>0?n+=`{
6
+ `:"")+`${q(s,(Y=r.properties)==null?void 0:Y[c],c,h.includes(c),n,p+1)}`;}),C.length>0?o+=`{
7
+ ${" ".repeat(p)}${C}${" ".repeat(p)}}`:o+="{[k: string]: any}";}else if(r.enum&&r.enum.length>0)r.enum.length>1&&(o+="("),r.enum.map(i=>JSON.stringify(i)).filter(i=>!!i).forEach((i,h)=>{o+=`${h===0?"":"|"}${i}`;}),r.enum.length>1&&(o+=")");else if(r.type){let i=h=>{let C="";if(typeof h=="string")["string","integer","number","array","boolean","null"].includes(h)?["integer","number"].includes(h)?C+="number":h==="array"?C+="any[]":C+=h:h==="object"&&(r.additionalProperties?C+=`{[k: string]: ${q(s,r.additionalProperties,"",true,n)||"any"}}`:C+="{[k: string]: any}");else if(Array.isArray(h)){let c=h.map(A=>i(A));c.filter(A=>A!==""),c.length>1&&(C+="("+c.join("|")+")");}else C+="any";return C};o=i(r.type);}}else o="string";let m=y||$;n!=null&&n.useComponentName&&!m&&(m=a);let b=m?` "${m}"${u?"":"?"}: `:"",t=r!=null&&r.nullable?" | null":"";return o.length>0?`${b}${o}${t}${m?`;
8
+ `:""}`:""},J=(s,r)=>{let n="";if(r){if(r.$ref)if(r.$ref[0]==="#"){let p=(r.$ref||"").split("/");p.shift();let a=Ze(s,p,null);a&&(a!=null&&a.name&&(a.name),p[p.length-1],n+=J(s,a));}else n+="";else if(r.anyOf)n+=J(s,r.anyOf[0]);else if(r.oneOf)n+=J(s,r.oneOf[0]);else if(r.allOf)n+=`{${r.allOf.map(p=>`...(${J(s,p)})`).join(",")}}`;else if(r.items)n+=`[${J(s,r.items)}]`;else if(r.properties){let a=Object.keys(r.properties).map(o=>{var m;return ` "${o}": ${J(s,(m=r.properties)==null?void 0:m[o])}`}).join(`,
9
+ `);a.length>0?n+=`{
10
+ ${a}
11
+ }`:n+="{}";}else if(r.enum&&r.enum.length>0)r.enum.length>1&&(n+=r.enum[0]);else if(r.type)if(r.example)n+=JSON.stringify(r.example);else {let p=y=>{let a="";if(typeof y=="string")["string","integer","number","array","boolean","null"].includes(y)?["integer","number"].includes(y)?a+="123":y==="array"?a+="[]":y==="boolean"?a+="true":y==="null"?a+="null":a+=`"${y}"`:y==="object"&&(a+="{}");else if(Array.isArray(y)){let o=y.map(m=>p(m));o.filter(m=>m!==""),o.length>1&&(a+=o.join("|"));}else a+="any";return a};n=p(r.type);}}else n="string";return n};M&&!isNaN(M)&&M>0&&(process.env.NODE_ENV&&["production","prod","test","staging"].includes(process.env.NODE_ENV)||(le[j]&&clearTimeout(le[j]),le[j]=setTimeout(()=>_e(I,j,e$1,M),M)));let tt=He(j);if(at(tt,f$1))return;Ye(j,f$1);let ae="",Q="",L={};f$1.components&&Object.keys(f$1.components).forEach(s=>{if(["schemas","responses","parameters","examples","requestBodies","headers","links","callbacks"].includes(s)){let r=f$1.components[s],$={},u={};Object.keys(r).forEach(p=>{var o;let y=(o=r[p])!=null&&o.schema?r[p].schema:r[p],a=`${q(f$1,y,"",true,{noSharedImport:true,useComponentName:["parameters"].includes(s)})}`;if(a){let m=p.split("."),b=$,t=u;for(let i=0;i<m.length;i++){let h=m[i];i<m.length-1?(h in b||(b[h]={},t[h]={}),b=b[h],t=t[h]):(b[h]=a,t[h]=y);}}}),Object.keys($).forEach(p=>{var m,b,t,i;let y=ue(p),a=$[p],o="";!((b=(m=e$1==null?void 0:e$1.types)==null?void 0:m.doc)!=null&&b.disable)&&p in r&&((t=r[p])!=null&&t.description)&&(o=" * "+r[p].description.split(`
12
+ `).filter(h=>h.trim()!=="").join(`
13
+ *${" ".repeat(1)}`)),L[p]=((i=L[p])!=null?i:"")+(o?`/**
19
14
  ${o}
20
- }`:n+="{}"}else if(r.enum&&r.enum.length>0)r.enum.length>1&&(n+=r.enum[0]);else if(r.type)if(r.example)n+=JSON.stringify(r.example);else{let l=h=>{let o="";if(typeof h=="string")["string","integer","number","array","boolean","null"].includes(h)?["integer","number"].includes(h)?o+="123":h==="array"?o+="[]":h==="boolean"?o+="true":h==="null"?o+="null":o+=`"${h}"`:h==="object"&&(o+="{}");else if(Array.isArray(h)){let i=h.map(u=>l(u));i.filter(u=>u!==""),i.length>1&&(o+=i.join("|"))}else o+="any";return o};n=l(r.type)}}else n="string";return n};x&&!isNaN(x)&&x>0&&(process.env.NODE_ENV&&["production","prod","test","staging"].includes(process.env.NODE_ENV)||(de[m]&&clearTimeout(de[m]),de[m]=setTimeout(()=>rt(a,m,e,x),x)));let ot=_e(m);if(mt(ot,f))return;De(m,f);let le="",Q="",Y={};f.components&&Object.keys(f.components).forEach(s=>{if(["schemas","responses","parameters","examples","requestBodies","headers","links","callbacks"].includes(s)){let r=f.components[s],O={},$={};Object.keys(r).forEach(l=>{var i;let h=(i=r[l])!=null&&i.schema?r[l].schema:r[l],o=`${M(f,h,"",!0,{noSharedImport:!0,useComponentName:["parameters"].includes(s)})}`;if(o){let u=l.split("."),T=O,t=$;for(let p=0;p<u.length;p++){let I=u[p];p<u.length-1?(I in T||(T[I]={},t[I]={}),T=T[I],t=t[I]):(T[I]=o,t[I]=h)}}}),Object.keys(O).forEach(l=>{var u,T,t,p;let h=fe(l),o=O[l],i="";!((T=(u=e==null?void 0:e.types)==null?void 0:u.doc)!=null&&T.disable)&&l in r&&((t=r[l])!=null&&t.description)&&(i=" * "+r[l].description.split(`
21
- `).filter(I=>I.trim()!=="").join(`
22
- *${" ".repeat(1)}`)),Y[l]=((p=Y[l])!=null?p:"")+(i?`/**
23
- ${i}
24
15
  */
25
- `:"")+"export type "+h+" = "+(typeof o=="string"?o:_(o))+`;
26
- `})}});let he=s=>{let r="";if(s.content){let O=Object.keys(s.content);O[0]&&s.content[O[0]].schema&&(r+=`${M(f,s.content[O[0]].schema,"")}`)}return r},at=s=>{var r,O,$,n,l;if((O=(r=e==null?void 0:e.endpoints)==null?void 0:r.value)!=null&&O.replaceWords&&Array.isArray(e==null?void 0:e.endpoints.value.replaceWords)){let h=s;return(l=(n=($=e==null?void 0:e.endpoints)==null?void 0:$.value)==null?void 0:n.replaceWords)==null||l.forEach((o,i)=>{let u=new RegExp(o.replace,"g");h=h.replace(u,o.with||"")}),h}else return s},it=(s,r,O=[])=>{var l,h;let $=(l=e==null?void 0:e.endpoints)==null?void 0:l.exclude,n=(h=e==null?void 0:e.endpoints)==null?void 0:h.include;if(n){let o=n.tags&&n.tags.length>0?O.some(u=>n.tags.includes(u)):!0,i=n.endpoints&&n.endpoints.length>0?n.endpoints.some(u=>{let T=!u.method||u.method.toLowerCase()===r.toLowerCase();return u.path?s===u.path&&T:u.regex?new RegExp(u.regex).test(s)&&T:!1}):!0;if(!o||!i)return!0}return!!($&&($.tags&&$.tags.length>0&&O.some(i=>$.tags.includes(i))||$.endpoints&&$.endpoints.length>0&&$.endpoints.some(i=>{let u=!i.method||i.method.toLowerCase()===r.toLowerCase();return i.path?s===i.path&&u:i.regex?new RegExp(i.regex).test(s)&&u:!1})))};if(Object.keys(f.paths||{}).forEach(s=>{let r=f.paths[s];Object.keys(r).forEach($=>{var se,xe,Ae,Ee,Te,Se,we,Ne,Re,ve,Fe,ke,qe,Pe,Be,Je,Me,Ue,Le,ze,Ke,Ve,We,Ye;let n=$,l=He(s,n),h=((se=r[n])==null?void 0:se.tags)||[];if(it(s,n,h))return;let o=r[n],i=ie({method:n,path:s,summary:o==null?void 0:o.summary,operationId:o==null?void 0:o.operationId,tags:h,parameters:o==null?void 0:o.parameters,requestBody:o==null?void 0:o.requestBody,responses:o==null?void 0:o.responses});q[i]||(q[i]={endpoints:"",types:""});let u=((Ae=(xe=e==null?void 0:e.endpoints)==null?void 0:xe.value)!=null&&Ae.includeServer?$e:"")+l.pathParts.map(y=>(y[0]==="{"&&y[y.length-1]==="}"?y=`\${${y.replace(/{/,"").replace(/}/,"")}}`:y[0]==="<"&&y[y.length-1]===">"?y=`\${${y.replace(/</,"").replace(/>/,"")}}`:y[0]===":"&&(y=`\${${y.replace(/:/,"")}}`),y)).join("/"),T=`"${u}"`;l.variables.length>0&&(T=`(${l.variables.map(d=>`${d}:string`).join(",")})=> \`${u}\``),T=at(T);let t=r[n],p="";if(t!=null&&t.parameters&&((t==null?void 0:t.parameters).forEach((d,R)=>{(d.$ref||d.in==="query"&&d.name)&&(p+=`${M(f,d.$ref?d:d.schema,d.name||"",d.required)}`)}),p)){p=`{
27
- ${p}}`;let d=`${l.name}Query`;if((Te=(Ee=e==null?void 0:e.types)==null?void 0:Ee.name)!=null&&Te.useOperationId&&(t!=null&&t.operationId)&&(d=`${t.operationId}Query`),d=W(`${U}${d}`),(we=(Se=e==null?void 0:e.types)==null?void 0:Se.name)!=null&&we.format){let P=e==null?void 0:e.types.name.format("endpoint",{code:"",type:"query",method:n,path:s,summary:t==null?void 0:t.summary,operationId:t==null?void 0:t.operationId},d);P&&(d=`${U}${P}`)}let R=`export type ${d} = ${p};
28
- `;e!=null&&e.folderSplit?q[i].types+=R:Q+=R}let I=t==null?void 0:t.requestBody,S="";if(I&&(S=he(I),S)){let y=`${l.name}DTO`;if((Re=(Ne=e==null?void 0:e.types)==null?void 0:Ne.name)!=null&&Re.useOperationId&&(t!=null&&t.operationId)&&(y=`${t.operationId}DTO`),y=W(`${U}${y}`),(Fe=(ve=e==null?void 0:e.types)==null?void 0:ve.name)!=null&&Fe.format){let R=e==null?void 0:e.types.name.format("endpoint",{code:"",type:"dto",method:n,path:s,summary:t==null?void 0:t.summary,operationId:t==null?void 0:t.operationId},y);R&&(y=`${U}${R}`)}let d=`export type ${y} = ${S};
29
- `;e!=null&&e.folderSplit?q[i].types+=d:Q+=d}let w={},N="";if(t!=null&&t.responses){let y=t==null?void 0:t.responses;Object.keys(y).forEach(R=>{var P,B,v,k;if(N=he(y[R]),w[R]=N,N){let C=`${l.name}${R}Response`;if((B=(P=e==null?void 0:e.types)==null?void 0:P.name)!=null&&B.useOperationId&&(t!=null&&t.operationId)&&(C=`${t.operationId}${R}Response`),C=W(`${U}${C}`),(k=(v=e==null?void 0:e.types)==null?void 0:v.name)!=null&&k.format){let X=e==null?void 0:e.types.name.format("endpoint",{code:R,type:"response",method:n,path:s,summary:t==null?void 0:t.summary,operationId:t==null?void 0:t.operationId},C);X&&(C=`${U}${X}`)}let z=`export type ${C} = ${N};
30
- `;e!=null&&e.folderSplit?q[i].types+=z:Q+=z}})}let Z=y=>!y||!y.length?"":y.map(d=>Object.entries(d).map(([P,B])=>{let v=P,k="";return Array.isArray(B)&&B.length&&(k=`
31
- - Scopes: [\`${B.join("`, `")}\`]`,v=`**${v}**`),`
32
- - ${v}${k}`}).join("")).join(`
33
- `),L=t!=null&&t.security?Z(t.security):"",V="";if(!((qe=(ke=e==null?void 0:e.endpoints)==null?void 0:ke.doc)!=null&&qe.disable)){let y="";if((Be=(Pe=e==null?void 0:e.endpoints)==null?void 0:Pe.doc)!=null&&Be.showCurl){let d={},R="",P="";(Je=t.requestBody)!=null&&Je.content&&Object.keys(t.requestBody.content).forEach(k=>{let C=t.requestBody.content[k].schema;if(C){Array.isArray(d["Content-type"])?d["Content-type"].push(k):d["Content-type"]=[k];let z=K(f,C);z&&(R=z)}}),t!=null&&t.security&&t.security.forEach(v=>{Object.keys(v).forEach(k=>{var z,X;let C=(X=(z=f.components)==null?void 0:z.securitySchemes)==null?void 0:X[k];C&&(C.type==="mutualTLS"?P+=`
34
- --cert client-certificate.crt --key client-private-key.key --cacert ca-certificate.crt`:C.type==="apiKey"?d[(C==null?void 0:C.name)||"X-API-KEY"]="{API_KEY_VALUE}":d.Authorization=`${(C==null?void 0:C.scheme)==="basic"?"Basic":"Bearer"} {${(C==null?void 0:C.scheme)==="basic"?"VALUE":"TOKEN"}}`)})});let B={};Object.keys(d).forEach(v=>{Array.isArray(d[v])?B[v]=d[v].join("; "):B[v]=d[v]}),y=`
16
+ `:"")+"export type "+y+" = "+(typeof a=="string"?a:f(a))+`;
17
+ `;});}});let ye=s=>{let r="";if(s.content){let $=Object.keys(s.content);$[0]&&s.content[$[0]].schema&&(r+=`${q(f$1,s.content[$[0]].schema,"")}`);}return r},rt=s=>{var r,$,u,n,p;if(($=(r=e$1==null?void 0:e$1.endpoints)==null?void 0:r.value)!=null&&$.replaceWords&&Array.isArray(e$1==null?void 0:e$1.endpoints.value.replaceWords)){let y=s;return (p=(n=(u=e$1==null?void 0:e$1.endpoints)==null?void 0:u.value)==null?void 0:n.replaceWords)==null||p.forEach((a,o)=>{let m=new RegExp(a.replace,"g");y=y.replace(m,a.with||"");}),y}else return s},st=(s,r,$=[])=>{var p,y;let u=(p=e$1==null?void 0:e$1.endpoints)==null?void 0:p.exclude,n=(y=e$1==null?void 0:e$1.endpoints)==null?void 0:y.include;if(n){let a=n.tags&&n.tags.length>0?$.some(m=>n.tags.includes(m)):true,o=n.endpoints&&n.endpoints.length>0?n.endpoints.some(m=>{let b=!m.method||m.method.toLowerCase()===r.toLowerCase();return m.path?s===m.path&&b:m.regex?new RegExp(m.regex).test(s)&&b:false}):true;if(!a||!o)return true}return !!(u&&(u.tags&&u.tags.length>0&&$.some(o=>u.tags.includes(o))||u.endpoints&&u.endpoints.length>0&&u.endpoints.some(o=>{let m=!o.method||o.method.toLowerCase()===r.toLowerCase();return o.path?s===o.path&&m:o.regex?new RegExp(o.regex).test(s)&&m:false})))};if(Object.keys(f$1.paths||{}).forEach(s=>{let r=f$1.paths[s];Object.keys(r).forEach(u=>{var ee,be,Ce,ce,Ae,xe,Ee,Te,we,Se,Re,ve,Ne,Fe,Pe,qe,ke,Be,Me,Ue,Je,Ke,Le,Ve;let n=u,p=e(s,n),y=((ee=r[n])==null?void 0:ee.tags)||[];if(st(s,n,y))return;let a=r[n],o=T({method:n,path:s,summary:a==null?void 0:a.summary,operationId:a==null?void 0:a.operationId,tags:y,parameters:a==null?void 0:a.parameters,requestBody:a==null?void 0:a.requestBody,responses:a==null?void 0:a.responses});P[o]||(P[o]={endpoints:"",types:""});let m=((Ce=(be=e$1==null?void 0:e$1.endpoints)==null?void 0:be.value)!=null&&Ce.includeServer?G:"")+p.pathParts.map(d=>(d[0]==="{"&&d[d.length-1]==="}"?d=`\${${d.replace(/{/,"").replace(/}/,"")}}`:d[0]==="<"&&d[d.length-1]===">"?d=`\${${d.replace(/</,"").replace(/>/,"")}}`:d[0]===":"&&(d=`\${${d.replace(/:/,"")}}`),d)).join("/"),b=`"${m}"`;p.variables.length>0&&(b=`(${p.variables.map(l=>`${l}:string`).join(",")})=> \`${m}\``),b=rt(b);let t=r[n],i="";if(t!=null&&t.parameters&&((t==null?void 0:t.parameters).forEach((l,x)=>{(l.$ref||l.in==="query"&&l.name)&&(i+=`${q(f$1,l.$ref?l:l.schema,l.name||"",l.required)}`);}),i)){i=`{
18
+ ${i}}`;let l=`${p.name}Query`;if((Ae=(ce=e$1==null?void 0:e$1.types)==null?void 0:ce.name)!=null&&Ae.useOperationId&&(t!=null&&t.operationId)&&(l=`${t.operationId}Query`),l=d(`${R}${l}`),(Ee=(xe=e$1==null?void 0:e$1.types)==null?void 0:xe.name)!=null&&Ee.format){let v=e$1==null?void 0:e$1.types.name.format("endpoint",{code:"",type:"query",method:n,path:s,summary:t==null?void 0:t.summary,operationId:t==null?void 0:t.operationId},l);v&&(l=`${R}${v}`);}let x=`export type ${l} = ${i};
19
+ `;e$1!=null&&e$1.folderSplit?P[o].types+=x:Q+=x;}let h=t==null?void 0:t.requestBody,C="";if(h&&(C=ye(h),C)){let d$1=`${p.name}DTO`;if((we=(Te=e$1==null?void 0:e$1.types)==null?void 0:Te.name)!=null&&we.useOperationId&&(t!=null&&t.operationId)&&(d$1=`${t.operationId}DTO`),d$1=d(`${R}${d$1}`),(Re=(Se=e$1==null?void 0:e$1.types)==null?void 0:Se.name)!=null&&Re.format){let x=e$1==null?void 0:e$1.types.name.format("endpoint",{code:"",type:"dto",method:n,path:s,summary:t==null?void 0:t.summary,operationId:t==null?void 0:t.operationId},d$1);x&&(d$1=`${R}${x}`);}let l=`export type ${d$1} = ${C};
20
+ `;e$1!=null&&e$1.folderSplit?P[o].types+=l:Q+=l;}let c={},A="";if(t!=null&&t.responses){let d$1=t==null?void 0:t.responses;Object.keys(d$1).forEach(x=>{var v,N,E,S;if(A=ye(d$1[x]),c[x]=A,A){let O=`${p.name}${x}Response`;if((N=(v=e$1==null?void 0:e$1.types)==null?void 0:v.name)!=null&&N.useOperationId&&(t!=null&&t.operationId)&&(O=`${t.operationId}${x}Response`),O=d(`${R}${O}`),(S=(E=e$1==null?void 0:e$1.types)==null?void 0:E.name)!=null&&S.format){let H=e$1==null?void 0:e$1.types.name.format("endpoint",{code:x,type:"response",method:n,path:s,summary:t==null?void 0:t.summary,operationId:t==null?void 0:t.operationId},O);H&&(O=`${R}${H}`);}let B=`export type ${O} = ${A};
21
+ `;e$1!=null&&e$1.folderSplit?P[o].types+=B:Q+=B;}});}let z=d=>!d||!d.length?"":d.map(l=>Object.entries(l).map(([v,N])=>{let E=v,S="";return Array.isArray(N)&&N.length&&(S=`
22
+ - Scopes: [\`${N.join("`, `")}\`]`,E=`**${E}**`),`
23
+ - ${E}${S}`}).join("")).join(`
24
+ `),k=t!=null&&t.security?z(t.security):"",K="";if(!((Ne=(ve=e$1==null?void 0:e$1.endpoints)==null?void 0:ve.doc)!=null&&Ne.disable)){let d="";if((Pe=(Fe=e$1==null?void 0:e$1.endpoints)==null?void 0:Fe.doc)!=null&&Pe.showCurl){let l={},x="",v="";(qe=t.requestBody)!=null&&qe.content&&Object.keys(t.requestBody.content).forEach(S=>{let O=t.requestBody.content[S].schema;if(O){Array.isArray(l["Content-type"])?l["Content-type"].push(S):l["Content-type"]=[S];let B=J(f$1,O);B&&(x=B);}}),t!=null&&t.security&&t.security.forEach(E=>{Object.keys(E).forEach(S=>{var B,H;let O=(H=(B=f$1.components)==null?void 0:B.securitySchemes)==null?void 0:H[S];O&&(O.type==="mutualTLS"?v+=`
25
+ --cert client-certificate.crt --key client-private-key.key --cacert ca-certificate.crt`:O.type==="apiKey"?l[(O==null?void 0:O.name)||"X-API-KEY"]="{API_KEY_VALUE}":l.Authorization=`${(O==null?void 0:O.scheme)==="basic"?"Basic":"Bearer"} {${(O==null?void 0:O.scheme)==="basic"?"VALUE":"TOKEN"}}`);});});let N={};Object.keys(l).forEach(E=>{Array.isArray(l[E])?N[E]=l[E].join("; "):N[E]=l[E];}),d=`
35
26
  \`\`\`bash
36
- ${ft({url:$e+s,method:n.toUpperCase(),headers:B,body:R})}${P}
37
- \`\`\``}V=`/**${t!=null&&t.description?`
27
+ ${CurlGenerator({url:G+s,method:n.toUpperCase(),headers:N,body:x})}${v}
28
+ \`\`\``;}K=`/**${t!=null&&t.description?`
38
29
  * ${t==null?void 0:t.description} `:""}
39
30
  * **Method**: \`${n.toUpperCase()}\`
40
31
  * **Summary**: ${(t==null?void 0:t.summary)||""}
41
- * **Tags**: [${((Me=t==null?void 0:t.tags)==null?void 0:Me.join(", "))||""}]
42
- * **OperationId**: ${(t==null?void 0:t.operationId)||""} ${p?`
43
- * **Query**: ${oe(p)} `:""}${S?`
44
- * **DTO**: ${oe(S)} `:""}${N?`
45
- * **Response**: ${Object.entries(w).map(([d,R])=>`
46
- - **${d}**: ${oe(R,2)} `).join("")}`:""}${L?`
47
- * **Security**: ${L}
48
- `:""}${y}
32
+ * **Tags**: [${((ke=t==null?void 0:t.tags)==null?void 0:ke.join(", "))||""}]
33
+ * **OperationId**: ${(t==null?void 0:t.operationId)||""} ${i?`
34
+ * **Query**: ${g(i)} `:""}${C?`
35
+ * **DTO**: ${g(C)} `:""}${A?`
36
+ * **Response**: ${Object.entries(c).map(([l,x])=>`
37
+ - **${l}**: ${g(x,2)} `).join("")}`:""}${k?`
38
+ * **Security**: ${k}
39
+ `:""}${d}
49
40
  */
50
- `}let G=(Le=(Ue=e==null?void 0:e.endpoints)==null?void 0:Ue.name)!=null&&Le.useOperationId&&((ze=t==null?void 0:t.operationId)==null?void 0:ze.length)>0?t.operationId:`${l.name}`;if((Ve=(Ke=e==null?void 0:e.endpoints)==null?void 0:Ke.name)!=null&&Ve.format){let y=e==null?void 0:e.endpoints.name.format({method:n,path:s,summary:t==null?void 0:t.summary,operationId:t==null?void 0:t.operationId},G);y&&(G=y)}let re={method:`"${n}"`,operationId:`"${t==null?void 0:t.operationId}"`,url:T,tags:(t==null?void 0:t.tags)||[]},H=`${V}export const ${nt}${G} = ${((Ye=(We=e==null?void 0:e.endpoints)==null?void 0:We.value)==null?void 0:Ye.type)==="object"?_(re):T};
51
- `;e!=null&&e.folderSplit?q[i].endpoints+=H:le+=H})}),e!=null&&e.folderSplit){for(let[s,r]of Object.entries(q))if(r.endpoints||r.types){let O=F.join(b,s);if(r.endpoints){let $=F.join(te,O,"endpoints.ts");yield J.promises.mkdir(F.dirname($),{recursive:!0}),yield J.promises.writeFile($,r.endpoints)}if(r.types){let $=F.join(te,O,"types.ts");yield J.promises.mkdir(F.dirname($),{recursive:!0});let n=Object.values(Y).length>0?`import * as Shared from "../shared";
41
+ `;}let V=(Me=(Be=e$1==null?void 0:e$1.endpoints)==null?void 0:Be.name)!=null&&Me.useOperationId&&((Ue=t==null?void 0:t.operationId)==null?void 0:Ue.length)>0?t.operationId:`${p.name}`;if((Ke=(Je=e$1==null?void 0:e$1.endpoints)==null?void 0:Je.name)!=null&&Ke.format){let d=e$1==null?void 0:e$1.endpoints.name.format({method:n,path:s,summary:t==null?void 0:t.summary,operationId:t==null?void 0:t.operationId},V);d&&(V=d);}let g$1={method:`"${n}"`,operationId:`"${t==null?void 0:t.operationId}"`,url:b,tags:(t==null?void 0:t.tags)||[]},Y=`${K}export const ${et}${V} = ${((Ve=(Le=e$1==null?void 0:e$1.endpoints)==null?void 0:Le.value)==null?void 0:Ve.type)==="object"?f(g$1):b};
42
+ `;e$1!=null&&e$1.folderSplit?P[o].endpoints+=Y:ae+=Y;});}),e$1!=null&&e$1.folderSplit){for(let[s,r]of Object.entries(P))if(r.endpoints||r.types){let $=w.join(U,s);if(r.endpoints){let u=w.join(_,$,"endpoints.ts");yield F.promises.mkdir(w.dirname(u),{recursive:true}),yield F.promises.writeFile(u,r.endpoints);}if(r.types){let u=w.join(_,$,"types.ts");yield F.promises.mkdir(w.dirname(u),{recursive:true});let n=Object.values(L).length>0?`import * as Shared from "../shared";
52
43
 
53
- ${r.types}`:r.types;yield J.promises.writeFile($,n)}}}if(le.length>0){let s=F.join(te,b,"endpoints.ts");yield J.promises.mkdir(F.dirname(s),{recursive:!0}),yield J.promises.writeFile(s,le)}if(Object.values(Y).length>0){let s=F.join(te,b,e!=null&&e.folderSplit?"":"types","shared.ts");yield J.promises.mkdir(F.dirname(s),{recursive:!0}),yield J.promises.writeFile(s,Object.values(Y).join(`
54
- `))}if(Q.length>0){let s=F.join(te,b,"types","index.ts");yield J.promises.mkdir(F.dirname(s),{recursive:!0}),yield J.promises.writeFile(s,`${Object.values(Y).length>0?`import * as Shared from "./shared";
44
+ ${r.types}`:r.types;yield F.promises.writeFile(u,n);}}}if(ae.length>0){let s=w.join(_,U,"endpoints.ts");yield F.promises.mkdir(w.dirname(s),{recursive:true}),yield F.promises.writeFile(s,ae);}if(Object.values(L).length>0){let s=w.join(_,U,e$1!=null&&e$1.folderSplit?"":"types","shared.ts");yield F.promises.mkdir(w.dirname(s),{recursive:true}),yield F.promises.writeFile(s,Object.values(L).join(`
45
+ `));}if(Q.length>0){let s=w.join(_,U,"types","index.ts");yield F.promises.mkdir(w.dirname(s),{recursive:true}),yield F.promises.writeFile(s,`${Object.values(L).length>0?`import * as Shared from "./shared";
55
46
 
56
- `:""}${Q}`)}}),st=rt;import ue from"path";import ht from"fs";var ye=process.cwd(),Wt=a=>ne(null,null,function*(){let m;try{D("esbuild-register")}catch(f){throw f}let e=ue.join(ye,"openapi.sync.js"),x=ue.join(ye,"openapi.sync.ts"),A=ue.join(ye,"openapi.sync.json"),j=[e,x,A];try{for(let f of j)ht.existsSync(f)&&(m=D(f),Object.keys(m).length===1&&m.default&&(m=m.default))}catch(f){}typeof m=="function"&&(m=m());let E=m;if(!E)throw new Error("No config found");let c=Object.keys(E.api),b=a&&"refetchInterval"in a&&!isNaN(a==null?void 0:a.refetchInterval)?a.refetchInterval:E.refetchInterval;ge();for(let f=0;f<c.length;f+=1){let q=c[f],ie=E.api[q];st(ie,q,E,b)}});export{Wt as Init,_ as JSONStringify,W as capitalize,He as getEndpointDetails,jt as getNestedValue,Qe as isJson,lt as isYamlString,oe as renderTypeRefMD,Ot as variableName,Ge as variableNameChar,Ze as yamlStringToJson};
47
+ `:""}${Q}`);}}),ge=_e;var de=process.cwd(),Bt=I=>b(null,null,function*(){let j;try{a("esbuild-register");}catch(T){throw T}let e=w.join(de,"openapi.sync.js"),M=w.join(de,"openapi.sync.ts"),W=w.join(de,"openapi.sync.json"),ne=[e,M,W];try{for(let T of ne)F.existsSync(T)&&(j=a(T),Object.keys(j).length===1&&j.default&&(j=j.default));}catch(T){console.log(T);}typeof j=="function"&&(j=j());let f=j;if(!f)throw new Error("No config found");let U=Object.keys(f.api),P=I&&"refetchInterval"in I&&!isNaN(I==null?void 0:I.refetchInterval)?I.refetchInterval:f.refetchInterval;Xe();for(let T=0;T<U.length;T+=1){let G=U[T],R=f.api[G];ge(R,G,f,P);}});export{Bt as Init};//# sourceMappingURL=index.mjs.map
48
+ //# sourceMappingURL=index.mjs.map