@xyd-js/openapi 0.1.0-build.168
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1517 -0
- package/LICENSE +21 -0
- package/README.md +3 -0
- package/__fixtures__/-2.complex.openai/input.yaml +39848 -0
- package/__fixtures__/-2.complex.openai/output.json +321646 -0
- package/__fixtures__/-2.complex.openai/pluginOasOpenai.ts +553 -0
- package/__fixtures__/-3.random/input.yaml +234 -0
- package/__fixtures__/-3.random/output.json +1140 -0
- package/__fixtures__/1.basic/input.yaml +226 -0
- package/__fixtures__/1.basic/output.json +1919 -0
- package/__fixtures__/2.more/input.yaml +76 -0
- package/__fixtures__/2.more/output.json +327 -0
- package/__fixtures__/3.multiple-responses/input.yaml +48 -0
- package/__fixtures__/3.multiple-responses/output.json +311 -0
- package/__fixtures__/5.xdocs.codeLanguages/input.yaml +231 -0
- package/__fixtures__/5.xdocs.codeLanguages/output.json +1879 -0
- package/__fixtures__/5.xdocs.sidebar/input.yaml +256 -0
- package/__fixtures__/5.xdocs.sidebar/output.json +843 -0
- package/__fixtures__/6.codeSamples/input.yaml +75 -0
- package/__fixtures__/6.codeSamples/output.json +293 -0
- package/__tests__/oapSchemaToReferences.test.ts +82 -0
- package/__tests__/utils.ts +81 -0
- package/dist/index.cjs +2154 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +40 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.js +2119 -0
- package/dist/index.js.map +1 -0
- package/examples/basic/index.ts +20 -0
- package/examples/basic/index2.ts +36 -0
- package/examples/basic/openapi.yaml +124 -0
- package/examples/dist/index.cjs +2 -0
- package/examples/dist/index.cjs.map +1 -0
- package/examples/dist/index.d.cts +2 -0
- package/examples/dist/index.d.ts +2 -0
- package/examples/dist/index.js +2 -0
- package/examples/dist/index.js.map +1 -0
- package/examples/semi/index.ts +16 -0
- package/examples/semi/openapi.yaml +365 -0
- package/examples/semi/references.json +500 -0
- package/examples/webhooks/index.ts +16 -0
- package/examples/webhooks/openapi.yaml +248 -0
- package/examples/webhooks/references.json +895 -0
- package/index.ts +12 -0
- package/package.json +31 -0
- package/src/const.ts +14 -0
- package/src/converters/oas-componentSchemas.ts +205 -0
- package/src/converters/oas-examples.ts +530 -0
- package/src/converters/oas-parameters.ts +41 -0
- package/src/converters/oas-paths.ts +354 -0
- package/src/converters/oas-requestBody.ts +57 -0
- package/src/converters/oas-responses.ts +76 -0
- package/src/converters/oas-schema.ts +141 -0
- package/src/index.ts +21 -0
- package/src/oas-core.ts +579 -0
- package/src/types.ts +18 -0
- package/src/utils.ts +157 -0
- package/src/xdocs/index.ts +18 -0
- package/src/xdocs/pluginSidebar.ts +580 -0
- package/src/xdocs/types.ts +26 -0
- package/tsconfig.json +18 -0
- package/tsup.config.ts +19 -0
- package/tsup.examples-config.ts +30 -0
- package/vitest.config.ts +7 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../index.ts","../src/const.ts","../src/oas-core.ts","../src/converters/oas-parameters.ts","../src/converters/oas-paths.ts","../src/converters/oas-requestBody.ts","../src/converters/oas-responses.ts","../src/utils.ts","../../../node_modules/.pnpm/github-slugger@2.0.0/node_modules/github-slugger/regex.js","../../../node_modules/.pnpm/github-slugger@2.0.0/node_modules/github-slugger/index.js","../src/converters/oas-schema.ts","../src/converters/oas-examples.ts","../src/xdocs/index.ts","../src/converters/oas-componentSchemas.ts","../src/xdocs/pluginSidebar.ts"],"sourcesContent":["export type {uniformOasOptions, SelectorMethod} from \"./src/types\";\n\nexport {\n deferencedOpenAPI,\n oapSchemaToReferences,\n\n oapResponseOperationToUniformDefinition,\n\n getXDocs,\n uniformPluginXDocsSidebar\n} from \"./src\";\n\n","export const SUPPORTED_HTTP_METHODS: string[] = [\n 'get',\n 'put',\n 'patch',\n 'post',\n 'delete',\n // 'options',\n // 'head',\n // 'trace'\n];\n\nexport const BUILT_IN_PROPERTIES: { [key: string]: boolean } = {\n \"__internal_getRefPath\": true,\n}","import {OpenAPIV3} from \"openapi-types\";\n\nimport {\n DEFINED_DEFINITION_PROPERTY_TYPE,\n DefinitionProperty,\n DefinitionPropertyMeta\n} from \"@xyd-js/uniform\";\n\nimport {OasJSONSchema} from \"./types\";\nimport {BUILT_IN_PROPERTIES} from \"./const\";\n\nexport function schemaObjectToUniformDefinitionProperties(\n schemaObject: OpenAPIV3.ReferenceObject | OpenAPIV3.SchemaObject,\n rootProperty?: boolean,\n visitedRefs?: Map<string, DefinitionProperty>\n): DefinitionProperty[] | DefinitionProperty | null {\n if ('$ref' in schemaObject) {\n console.warn(\"Reference objects are not supported in schemaObjectToUniformDefinitionProperties\");\n\n return null\n }\n\n const properties: DefinitionProperty[] = [];\n\n // Process schema properties\n if ('anyOf' in schemaObject && schemaObject.anyOf) {\n const property = schemaObjectToUniformDefinitionProperty(\"\", schemaObject, false, false, visitedRefs)\n\n if (property) {\n if (rootProperty) {\n return property\n }\n\n properties.push(property);\n }\n } else if ('oneOf' in schemaObject && schemaObject.oneOf) {\n const property = schemaObjectToUniformDefinitionProperty(\"\", schemaObject, false, false, visitedRefs)\n\n if (property) {\n if (rootProperty) {\n return property\n }\n\n properties.push(property);\n }\n } else if ('allOf' in schemaObject && schemaObject.allOf) {\n const componentPaths: string[] = []\n\n // Handle allOf by merging properties from all schemas\n for (const schema of schemaObject.allOf) {\n if ('$ref' in schema) {\n console.warn(\"$ref is not supported in allOf schemas\");\n\n continue; // Skip reference objects\n }\n\n const oasSchema = schema as OasJSONSchema;\n if (oasSchema.__internal_getRefPath) {\n const refPath = oasSchema.__internal_getRefPath();\n if (typeof refPath === 'string') {\n componentPaths.push(refPath);\n } else if (Array.isArray(refPath)) {\n componentPaths.push(...refPath);\n } else {\n console.warn(\"Invalid refPath type in allOf schema\", oasSchema);\n }\n }\n\n if ('properties' in schema && schema.properties) {\n for (const [propName, propSchema] of Object.entries(schema.properties)) {\n if (BUILT_IN_PROPERTIES[propName]) {\n continue;\n }\n if ('$ref' in propSchema) {\n console.warn(\"$ref is not supported in allOf properties\");\n\n continue; // Skip reference objects\n }\n\n const property = schemaObjectToUniformDefinitionProperty(\n propName,\n propSchema,\n schema.required?.includes(propName),\n propSchema?.type === \"array\" ? true : false,\n visitedRefs\n );\n\n if (property) {\n // Check if property already exists and merge if needed\n const existingPropertyIndex = properties.findIndex(p => p.name === propName);\n if (existingPropertyIndex >= 0) {\n // Merge properties if they exist in multiple schemas\n const existingProperty = properties[existingPropertyIndex];\n properties[existingPropertyIndex] = {\n ...existingProperty,\n ...property,\n description: property.description || existingProperty.description || \"\",\n meta: [...(existingProperty.meta || []), ...(property.meta || [])],\n };\n } else {\n properties.push(property);\n }\n }\n }\n }\n }\n\n const oasSchema = schemaObject as OasJSONSchema;\n oasSchema.__internal_getRefPath = () => componentPaths\n } else if ('properties' in schemaObject && schemaObject.properties) {\n for (const [propName, propSchema] of Object.entries(schemaObject.properties)) {\n if (BUILT_IN_PROPERTIES[propName]) {\n continue;\n }\n if (typeof propSchema === \"object\" && '$ref' in propSchema) {\n console.warn(\"$ref is not supported in properties\");\n\n continue; // Skip reference objects\n }\n\n const property = schemaObjectToUniformDefinitionProperty(\n propName,\n propSchema,\n schemaObject.required?.includes(propName),\n propSchema?.type === \"array\" ? true : false,\n visitedRefs\n );\n if (property) {\n properties.push(property);\n }\n }\n }\n\n return properties\n}\n\nexport function schemaObjectToUniformDefinitionProperty(\n name: string,\n schema: OpenAPIV3.SchemaObject,\n required?: boolean,\n arrayOf?: boolean,\n visitedRefs?: Map<string, DefinitionProperty>,\n parentProperty?: DefinitionProperty\n): DefinitionProperty | null {\n if (name === \"__UNSAFE_refPath\") {\n return null\n }\n if (!schema) return null;\n\n if (!visitedRefs) {\n visitedRefs = new Map();\n }\n let refPath = \"\"\n if (\"__UNSAFE_refPath\" in schema && typeof schema.__UNSAFE_refPath === 'function') {\n refPath = schema.__UNSAFE_refPath();\n const defProp = visitedRefs.get(refPath);\n if (defProp) {\n return JSON.parse(JSON.stringify(defProp)); // Return a deep copy circular json\n }\n }\n\n if (parentProperty) {\n visitedRefs.set(refPath, parentProperty);\n }\n\n // Handle anyOf case\n if ('anyOf' in schema && schema.anyOf) {\n const componentPaths: string[] = []\n const properties: DefinitionProperty[] = [];\n\n for (const variantSchema of schema.anyOf) {\n if ('$ref' in variantSchema) {\n console.warn(\"$ref is not supported in anyOf schemas\");\n\n continue; // Skip reference objects\n }\n\n const oasSchema = variantSchema as OasJSONSchema;\n if (oasSchema.__internal_getRefPath) {\n const refPath = oasSchema.__internal_getRefPath();\n if (typeof refPath === 'string') {\n componentPaths.push(refPath);\n } else if (Array.isArray(refPath)) {\n componentPaths.push(...refPath);\n } else {\n console.warn(\"Invalid refPath type in anyOf schema\", oasSchema);\n }\n }\n\n const property = schemaObjectToUniformDefinitionProperty(name, variantSchema, required, false, visitedRefs);\n\n if (property) {\n if (isMergeType(property.type)) {\n properties.push(...property.properties || []);\n } else {\n properties.push({\n ...property,\n name: variantSchema.title || property.name || \"\",\n });\n }\n }\n }\n\n const oasSchema = schema as OasJSONSchema;\n oasSchema.__internal_getRefPath = () => componentPaths\n\n const prop = {\n name,\n type: DEFINED_DEFINITION_PROPERTY_TYPE.UNION,\n description: schema.description || \"\",\n properties\n };\n\n if (refPath) {\n visitedRefs.set(refPath, prop);\n }\n return prop\n }\n\n const meta = schemaObjectToUniformDefinitionPropertyMeta({\n ...schema,\n required: required ? [name] : undefined,\n }, name)\n\n // Handle oneOf case\n if ('oneOf' in schema && schema.oneOf) {\n const componentPaths: string[] = []\n const properties: DefinitionProperty[] = [];\n\n for (const variantSchema of schema.oneOf) {\n if ('$ref' in variantSchema) {\n console.warn(\"$ref is not supported in oneOf schemas\");\n\n continue; // Skip reference objects\n }\n\n const oasSchema = variantSchema as OasJSONSchema;\n if (oasSchema.__internal_getRefPath) {\n const refPath = oasSchema.__internal_getRefPath();\n if (typeof refPath === 'string') {\n componentPaths.push(refPath);\n } else if (Array.isArray(refPath)) {\n componentPaths.push(...refPath);\n } else {\n console.warn(\"Invalid refPath type in allOf schema\", oasSchema);\n }\n }\n\n const property = schemaObjectToUniformDefinitionProperty(name, variantSchema, required, false, visitedRefs);\n if (property) {\n // if (isOfType(property.type)) { TODO: in the future?\n // }\n properties.push({\n ...property,\n name: variantSchema.title || property.name || \"\",\n });\n }\n }\n\n const oasSchema = schema as OasJSONSchema;\n oasSchema.__internal_getRefPath = () => componentPaths\n\n const prop: DefinitionProperty = {\n name,\n type: DEFINED_DEFINITION_PROPERTY_TYPE.XOR,\n description: schema.description || \"\",\n properties,\n meta,\n };\n\n if (refPath) {\n visitedRefs.set(refPath, prop);\n }\n\n return prop\n }\n\n // Handle allOf case\n if ('allOf' in schema && schema.allOf) {\n const componentPaths: string[] = []\n const mergedProperty: DefinitionProperty = {\n name,\n type: schema.type || \"\",\n description: schema.description || \"\",\n properties: [],\n meta\n };\n\n for (const variantSchema of schema.allOf) {\n if ('$ref' in variantSchema) {\n console.warn(\"$ref is not supported in allOf schemas\");\n continue; // Skip reference objects\n }\n\n const oasSchema = variantSchema as OasJSONSchema;\n if (oasSchema.__internal_getRefPath) {\n const refPath = oasSchema.__internal_getRefPath();\n if (typeof refPath === 'string') {\n componentPaths.push(refPath);\n } else if (Array.isArray(refPath)) {\n componentPaths.push(...refPath);\n } else {\n console.warn(\"Invalid refPath type in allOf schema\", oasSchema);\n }\n }\n\n\n if (!mergedProperty.type) {\n if (typeof variantSchema.type === 'string') {\n mergedProperty.type = variantSchema.type || \"\"\n }\n }\n\n if ('properties' in variantSchema && variantSchema.properties) {\n for (const [propName, propSchema] of Object.entries(variantSchema.properties)) {\n if (BUILT_IN_PROPERTIES[propName]) {\n continue;\n }\n if ('$ref' in propSchema) {\n console.warn(\"$ref is not supported in allOf properties\");\n continue; // Skip reference objects\n }\n\n const property = schemaObjectToUniformDefinitionProperty(\n propName,\n propSchema,\n variantSchema.required?.includes(propName),\n false,\n visitedRefs\n );\n\n if (property && mergedProperty.properties) {\n // Check if property already exists and merge if needed\n const existingPropertyIndex = mergedProperty.properties.findIndex(p => p.name === propName);\n if (existingPropertyIndex >= 0) {\n // Merge properties if they exist in multiple schemas\n const existingProperty = mergedProperty.properties[existingPropertyIndex];\n mergedProperty.properties[existingPropertyIndex] = {\n ...existingProperty,\n ...property,\n description: property.description || existingProperty.description || \"\",\n meta: [...(existingProperty.meta || []), ...(property.meta || [])],\n };\n } else {\n mergedProperty.properties.push(property);\n }\n }\n }\n } else {\n const property = schemaObjectToUniformDefinitionProperty(\n \"\",\n variantSchema,\n false,\n false,\n visitedRefs\n );\n if (property) {\n if (isOfType(property.type)) {\n mergedProperty.ofProperty = property\n } else {\n if (!mergedProperty.properties?.length) {\n mergedProperty.properties = []\n }\n\n if (mergedProperty.ofProperty) {\n mergedProperty.description = property.description || mergedProperty.ofProperty.description || \"\"\n } else {\n mergedProperty.properties.push(property);\n }\n }\n }\n }\n }\n\n const oasSchema = schema as OasJSONSchema;\n oasSchema.__internal_getRefPath = () => componentPaths;\n\n if (refPath) {\n visitedRefs.set(refPath, mergedProperty);\n }\n return mergedProperty;\n }\n\n const property: DefinitionProperty = {\n name,\n type: schema.type || \"object\",\n description: schema.description || \"\",\n meta,\n };\n\n if (schema.enum) {\n const enumProperties = schemaObjectToUniformDefinitionProperties({\n properties: schema.enum.reduce((acc, enumName) => ({\n ...acc,\n [enumName]: {\n type: schema.type,\n }\n }), {})\n })\n if (!Array.isArray(enumProperties)) {\n return property;\n }\n\n meta.push({\n name: \"enum-type\",\n value: schema.type\n })\n\n const enumProperty: DefinitionProperty = {\n name,\n type: DEFINED_DEFINITION_PROPERTY_TYPE.ENUM,\n description: schema.description || \"\",\n meta,\n properties: enumProperties || [],\n };\n\n if (refPath) {\n visitedRefs.set(refPath, enumProperty);\n }\n\n return enumProperty\n } else {\n if ('properties' in schema && schema.properties) {\n property.properties = [];\n\n for (const [propName, propSchema] of Object.entries(schema.properties)) {\n if (BUILT_IN_PROPERTIES[propName]) {\n continue;\n }\n if ('$ref' in propSchema) {\n console.warn(\"$ref is not supported in properties\");\n\n continue; // Skip reference objects\n }\n\n const nestedProperty = schemaObjectToUniformDefinitionProperty(\n propName,\n propSchema,\n schema.required?.includes(propName),\n propSchema?.type === \"array\" ? true : false,\n visitedRefs,\n );\n\n if (nestedProperty) {\n property.properties.push(nestedProperty);\n }\n }\n }\n // Handle array items\n else if (schema.type === \"array\" && schema.items && !('$ref' in schema.items)) {\n const arrayProperty: DefinitionProperty = {\n name,\n type: DEFINED_DEFINITION_PROPERTY_TYPE.ARRAY,\n description: schema.description || \"\",\n meta,\n properties: []\n };\n\n const itemsProperty = schemaObjectToUniformDefinitionProperty(\"\", schema.items, required, true, visitedRefs, arrayProperty);\n\n if (itemsProperty) {\n if (arrayOf || isOfType(itemsProperty.type) || itemsProperty.ofProperty?.type) {\n arrayProperty.ofProperty = {\n name: \"\",\n type: itemsProperty.type,\n properties: itemsProperty.properties || [],\n description: itemsProperty.description || \"\",\n meta: itemsProperty.meta || [],\n ofProperty: itemsProperty.ofProperty || undefined\n }\n } else {\n arrayProperty.properties = [itemsProperty];\n }\n }\n if (refPath) {\n visitedRefs.set(refPath, arrayProperty);\n }\n\n return arrayProperty\n }\n }\n\n if (arrayOf) {\n const prop = {\n type: property.type,\n name: \"\",\n description: \"\",\n ofProperty: property\n }\n if (refPath) {\n visitedRefs.set(refPath, prop);\n }\n }\n\n\n if (refPath) {\n visitedRefs.set(refPath, property);\n }\n return property;\n}\n\nexport function schemaObjectToUniformDefinitionPropertyMeta(objProp: OpenAPIV3.SchemaObject | OpenAPIV3.ParameterObject, name: string) {\n const meta: DefinitionPropertyMeta[] = []\n if (!objProp) {\n return meta\n }\n\n if (typeof objProp.required === \"boolean\" && objProp.required) {\n meta.push({\n name: \"required\",\n value: \"true\"\n })\n } else if (Array.isArray(objProp.required)) {\n for (const req of objProp.required) {\n if (req === name) {\n meta.push({\n name: \"required\",\n value: \"true\"\n })\n }\n }\n }\n if (objProp.deprecated) {\n meta.push({\n name: \"deprecated\",\n value: \"true\"\n })\n }\n if (\"default\" in objProp) {\n meta.push({\n name: \"defaults\",\n value: objProp.default\n })\n }\n if (\"nullable\" in objProp) {\n meta.push({\n name: \"nullable\",\n value: \"true\"\n })\n }\n if (\"example\" in objProp) {\n const example = typeof objProp.example === \"object\" ? JSON.stringify(objProp.example) : objProp.example;\n meta.push({\n name: \"example\",\n value: example\n })\n }\n if (\"examples\" in objProp) {\n meta.push({\n name: \"examples\",\n value: objProp.examples\n })\n }\n if (\"maximum\" in objProp) {\n meta.push({\n name: \"maximum\",\n value: objProp.maximum\n })\n }\n if (\"minimum\" in objProp) {\n meta.push({\n name: \"minimum\",\n value: objProp.minimum\n })\n }\n\n return meta\n}\n\nfunction isMergeType(type: string) {\n return type === DEFINED_DEFINITION_PROPERTY_TYPE.XOR\n || type === DEFINED_DEFINITION_PROPERTY_TYPE.UNION\n}\n\nfunction isOfType(type: string) {\n return type === DEFINED_DEFINITION_PROPERTY_TYPE.XOR\n || type === DEFINED_DEFINITION_PROPERTY_TYPE.UNION\n || type === DEFINED_DEFINITION_PROPERTY_TYPE.ARRAY\n}","import {OpenAPIV3} from \"openapi-types\";\n\nimport {DefinitionProperty} from \"@xyd-js/uniform\";\n\nimport { schemaObjectToUniformDefinitionPropertyMeta } from \"../oas-core\";\n\n// oapParametersToDefinitionProperties converts OpenAPI parameters to uniform DefinitionProperties\nexport function oapParametersToDefinitionProperties(\n parameters: OpenAPIV3.ParameterObject[]\n): { [key: string]: DefinitionProperty[] } {\n const parameterIn: { [key: string]: DefinitionProperty[] } = {}\n\n parameters.forEach((param) => {\n if (!parameterIn[param.in]) {\n parameterIn[param.in] = []\n }\n\n const schema = param.schema as OpenAPIV3.SchemaObject\n\n const meta = [\n ...(schemaObjectToUniformDefinitionPropertyMeta(schema, param.name) || []),\n ...(schemaObjectToUniformDefinitionPropertyMeta(param, param.name) || []),\n ]\n\n let oapV2Type = \"\"\n if (\"type\" in param) {\n oapV2Type = param.type as string\n }\n \n const property: DefinitionProperty = {\n name: param.name,\n type: schema?.type || oapV2Type || \"\",\n description: param.description || \"\",\n meta\n }\n \n parameterIn[param.in].push(property)\n })\n\n return parameterIn\n}\n","import {OpenAPIV3} from \"openapi-types\";\n\nimport {\n Definition,\n ExampleGroup,\n Reference,\n ReferenceCategory,\n OpenAPIReferenceContext,\n DefinitionVariantOpenAPIMeta,\n DefinitionVariant,\n DefinitionOpenAPIMeta,\n SymbolDef,\n DefinitionProperty\n} from \"@xyd-js/uniform\";\n\nimport {oapParametersToDefinitionProperties} from \"./oas-parameters\";\nimport {oapRequestBodyToDefinitionProperties} from \"./oas-requestBody\";\nimport {oasResponseToDefinitionProperties} from \"./oas-responses\";\nimport {\n httpMethodToUniformMethod,\n slug\n} from \"../utils\";\nimport {OasJSONSchema} from \"../types\";\nimport path from \"node:path\";\n\n// oapPathToReference converts an OpenAPI path to a uniform Reference\nexport function oapPathToReference(\n schema: OpenAPIV3.Document,\n httpMethod: string,\n path: string,\n oapPath: OpenAPIV3.PathItemObject,\n): Reference | null {\n const mType = httpMethodToUniformMethod(httpMethod)\n\n if (!mType) {\n console.error(`Unsupported method: ${httpMethod}`)\n return null\n }\n\n const definitions: Definition[] = []\n const exampleGroups: ExampleGroup[] = []\n\n const oapMethod = oapPath?.[httpMethod as keyof OpenAPIV3.PathItemObject] as OpenAPIV3.OperationObject\n if (!oapMethod) {\n return null\n }\n\n const tag = getFirstTag(oapMethod)\n const group = [tag]\n\n const endpointRef: Reference = {\n title: title(oapMethod, httpMethod, path),\n canonical: canonical(oapMethod, httpMethod, path),\n description: oapMethod?.description || oapMethod?.summary,\n type: mType,\n category: ReferenceCategory.REST,\n\n context: {\n method: httpMethod,\n path: `${encodeURIComponent(path)}`,\n fullPath: path,\n group,\n } as OpenAPIReferenceContext,\n\n examples: {\n groups: exampleGroups,\n },\n definitions: definitions,\n }\n\n if (oapMethod.parameters) {\n const parameters = oapMethod.parameters as OpenAPIV3.ParameterObject[]\n\n const paramtersMap = oapParametersToDefinitionProperties(parameters)\n\n Object.entries(paramtersMap).forEach(([key, definitionProperties]) => {\n let title: string\n\n switch (key) {\n case 'path':\n title = \"Path parameters\"\n break\n case 'query':\n title = \"Query parameters\"\n break\n case 'header':\n title = \"Headers\"\n break\n default:\n console.error(`Unsupported parameter type: ${key} for ${httpMethod} ${path}`)\n return\n }\n\n definitions.push({\n title,\n properties: definitionProperties\n })\n })\n }\n\n definitions.push(...oapOperationToDefinitions(oapMethod))\n\n // TODO: !!!! better api !!!!\n endpointRef.__UNSAFE_selector = function __UNSAFE_selector(selector: string) {\n switch (selector) {\n case \"[schema]\": {\n return schema\n }\n case \"[method]\": {\n return {\n oapPath,\n httpMethod,\n path\n }\n }\n\n case \"[method] [path]\": {\n return oapMethod\n }\n default:\n return null\n }\n }\n\n return endpointRef\n}\n\nfunction oapOperationToDefinitions(\n oapMethod: OpenAPIV3.OperationObject,\n): Definition[] {\n const definitions: Definition[] = []\n\n if (oapMethod.requestBody) {\n const definition = oapRequestOperationToUniformDefinition(oapMethod)\n definitions.push(definition)\n }\n\n if (oapMethod.responses) {\n const definition = oapResponseOperationToUniformDefinition(oapMethod)\n definitions.push(definition)\n }\n\n return definitions\n}\n\nfunction oapRequestOperationToUniformDefinition(\n oapOperation: OpenAPIV3.OperationObject,\n): Definition {\n const reqBody = oapOperation.requestBody as OpenAPIV3.RequestBodyObject\n const variants: DefinitionVariant<DefinitionVariantOpenAPIMeta>[] = []\n\n for (const contentType of Object.keys(reqBody.content)) {\n const schema = reqBody.content[contentType]?.schema as OpenAPIV3.SchemaObject\n\n let properties: DefinitionProperty[] = []\n let rootProperty: DefinitionProperty | undefined\n let propertiesResp = oapRequestBodyToDefinitionProperties(reqBody, contentType) || []\n\n if (Array.isArray(propertiesResp)) {\n properties = propertiesResp\n } else {\n rootProperty = propertiesResp\n }\n\n const meta: DefinitionVariantOpenAPIMeta[] = [\n {\n name: \"contentType\",\n value: contentType || \"\",\n },\n ]\n\n if (schema?.required) {\n meta.push({\n name: \"required\",\n value: schema.required ? \"true\" : \"false\",\n })\n }\n\n variants.push({\n title: contentType,\n description: schema.description || \"\",\n properties,\n rootProperty,\n meta,\n symbolDef: definitionPropertyTypeDef(schema),\n })\n }\n\n const meta: DefinitionOpenAPIMeta[] = []\n\n if (reqBody.required) {\n meta.push({\n name: \"required\",\n value: \"true\",\n })\n }\n\n return {\n title: 'Request body',\n variants,\n properties: [],\n meta\n }\n}\n\nexport function oapResponseOperationToUniformDefinition(\n oapOperation: OpenAPIV3.OperationObject,\n): Definition {\n\n const responses = oapOperation.responses as OpenAPIV3.ResponsesObject\n\n const variants: DefinitionVariant<DefinitionVariantOpenAPIMeta>[] = []\n\n Object.keys(responses).forEach((code) => {\n const responseObject = responses[code] as OpenAPIV3.ResponseObject\n if (!responseObject?.content) {\n variants.push({\n title: code,\n description: responseObject.description,\n properties: [],\n meta: [\n {\n name: \"status\",\n value: code || \"\",\n },\n ],\n })\n return null\n }\n\n const contentTypes = Object.keys(responseObject.content)\n\n for (const contentType of contentTypes) {\n let properties: DefinitionProperty[] = []\n let rootProperty: DefinitionProperty | undefined\n const schema = responseObject.content[contentType]?.schema as OpenAPIV3.SchemaObject\n const respProperties = oasResponseToDefinitionProperties(responses, code, contentType) || []\n\n if (respProperties && \"properties\" in respProperties && respProperties?.properties) {\n if (Array.isArray(respProperties.properties)) {\n properties = respProperties.properties\n } else {\n rootProperty = respProperties.properties\n }\n }\n\n let definitionDescription = \"\"\n if (\"description\" in respProperties) {\n definitionDescription = respProperties.description || \"\"\n }\n\n variants.push({\n title: code,\n description: responseObject.description,\n properties,\n rootProperty,\n meta: [\n {\n name: \"status\",\n value: code || \"\",\n },\n {\n name: \"contentType\",\n value: contentType || \"\",\n },\n {\n name: \"definitionDescription\",\n value: definitionDescription\n }\n ],\n symbolDef: definitionPropertyTypeDef(schema),\n })\n }\n\n })\n\n return {\n title: 'Response',\n variants,\n properties: []\n }\n}\n\nfunction definitionPropertyTypeDef(\n schema: OpenAPIV3.SchemaObject | undefined,\n) {\n if (!schema) {\n return\n }\n\n let typeDef: SymbolDef | undefined\n let oasSchema = schema as OasJSONSchema\n if (oasSchema.type === \"array\") {\n oasSchema = oasSchema.items as OasJSONSchema\n }\n if (oasSchema?.__internal_getRefPath) {\n const symbolId = oasSchema.__internal_getRefPath()\n\n typeDef = {\n id: symbolId,\n }\n }\n\n return typeDef\n}\n\n\nfunction title(\n oapMethod: OpenAPIV3.OperationObject,\n httpMethod: string,\n httpPath: string,\n) {\n const tit = oapMethod?.summary || oapMethod.operationId || \"\"\n if (tit) {\n return tit\n }\n\n if (!httpMethod || !httpPath) {\n throw new Error(\"httpMethod and path are required to generate title\")\n }\n\n return path.join(httpMethod, cleanPath(httpPath))\n}\n\nfunction canonical(\n oapMethod: OpenAPIV3.OperationObject,\n httpMethod: string,\n httpPath: string,\n) {\n let canon = oapMethod.operationId || slug(oapMethod?.summary || \"\")\n\n if (canon) {\n return canon\n }\n\n if (!httpMethod || !httpPath) {\n throw new Error(\"httpMethod and path are required to generate canonical\")\n }\n\n return path.join(httpMethod, cleanPath(httpPath))\n}\n\nfunction getFirstTag(oapMethod: OpenAPIV3.OperationObject) {\n for (const tag of oapMethod?.tags || []) {\n return tag\n }\n\n return \"\"\n}\n\n// Helper function to remove curly braces from path parameters\nfunction cleanPath(httpPath: string): string {\n return httpPath.replace(/\\{([^}]+)\\}/g, '$1')\n}","import {OpenAPIV3} from \"openapi-types\";\n\nimport {DefinitionProperty, DEFINED_DEFINITION_PROPERTY_TYPE} from \"@xyd-js/uniform\";\n\nimport {schemaObjectToUniformDefinitionProperties} from \"../oas-core\";\n\n// oapRequestBodyToDefinitionProperties converts OpenAPI request body to uniform DefinitionProperties\nexport function oapRequestBodyToDefinitionProperties(\n reqBody: OpenAPIV3.RequestBodyObject,\n contentType: string\n): DefinitionProperty[] | DefinitionProperty | null {\n const schema = reqBody.content[contentType].schema as OpenAPIV3.SchemaObject\n if (!schema) {\n return null\n }\n\n let schemaObject: OpenAPIV3.SchemaObject | undefined\n\n if (schema.allOf || schema.anyOf || schema.oneOf) {\n return schemaObjectToUniformDefinitionProperties(schema)\n }\n\n let array = false\n\n switch (schema.type) {\n case 'object': {\n schemaObject = schema\n break\n }\n case 'array': {\n const arrSchema = schema as OpenAPIV3.ArraySchemaObject\n const items = arrSchema.items as OpenAPIV3.SchemaObject\n\n schemaObject = items\n array = true\n\n break\n }\n default:\n // TODO: primitive types ???\n break\n }\n\n if (!schemaObject) {\n return null\n }\n\n const properties = schemaObjectToUniformDefinitionProperties(schemaObject)\n if (array) {\n return {\n type: DEFINED_DEFINITION_PROPERTY_TYPE.ARRAY,\n properties,\n } as DefinitionProperty\n }\n\n return properties\n}","import {OpenAPIV3} from \"openapi-types\";\nimport {DefinitionProperty, DEFINED_DEFINITION_PROPERTY_TYPE} from \"@xyd-js/uniform\";\n\nimport {schemaObjectToUniformDefinitionProperties} from \"../oas-core\";\n\nexport function oasResponseToDefinitionProperties(\n responses: OpenAPIV3.ResponsesObject,\n code: string,\n contentType: string,\n): {\n properties: DefinitionProperty | DefinitionProperty[],\n description?: string,\n} | null {\n let schemaObject: OpenAPIV3.SchemaObject | undefined\n let responseObject: OpenAPIV3.ResponseObject | undefined\n\n if (responses[code]) {\n responseObject = responses[code] as OpenAPIV3.ResponseObject\n if (!responseObject?.content) {\n return null\n }\n\n schemaObject = responseObject?.content[contentType]?.schema as OpenAPIV3.SchemaObject\n }\n\n if (!schemaObject) {\n return {\n properties: [\n {\n description: responseObject?.description || \"\",\n name: \"\",\n type: \"\"\n }\n ],\n }\n }\n\n let array = false\n\n switch (schemaObject.type) {\n case 'array':\n const arrSchema = schemaObject as OpenAPIV3.ArraySchemaObject\n const items = arrSchema.items as OpenAPIV3.SchemaObject\n\n schemaObject = items\n array = true\n default:\n break\n }\n\n const properties = schemaObjectToUniformDefinitionProperties(schemaObject, true)\n\n let description = \"\"\n\n if (schemaObject.allOf) {\n for (const item of schemaObject.allOf) {\n if (\"description\" in item) {\n description += item.description + \"\\n\";\n }\n }\n }\n\n if (array) {\n return {\n properties: {\n type: DEFINED_DEFINITION_PROPERTY_TYPE.ARRAY,\n properties,\n } as DefinitionProperty\n }\n }\n\n return {\n properties: properties || [],\n description: description || \"\",\n }\n}","import path from \"path\";\nimport fs from \"fs/promises\";\n\nimport yaml from \"js-yaml\";\nimport {OpenAPIV3} from \"openapi-types\";\nimport GithubSlugger from 'github-slugger';\nimport $refParser, {ParserOptions} from \"@apidevtools/json-schema-ref-parser\";\n\nimport {ReferenceType} from \"@xyd-js/uniform\";\n\nexport function slug(str: string): string {\n const slugger = new GithubSlugger();\n return slugger.slug(str);\n}\n\n// deferencedOpenAPI reads an OpenAPI spec file and returns a dereferenced OpenAPIV3.Document\n// dereferenced means that all $ref references are resolved automatically\nexport async function deferencedOpenAPI(openApiPath: string) {\n const openApiSpec = await readOpenApiSpec(openApiPath);\n if (!openApiSpec) {\n return\n }\n\n const cwd = process.cwd();\n\n const remoteOasPath = openApiPath.startsWith('http://') || openApiPath.startsWith('https://') ? true : false\n\n const circularRefs: Set<string> = new Set();\n\n const options: ParserOptions = {\n dereference: {\n onCircular(defPath: string) {\n const v = `#${defPath.split('#')[1]}`\n circularRefs.add(v);\n },\n // circular: true, // ignore circular references,\n // onCi\n onDereference(defPath: any, value: any, parent: any) {\n if (circularRefs.has(defPath) || circularRefs.has(path.join(defPath, \"properties\"))) {\n value.__UNSAFE_circular = true; // TODO: BETTER WAY TO MARK CIRCULAR REFS\n }\n if (value && typeof value === 'object') {\n value.__UNSAFE_refPath = () => defPath\n }\n if (parent && typeof parent === 'object') {\n parent.__UNSAFE_refPath = () => defPath\n }\n }\n }\n } as ParserOptions;\n\n if (remoteOasPath) {\n if (!options.resolve) {\n options.resolve = {}\n }\n\n options.resolve.file = {\n read: async (file: any) => {\n // 1) Convert absolute local path back into a repo-relative path:\n // \"/Users/.../docs/foo.md\" → \"docs/foo.md\"\n let rel = path.relative(cwd, file.url);\n rel = rel.split(path.sep).join('/');\n\n // 2) Resolve against your GitHub raw URL:\n const absoluteUrl = new URL(rel, openApiPath).href;\n // → \"https://raw.githubusercontent.com/.../docs/foo.md\"\n\n // 3) Fetch it:\n const res = await fetch(absoluteUrl);\n if (!res.ok) {\n throw new Error(`Failed to fetch ${absoluteUrl}: ${res.status}`);\n }\n\n let content;\n if (file.extension === '.json' || file.extension === '.yaml' || file.extension === '.yml') {\n // If the file is JSON or YAML, return the parsed content\n if (file.extension === '.json') {\n content = await res.json();\n } else {\n content = yaml.load(await res.text());\n }\n } else {\n content = await res.text(); // hand back the Markdown\n }\n\n return content;\n }\n }\n }\n\n await $refParser.dereference(openApiSpec, options);\n // await $refParser.bundle(openApiSpec, options);\n\n return openApiSpec as OpenAPIV3.Document\n}\n\n// readOpenApiSpec reads an OpenAPI spec file or URL and returns the content\nasync function readOpenApiSpec(filePath: string) {\n let content: string;\n let fromUrl = false\n if (filePath.startsWith('http://') || filePath.startsWith('https://')) {\n const response = await fetch(filePath);\n if (!response.ok) {\n throw new Error(`Failed to fetch OpenAPI spec from URL: ${response.statusText}`);\n }\n content = await response.text();\n fromUrl = true\n } else {\n try {\n await fs.access(filePath);\n } catch (error) {\n console.log(`⚠️ \"(openapi): ${filePath}\" is defined in the docs.json navigation but the file does not exist.`)\n return\n }\n content = await fs.readFile(filePath, 'utf-8');\n }\n\n const ext = path.extname(filePath).toLowerCase();\n if (ext === '.yaml' || ext === '.yml') {\n return yaml.load(content);\n } else if (ext === '.json') {\n return JSON.parse(content);\n } else if (fromUrl && content.startsWith('{')) {\n try {\n return JSON.parse(content);\n } catch (error) {\n throw new Error(`Failed to parse JSON from URL: ${error}`);\n }\n } else {\n throw new Error('Unsupported file format. Use JSON or YAML.');\n }\n}\n\n// httpMethodToUniformMethod converts an HTTP method to a uniform ReferenceType\nexport function httpMethodToUniformMethod(method: string): ReferenceType | null {\n switch (method) {\n case 'get':\n return ReferenceType.REST_HTTP_GET\n case 'put':\n return ReferenceType.REST_HTTP_PUT\n case 'patch':\n return ReferenceType.REST_HTTP_PATCH\n case 'post':\n return ReferenceType.REST_HTTP_POST\n case 'delete':\n return ReferenceType.REST_HTTP_DELETE\n case 'options':\n return ReferenceType.REST_HTTP_OPTIONS\n case 'head':\n return ReferenceType.REST_HTTP_HEAD\n case 'trace':\n return ReferenceType.REST_HTTP_TRACE\n default:\n return null\n }\n}\n\n","// This module is generated by `script/`.\n/* eslint-disable no-control-regex, no-misleading-character-class, no-useless-escape */\nexport const regex = /[\\0-\\x1F!-,\\.\\/:-@\\[-\\^`\\{-\\xA9\\xAB-\\xB4\\xB6-\\xB9\\xBB-\\xBF\\xD7\\xF7\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0378\\u0379\\u037E\\u0380-\\u0385\\u0387\\u038B\\u038D\\u03A2\\u03F6\\u0482\\u0530\\u0557\\u0558\\u055A-\\u055F\\u0589-\\u0590\\u05BE\\u05C0\\u05C3\\u05C6\\u05C8-\\u05CF\\u05EB-\\u05EE\\u05F3-\\u060F\\u061B-\\u061F\\u066A-\\u066D\\u06D4\\u06DD\\u06DE\\u06E9\\u06FD\\u06FE\\u0700-\\u070F\\u074B\\u074C\\u07B2-\\u07BF\\u07F6-\\u07F9\\u07FB\\u07FC\\u07FE\\u07FF\\u082E-\\u083F\\u085C-\\u085F\\u086B-\\u089F\\u08B5\\u08C8-\\u08D2\\u08E2\\u0964\\u0965\\u0970\\u0984\\u098D\\u098E\\u0991\\u0992\\u09A9\\u09B1\\u09B3-\\u09B5\\u09BA\\u09BB\\u09C5\\u09C6\\u09C9\\u09CA\\u09CF-\\u09D6\\u09D8-\\u09DB\\u09DE\\u09E4\\u09E5\\u09F2-\\u09FB\\u09FD\\u09FF\\u0A00\\u0A04\\u0A0B-\\u0A0E\\u0A11\\u0A12\\u0A29\\u0A31\\u0A34\\u0A37\\u0A3A\\u0A3B\\u0A3D\\u0A43-\\u0A46\\u0A49\\u0A4A\\u0A4E-\\u0A50\\u0A52-\\u0A58\\u0A5D\\u0A5F-\\u0A65\\u0A76-\\u0A80\\u0A84\\u0A8E\\u0A92\\u0AA9\\u0AB1\\u0AB4\\u0ABA\\u0ABB\\u0AC6\\u0ACA\\u0ACE\\u0ACF\\u0AD1-\\u0ADF\\u0AE4\\u0AE5\\u0AF0-\\u0AF8\\u0B00\\u0B04\\u0B0D\\u0B0E\\u0B11\\u0B12\\u0B29\\u0B31\\u0B34\\u0B3A\\u0B3B\\u0B45\\u0B46\\u0B49\\u0B4A\\u0B4E-\\u0B54\\u0B58-\\u0B5B\\u0B5E\\u0B64\\u0B65\\u0B70\\u0B72-\\u0B81\\u0B84\\u0B8B-\\u0B8D\\u0B91\\u0B96-\\u0B98\\u0B9B\\u0B9D\\u0BA0-\\u0BA2\\u0BA5-\\u0BA7\\u0BAB-\\u0BAD\\u0BBA-\\u0BBD\\u0BC3-\\u0BC5\\u0BC9\\u0BCE\\u0BCF\\u0BD1-\\u0BD6\\u0BD8-\\u0BE5\\u0BF0-\\u0BFF\\u0C0D\\u0C11\\u0C29\\u0C3A-\\u0C3C\\u0C45\\u0C49\\u0C4E-\\u0C54\\u0C57\\u0C5B-\\u0C5F\\u0C64\\u0C65\\u0C70-\\u0C7F\\u0C84\\u0C8D\\u0C91\\u0CA9\\u0CB4\\u0CBA\\u0CBB\\u0CC5\\u0CC9\\u0CCE-\\u0CD4\\u0CD7-\\u0CDD\\u0CDF\\u0CE4\\u0CE5\\u0CF0\\u0CF3-\\u0CFF\\u0D0D\\u0D11\\u0D45\\u0D49\\u0D4F-\\u0D53\\u0D58-\\u0D5E\\u0D64\\u0D65\\u0D70-\\u0D79\\u0D80\\u0D84\\u0D97-\\u0D99\\u0DB2\\u0DBC\\u0DBE\\u0DBF\\u0DC7-\\u0DC9\\u0DCB-\\u0DCE\\u0DD5\\u0DD7\\u0DE0-\\u0DE5\\u0DF0\\u0DF1\\u0DF4-\\u0E00\\u0E3B-\\u0E3F\\u0E4F\\u0E5A-\\u0E80\\u0E83\\u0E85\\u0E8B\\u0EA4\\u0EA6\\u0EBE\\u0EBF\\u0EC5\\u0EC7\\u0ECE\\u0ECF\\u0EDA\\u0EDB\\u0EE0-\\u0EFF\\u0F01-\\u0F17\\u0F1A-\\u0F1F\\u0F2A-\\u0F34\\u0F36\\u0F38\\u0F3A-\\u0F3D\\u0F48\\u0F6D-\\u0F70\\u0F85\\u0F98\\u0FBD-\\u0FC5\\u0FC7-\\u0FFF\\u104A-\\u104F\\u109E\\u109F\\u10C6\\u10C8-\\u10CC\\u10CE\\u10CF\\u10FB\\u1249\\u124E\\u124F\\u1257\\u1259\\u125E\\u125F\\u1289\\u128E\\u128F\\u12B1\\u12B6\\u12B7\\u12BF\\u12C1\\u12C6\\u12C7\\u12D7\\u1311\\u1316\\u1317\\u135B\\u135C\\u1360-\\u137F\\u1390-\\u139F\\u13F6\\u13F7\\u13FE-\\u1400\\u166D\\u166E\\u1680\\u169B-\\u169F\\u16EB-\\u16ED\\u16F9-\\u16FF\\u170D\\u1715-\\u171F\\u1735-\\u173F\\u1754-\\u175F\\u176D\\u1771\\u1774-\\u177F\\u17D4-\\u17D6\\u17D8-\\u17DB\\u17DE\\u17DF\\u17EA-\\u180A\\u180E\\u180F\\u181A-\\u181F\\u1879-\\u187F\\u18AB-\\u18AF\\u18F6-\\u18FF\\u191F\\u192C-\\u192F\\u193C-\\u1945\\u196E\\u196F\\u1975-\\u197F\\u19AC-\\u19AF\\u19CA-\\u19CF\\u19DA-\\u19FF\\u1A1C-\\u1A1F\\u1A5F\\u1A7D\\u1A7E\\u1A8A-\\u1A8F\\u1A9A-\\u1AA6\\u1AA8-\\u1AAF\\u1AC1-\\u1AFF\\u1B4C-\\u1B4F\\u1B5A-\\u1B6A\\u1B74-\\u1B7F\\u1BF4-\\u1BFF\\u1C38-\\u1C3F\\u1C4A-\\u1C4C\\u1C7E\\u1C7F\\u1C89-\\u1C8F\\u1CBB\\u1CBC\\u1CC0-\\u1CCF\\u1CD3\\u1CFB-\\u1CFF\\u1DFA\\u1F16\\u1F17\\u1F1E\\u1F1F\\u1F46\\u1F47\\u1F4E\\u1F4F\\u1F58\\u1F5A\\u1F5C\\u1F5E\\u1F7E\\u1F7F\\u1FB5\\u1FBD\\u1FBF-\\u1FC1\\u1FC5\\u1FCD-\\u1FCF\\u1FD4\\u1FD5\\u1FDC-\\u1FDF\\u1FED-\\u1FF1\\u1FF5\\u1FFD-\\u203E\\u2041-\\u2053\\u2055-\\u2070\\u2072-\\u207E\\u2080-\\u208F\\u209D-\\u20CF\\u20F1-\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u214F-\\u215F\\u2189-\\u24B5\\u24EA-\\u2BFF\\u2C2F\\u2C5F\\u2CE5-\\u2CEA\\u2CF4-\\u2CFF\\u2D26\\u2D28-\\u2D2C\\u2D2E\\u2D2F\\u2D68-\\u2D6E\\u2D70-\\u2D7E\\u2D97-\\u2D9F\\u2DA7\\u2DAF\\u2DB7\\u2DBF\\u2DC7\\u2DCF\\u2DD7\\u2DDF\\u2E00-\\u2E2E\\u2E30-\\u3004\\u3008-\\u3020\\u3030\\u3036\\u3037\\u303D-\\u3040\\u3097\\u3098\\u309B\\u309C\\u30A0\\u30FB\\u3100-\\u3104\\u3130\\u318F-\\u319F\\u31C0-\\u31EF\\u3200-\\u33FF\\u4DC0-\\u4DFF\\u9FFD-\\u9FFF\\uA48D-\\uA4CF\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA62C-\\uA63F\\uA673\\uA67E\\uA6F2-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uA7C0\\uA7C1\\uA7CB-\\uA7F4\\uA828-\\uA82B\\uA82D-\\uA83F\\uA874-\\uA87F\\uA8C6-\\uA8CF\\uA8DA-\\uA8DF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA954-\\uA95F\\uA97D-\\uA97F\\uA9C1-\\uA9CE\\uA9DA-\\uA9DF\\uA9FF\\uAA37-\\uAA3F\\uAA4E\\uAA4F\\uAA5A-\\uAA5F\\uAA77-\\uAA79\\uAAC3-\\uAADA\\uAADE\\uAADF\\uAAF0\\uAAF1\\uAAF7-\\uAB00\\uAB07\\uAB08\\uAB0F\\uAB10\\uAB17-\\uAB1F\\uAB27\\uAB2F\\uAB5B\\uAB6A-\\uAB6F\\uABEB\\uABEE\\uABEF\\uABFA-\\uABFF\\uD7A4-\\uD7AF\\uD7C7-\\uD7CA\\uD7FC-\\uD7FF\\uE000-\\uF8FF\\uFA6E\\uFA6F\\uFADA-\\uFAFF\\uFB07-\\uFB12\\uFB18-\\uFB1C\\uFB29\\uFB37\\uFB3D\\uFB3F\\uFB42\\uFB45\\uFBB2-\\uFBD2\\uFD3E-\\uFD4F\\uFD90\\uFD91\\uFDC8-\\uFDEF\\uFDFC-\\uFDFF\\uFE10-\\uFE1F\\uFE30-\\uFE32\\uFE35-\\uFE4C\\uFE50-\\uFE6F\\uFE75\\uFEFD-\\uFF0F\\uFF1A-\\uFF20\\uFF3B-\\uFF3E\\uFF40\\uFF5B-\\uFF65\\uFFBF-\\uFFC1\\uFFC8\\uFFC9\\uFFD0\\uFFD1\\uFFD8\\uFFD9\\uFFDD-\\uFFFF]|\\uD800[\\uDC0C\\uDC27\\uDC3B\\uDC3E\\uDC4E\\uDC4F\\uDC5E-\\uDC7F\\uDCFB-\\uDD3F\\uDD75-\\uDDFC\\uDDFE-\\uDE7F\\uDE9D-\\uDE9F\\uDED1-\\uDEDF\\uDEE1-\\uDEFF\\uDF20-\\uDF2C\\uDF4B-\\uDF4F\\uDF7B-\\uDF7F\\uDF9E\\uDF9F\\uDFC4-\\uDFC7\\uDFD0\\uDFD6-\\uDFFF]|\\uD801[\\uDC9E\\uDC9F\\uDCAA-\\uDCAF\\uDCD4-\\uDCD7\\uDCFC-\\uDCFF\\uDD28-\\uDD2F\\uDD64-\\uDDFF\\uDF37-\\uDF3F\\uDF56-\\uDF5F\\uDF68-\\uDFFF]|\\uD802[\\uDC06\\uDC07\\uDC09\\uDC36\\uDC39-\\uDC3B\\uDC3D\\uDC3E\\uDC56-\\uDC5F\\uDC77-\\uDC7F\\uDC9F-\\uDCDF\\uDCF3\\uDCF6-\\uDCFF\\uDD16-\\uDD1F\\uDD3A-\\uDD7F\\uDDB8-\\uDDBD\\uDDC0-\\uDDFF\\uDE04\\uDE07-\\uDE0B\\uDE14\\uDE18\\uDE36\\uDE37\\uDE3B-\\uDE3E\\uDE40-\\uDE5F\\uDE7D-\\uDE7F\\uDE9D-\\uDEBF\\uDEC8\\uDEE7-\\uDEFF\\uDF36-\\uDF3F\\uDF56-\\uDF5F\\uDF73-\\uDF7F\\uDF92-\\uDFFF]|\\uD803[\\uDC49-\\uDC7F\\uDCB3-\\uDCBF\\uDCF3-\\uDCFF\\uDD28-\\uDD2F\\uDD3A-\\uDE7F\\uDEAA\\uDEAD-\\uDEAF\\uDEB2-\\uDEFF\\uDF1D-\\uDF26\\uDF28-\\uDF2F\\uDF51-\\uDFAF\\uDFC5-\\uDFDF\\uDFF7-\\uDFFF]|\\uD804[\\uDC47-\\uDC65\\uDC70-\\uDC7E\\uDCBB-\\uDCCF\\uDCE9-\\uDCEF\\uDCFA-\\uDCFF\\uDD35\\uDD40-\\uDD43\\uDD48-\\uDD4F\\uDD74\\uDD75\\uDD77-\\uDD7F\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDFF\\uDE12\\uDE38-\\uDE3D\\uDE3F-\\uDE7F\\uDE87\\uDE89\\uDE8E\\uDE9E\\uDEA9-\\uDEAF\\uDEEB-\\uDEEF\\uDEFA-\\uDEFF\\uDF04\\uDF0D\\uDF0E\\uDF11\\uDF12\\uDF29\\uDF31\\uDF34\\uDF3A\\uDF45\\uDF46\\uDF49\\uDF4A\\uDF4E\\uDF4F\\uDF51-\\uDF56\\uDF58-\\uDF5C\\uDF64\\uDF65\\uDF6D-\\uDF6F\\uDF75-\\uDFFF]|\\uD805[\\uDC4B-\\uDC4F\\uDC5A-\\uDC5D\\uDC62-\\uDC7F\\uDCC6\\uDCC8-\\uDCCF\\uDCDA-\\uDD7F\\uDDB6\\uDDB7\\uDDC1-\\uDDD7\\uDDDE-\\uDDFF\\uDE41-\\uDE43\\uDE45-\\uDE4F\\uDE5A-\\uDE7F\\uDEB9-\\uDEBF\\uDECA-\\uDEFF\\uDF1B\\uDF1C\\uDF2C-\\uDF2F\\uDF3A-\\uDFFF]|\\uD806[\\uDC3B-\\uDC9F\\uDCEA-\\uDCFE\\uDD07\\uDD08\\uDD0A\\uDD0B\\uDD14\\uDD17\\uDD36\\uDD39\\uDD3A\\uDD44-\\uDD4F\\uDD5A-\\uDD9F\\uDDA8\\uDDA9\\uDDD8\\uDDD9\\uDDE2\\uDDE5-\\uDDFF\\uDE3F-\\uDE46\\uDE48-\\uDE4F\\uDE9A-\\uDE9C\\uDE9E-\\uDEBF\\uDEF9-\\uDFFF]|\\uD807[\\uDC09\\uDC37\\uDC41-\\uDC4F\\uDC5A-\\uDC71\\uDC90\\uDC91\\uDCA8\\uDCB7-\\uDCFF\\uDD07\\uDD0A\\uDD37-\\uDD39\\uDD3B\\uDD3E\\uDD48-\\uDD4F\\uDD5A-\\uDD5F\\uDD66\\uDD69\\uDD8F\\uDD92\\uDD99-\\uDD9F\\uDDAA-\\uDEDF\\uDEF7-\\uDFAF\\uDFB1-\\uDFFF]|\\uD808[\\uDF9A-\\uDFFF]|\\uD809[\\uDC6F-\\uDC7F\\uDD44-\\uDFFF]|[\\uD80A\\uD80B\\uD80E-\\uD810\\uD812-\\uD819\\uD824-\\uD82B\\uD82D\\uD82E\\uD830-\\uD833\\uD837\\uD839\\uD83D\\uD83F\\uD87B-\\uD87D\\uD87F\\uD885-\\uDB3F\\uDB41-\\uDBFF][\\uDC00-\\uDFFF]|\\uD80D[\\uDC2F-\\uDFFF]|\\uD811[\\uDE47-\\uDFFF]|\\uD81A[\\uDE39-\\uDE3F\\uDE5F\\uDE6A-\\uDECF\\uDEEE\\uDEEF\\uDEF5-\\uDEFF\\uDF37-\\uDF3F\\uDF44-\\uDF4F\\uDF5A-\\uDF62\\uDF78-\\uDF7C\\uDF90-\\uDFFF]|\\uD81B[\\uDC00-\\uDE3F\\uDE80-\\uDEFF\\uDF4B-\\uDF4E\\uDF88-\\uDF8E\\uDFA0-\\uDFDF\\uDFE2\\uDFE5-\\uDFEF\\uDFF2-\\uDFFF]|\\uD821[\\uDFF8-\\uDFFF]|\\uD823[\\uDCD6-\\uDCFF\\uDD09-\\uDFFF]|\\uD82C[\\uDD1F-\\uDD4F\\uDD53-\\uDD63\\uDD68-\\uDD6F\\uDEFC-\\uDFFF]|\\uD82F[\\uDC6B-\\uDC6F\\uDC7D-\\uDC7F\\uDC89-\\uDC8F\\uDC9A-\\uDC9C\\uDC9F-\\uDFFF]|\\uD834[\\uDC00-\\uDD64\\uDD6A-\\uDD6C\\uDD73-\\uDD7A\\uDD83\\uDD84\\uDD8C-\\uDDA9\\uDDAE-\\uDE41\\uDE45-\\uDFFF]|\\uD835[\\uDC55\\uDC9D\\uDCA0\\uDCA1\\uDCA3\\uDCA4\\uDCA7\\uDCA8\\uDCAD\\uDCBA\\uDCBC\\uDCC4\\uDD06\\uDD0B\\uDD0C\\uDD15\\uDD1D\\uDD3A\\uDD3F\\uDD45\\uDD47-\\uDD49\\uDD51\\uDEA6\\uDEA7\\uDEC1\\uDEDB\\uDEFB\\uDF15\\uDF35\\uDF4F\\uDF6F\\uDF89\\uDFA9\\uDFC3\\uDFCC\\uDFCD]|\\uD836[\\uDC00-\\uDDFF\\uDE37-\\uDE3A\\uDE6D-\\uDE74\\uDE76-\\uDE83\\uDE85-\\uDE9A\\uDEA0\\uDEB0-\\uDFFF]|\\uD838[\\uDC07\\uDC19\\uDC1A\\uDC22\\uDC25\\uDC2B-\\uDCFF\\uDD2D-\\uDD2F\\uDD3E\\uDD3F\\uDD4A-\\uDD4D\\uDD4F-\\uDEBF\\uDEFA-\\uDFFF]|\\uD83A[\\uDCC5-\\uDCCF\\uDCD7-\\uDCFF\\uDD4C-\\uDD4F\\uDD5A-\\uDFFF]|\\uD83B[\\uDC00-\\uDDFF\\uDE04\\uDE20\\uDE23\\uDE25\\uDE26\\uDE28\\uDE33\\uDE38\\uDE3A\\uDE3C-\\uDE41\\uDE43-\\uDE46\\uDE48\\uDE4A\\uDE4C\\uDE50\\uDE53\\uDE55\\uDE56\\uDE58\\uDE5A\\uDE5C\\uDE5E\\uDE60\\uDE63\\uDE65\\uDE66\\uDE6B\\uDE73\\uDE78\\uDE7D\\uDE7F\\uDE8A\\uDE9C-\\uDEA0\\uDEA4\\uDEAA\\uDEBC-\\uDFFF]|\\uD83C[\\uDC00-\\uDD2F\\uDD4A-\\uDD4F\\uDD6A-\\uDD6F\\uDD8A-\\uDFFF]|\\uD83E[\\uDC00-\\uDFEF\\uDFFA-\\uDFFF]|\\uD869[\\uDEDE-\\uDEFF]|\\uD86D[\\uDF35-\\uDF3F]|\\uD86E[\\uDC1E\\uDC1F]|\\uD873[\\uDEA2-\\uDEAF]|\\uD87A[\\uDFE1-\\uDFFF]|\\uD87E[\\uDE1E-\\uDFFF]|\\uD884[\\uDF4B-\\uDFFF]|\\uDB40[\\uDC00-\\uDCFF\\uDDF0-\\uDFFF]/g\n","import { regex } from './regex.js'\n\nconst own = Object.hasOwnProperty\n\n/**\n * Slugger.\n */\nexport default class BananaSlug {\n /**\n * Create a new slug class.\n */\n constructor () {\n /** @type {Record<string, number>} */\n // eslint-disable-next-line no-unused-expressions\n this.occurrences\n\n this.reset()\n }\n\n /**\n * Generate a unique slug.\n *\n * Tracks previously generated slugs: repeated calls with the same value\n * will result in different slugs.\n * Use the `slug` function to get same slugs.\n *\n * @param {string} value\n * String of text to slugify\n * @param {boolean} [maintainCase=false]\n * Keep the current case, otherwise make all lowercase\n * @return {string}\n * A unique slug string\n */\n slug (value, maintainCase) {\n const self = this\n let result = slug(value, maintainCase === true)\n const originalSlug = result\n\n while (own.call(self.occurrences, result)) {\n self.occurrences[originalSlug]++\n result = originalSlug + '-' + self.occurrences[originalSlug]\n }\n\n self.occurrences[result] = 0\n\n return result\n }\n\n /**\n * Reset - Forget all previous slugs\n *\n * @return void\n */\n reset () {\n this.occurrences = Object.create(null)\n }\n}\n\n/**\n * Generate a slug.\n *\n * Does not track previously generated slugs: repeated calls with the same value\n * will result in the exact same slug.\n * Use the `GithubSlugger` class to get unique slugs.\n *\n * @param {string} value\n * String of text to slugify\n * @param {boolean} [maintainCase=false]\n * Keep the current case, otherwise make all lowercase\n * @return {string}\n * A unique slug string\n */\nexport function slug (value, maintainCase) {\n if (typeof value !== 'string') return ''\n if (!maintainCase) value = value.toLowerCase()\n return value.replace(regex, '').replace(/ /g, '-')\n}\n","import path from \"node:path\";\n\nimport { OpenAPIV3 } from \"openapi-types\";\nimport Oas from \"oas\";\n\nimport type { Reference, OpenAPIReferenceContext, ReferenceContext } from \"@xyd-js/uniform\";\n\nimport { SUPPORTED_HTTP_METHODS } from \"../const\";\nimport { oapPathToReference } from \"./oas-paths\";\nimport { oapExamples } from \"./oas-examples\";\nimport { uniformOasOptions } from \"../types\";\nimport { schemaComponentsToUniformReferences } from \"./oas-componentSchemas\";\nimport {httpMethodToUniformMethod} from \"../utils\";\n\n// TODO: support one-of\n// TODO: support $ref - currently we use $refParser.dereference that converts $ref into objects\n// TODO: better method check system - currently we need to manually check that in few methods\n\n// oapSchemaToReferences converts an OpenAPI schema to a list of uniform References\nexport function oapSchemaToReferences(\n schema: OpenAPIV3.Document,\n options?: uniformOasOptions,\n): Reference[] {\n if (!schema) {\n return []\n }\n const references: Reference[] = [];\n const oas = new Oas(schema as any);\n\n const server = schema.servers?.[0]?.url || \"\"\n\n Object.entries(schema.paths).forEach(([endpointPath, oapPath]) => {\n SUPPORTED_HTTP_METHODS.forEach((eachMethod) => {\n const httpMethod = eachMethod.toLowerCase() as OpenAPIV3.HttpMethods\n\n const found = httpMethodToUniformMethod(httpMethod)\n if (!found) {\n console.warn(`Unsupported method: ${httpMethod} for path: ${endpointPath}`)\n return\n }\n\n // Check if this method/path combination should be included based on regions\n if (options?.regions && options.regions.length > 0) {\n const regionKey = `${eachMethod.toUpperCase()} ${endpointPath}`\n if (!options.regions.some(region => region === regionKey)) {\n return\n }\n }\n\n const reference = oapPathToReference(\n schema,\n httpMethod,\n endpointPath,\n oapPath as OpenAPIV3.PathItemObject\n )\n\n if (reference) {\n const ctx = reference.context as OpenAPIReferenceContext\n ctx.path = endpointPath\n ctx.fullPath = path.join(server, endpointPath)\n\n const operation = oas.operation(endpointPath, httpMethod);\n reference.examples.groups = oapExamples(oas, operation)\n\n const scopes: string[] = []\n const oapMethod = oapPath?.[httpMethod] as OpenAPIV3.OperationObject\n if (schema?.security?.length) {\n for (const security of schema.security) {\n for (const securityKey of Object.keys(security)) {\n if (securityKey === \"oauth2\" || securityKey === \"OAuth2\") {\n const securityScopes = security[securityKey]\n if (Array.isArray(securityScopes)) {\n scopes.push(...securityScopes)\n }\n }\n }\n }\n }\n if (oapMethod?.security) {\n if (!oapMethod?.security?.length) {\n scopes.length = 0\n }\n for (const security of oapMethod.security) {\n for (const securityKey of Object.keys(security)) {\n const securityScheme = schema?.components?.securitySchemes?.[securityKey]\n\n // TODO: support other scope-like security schemes\n if (securityScheme && \"type\" in securityScheme && securityScheme.type === \"oauth2\") {\n const methodScopes = security[securityKey]\n if (Array.isArray(methodScopes)) {\n scopes.push(...methodScopes)\n }\n }\n }\n }\n }\n\n ctx.scopes = scopes\n\n references.push(reference)\n }\n })\n })\n\n const schemas = schemaComponentsToUniformReferences(\n schema,\n options,\n )\n references.push(...schemas)\n\n const tags = oas.getTags()\n sortReferencesByTags(references, tags)\n\n // TODO: in the future better API\n // @ts-ignore\n references.__internal_options = () => options\n\n return references\n}\n\nfunction sortReferencesByTags(references: Reference[], tags: string[]) {\n return references.sort((prev, next) => {\n const aTags = prev.context?.group || []\n const bTags = next.context?.group || []\n\n // Find the first tag that exists in both arrays\n for (const tag of tags) {\n const aIndex = aTags.indexOf(tag)\n const bIndex = bTags.indexOf(tag)\n\n if (aIndex !== -1 && bIndex !== -1) {\n return aIndex - bIndex\n }\n if (aIndex !== -1) return -1\n if (bIndex !== -1) return 1\n }\n\n // If no matching tags found, sort by first tag\n return (aTags[0] || '').localeCompare(bTags[0] || '')\n })\n}\n","import {OpenAPIV3} from \"openapi-types\";\nimport Oas from \"oas\";\n// @ts-ignore\nimport {Operation} from 'oas/operation'; // TODO: fix ts\nimport oasToSnippet from \"@readme/oas-to-snippet\";\nimport {JSONSchema, sample as openApiSampler} from '@xyd-js/openapi-sampler';\nimport {JSONSchema7, JSONSchema7Definition} from \"json-schema\";\n\nimport {ExampleGroup, Example, CodeBlockTab} from \"@xyd-js/uniform\";\n\nimport {BUILT_IN_PROPERTIES} from \"../const\";\nimport {xDocsLanguages} from \"../xdocs\";\n\n// TODO: custom snippet languages options\nconst DEFAULT_CODE_LANGUAGES = [\"shell\", \"javascript\", \"python\", \"go\"]\n\n// TODO: option with another languages\nexport function oapExamples(\n oas: Oas,\n operation: Operation,\n visitedExamples?: Map<JSONSchema7 | JSONSchema7[], any>\n): ExampleGroup[] {\n const exampleGroups = [\n ...reqExamples(operation, oas, visitedExamples),\n ...resBodyExmaples(operation, oas, visitedExamples),\n ]\n\n return exampleGroups\n}\n\nfunction langFallback(lang: string): string {\n const langLower = lang.toLowerCase()\n\n switch (langLower) {\n case \"curl\": {\n return \"shell\";\n }\n }\n\n return langLower;\n}\n\nfunction smartDeepCopy<T>(obj: T, excludeProps: string[] = []): T {\n const seen = new WeakMap();\n\n function copy(value: any): any {\n // Handle primitives and null\n if (value === null || typeof value !== 'object') {\n return value;\n }\n\n // Handle arrays\n if (Array.isArray(value)) {\n return value.map(copy);\n }\n\n // Handle dates\n if (value instanceof Date) {\n return new Date(value);\n }\n\n // Check for circular references\n if (seen.has(value)) {\n return seen.get(value);\n }\n\n // Create new object\n const result: any = {};\n seen.set(value, result);\n\n // Copy all properties except excluded ones\n for (const [key, val] of Object.entries(value)) {\n const propPath = key;\n if (!excludeProps.some(prop => propPath.startsWith(prop))) {\n result[key] = copy(val);\n }\n }\n\n return result;\n }\n\n return copy(obj);\n}\n\nfunction excludeProperties(operation: Operation, excludeProps: string[]): Operation {\n return smartDeepCopy(operation, excludeProps);\n}\n\nfunction reqExamples(operation: Operation, oas: Oas, vistedExamples?: Map<JSONSchema7 | JSONSchema7[], any>): ExampleGroup[] {\n const exampleGroups: ExampleGroup[] = []\n const examples: Example[] = []\n const tabs: CodeBlockTab[] = []\n\n // Handle x-codeSamples if present\n if (operation.schema['x-codeSamples']) {\n const codeSamples = operation.schema['x-codeSamples'] as Array<{ lang: string; source: string; label?: string }>\n \n // Group code samples by label\n const groupedByLabel = new Map<string, Array<{ lang: string; source: string; label?: string }>>()\n \n codeSamples.forEach(sample => {\n const label = sample.label || 'default'\n if (!groupedByLabel.has(label)) {\n groupedByLabel.set(label, [])\n }\n groupedByLabel.get(label)!.push(sample)\n })\n\n // Create examples for each label group\n groupedByLabel.forEach((samples, label) => {\n const codeSampleTabs: CodeBlockTab[] = samples.map(sample => ({\n title: sample.lang,\n language: langFallback(sample.lang),\n code: sample.source\n }))\n\n if (codeSampleTabs.length > 0) {\n examples.push({\n codeblock: {\n title: label === 'default' ? \"Example request\" : label,\n tabs: codeSampleTabs\n }\n })\n }\n })\n\n if (examples.length > 0) {\n exampleGroups.push({\n description: \"Example request\",\n examples\n })\n\n return exampleGroups\n }\n }\n\n // Create a single object with all parameters grouped by their location\n const paramData = operation.schema.parameters\n ? (operation.schema.parameters as OpenAPIV3.ParameterObject[]).reduce((acc, param) => {\n const location = param.in || 'query'\n if (!acc[location]) {\n acc[location] = {}\n }\n\n let value = param.example\n if (!value && param.schema) {\n value = openApiSampler(sanitizeSchema(param.schema as JSONSchema7))\n }\n if (value !== undefined) {\n acc[location][param.name] = value\n }\n return acc\n }, {} as Record<string, Record<string, any>>)\n : {}\n\n // Get request body data if it exists\n let bodyData = {}\n if (operation.schema.requestBody) {\n const body = operation.schema.requestBody as OpenAPIV3.RequestBodyObject\n const contentTypes = Object.keys(body.content)\n\n if (contentTypes.length > 0) {\n const contentType = contentTypes[contentTypes.length - 1]\n const content = body.content[contentType]\n let schema = content?.schema as JSONSchema7\n\n if (schema) {\n schema = fixAllOfBug(schema)\n schema = sanitizeSchema(schema)\n\n let requestData\n if (content.examples) {\n const requestExample = content.examples[\"request\"]\n if (requestExample && \"value\" in requestExample) {\n requestData = requestExample.value\n }\n }\n\n if (!requestData) {\n requestData = sampleFromSchema(schema)\n }\n\n if (contentType === 'application/x-www-form-urlencoded') {\n bodyData = {formData: requestData}\n } else {\n bodyData = {body: requestData}\n }\n }\n }\n }\n\n // Check if we have parameters or request body\n const hasRequestBody = operation.schema.requestBody !== undefined\n const hasParameters = Object.keys(paramData).length > 0\n\n // Generate examples if we have either parameters or request body, or if we have neither\n if (hasParameters || hasRequestBody || (!hasRequestBody && !hasParameters)) {\n const langs = xDocsLanguages(operation.api) || DEFAULT_CODE_LANGUAGES\n langs.forEach(lang => {\n // Sanitize operation to remove circular references before passing to oasToSnippet\n let snippetOperation = operation\n const v = operation?.api?.paths?.[operation?.path]?.[operation?.method]\n if (v) {\n snippetOperation = fixCircularReferences(v);\n }\n\n const {code} = oasToSnippet(oas, snippetOperation, {\n ...paramData,\n ...bodyData\n }, null, lang)\n\n tabs.push({\n title: lang,\n language: lang,\n code: code || \"\"\n })\n })\n\n if (tabs.length > 0) {\n examples.push({\n codeblock: {\n tabs\n }\n })\n }\n\n if (examples.length > 0) {\n exampleGroups.push({\n description: \"Example request\",\n examples\n })\n }\n }\n\n return exampleGroups\n}\n\nfunction resBodyExmaples(operation: Operation, oas: Oas, vistedExamples?: Map<JSONSchema7 | JSONSchema7[], any>): ExampleGroup[] {\n const exampleGroups: ExampleGroup[] = []\n\n\n if (operation.schema.responses) {\n const responses = operation.schema.responses as OpenAPIV3.ResponsesObject\n\n const examples: Example[] = []\n\n Object.entries(responses).forEach(([status, r]) => {\n const response = r as OpenAPIV3.ResponseObject\n if (!response.content) {\n return\n }\n\n const contentTypes = Object.keys(response.content)\n if (contentTypes.length === 0) {\n return\n }\n\n const tabs: CodeBlockTab[] = []\n\n for (const contentType of contentTypes) {\n const content = response.content[contentType]\n const schema = content?.schema as JSONSchema7\n\n if (!schema) {\n continue\n }\n\n let responseData\n // Check for examples in the response content\n if (content.examples) {\n const responseExample = content.examples[\"response\"]\n if (responseExample && \"value\" in responseExample) {\n responseData = responseExample.value\n } else {\n const namedExamples: Example[] = []\n const exampleNames = Object.keys(content.examples)\n\n exampleNames.forEach((exampleName) => {\n const data = content?.examples?.[exampleName]\n\n if (!data || !(\"value\" in data) || typeof data.value != \"object\") {\n return\n }\n\n namedExamples.push({\n description: \"\",\n codeblock: {\n title: exampleName,\n tabs: [\n {\n title: \"application/json\", // TODO: support multiple types\n language: \"json\",\n code: JSON.stringify(data.value, null, 2) || \"\",\n }\n ]\n }\n })\n })\n\n if (namedExamples.length === 1) {\n const firstCodeblock = namedExamples[0].codeblock\n\n tabs.push(\n ...firstCodeblock.tabs.map(tab => ({\n ...tab,\n title: contentType\n }))\n )\n } else {\n exampleGroups.push({\n description: \"\",\n examples: namedExamples\n })\n }\n\n continue\n }\n } else if (content.example) {\n responseData = content.example\n }\n\n // If no example found, generate sample data from schema\n if (!responseData) {\n responseData = sampleFromSchema(schema)\n }\n\n let extension = \"text\"\n switch (contentType) {\n case \"application/json\":\n case \"application/problem+json\":\n case \"application/vnd.api+json\": {\n extension = \"json\"\n break\n }\n case \"application/xml\":\n case \"text/xml\":\n case \"application/problem+xml\": {\n extension = \"xml\"\n break\n }\n }\n\n tabs.push({\n title: contentType,\n language: extension,\n code: JSON.stringify(responseData, null, 2) || \"\",\n })\n }\n\n if (tabs.length > 0) {\n examples.push({\n codeblock: {\n title: status,\n tabs\n }\n })\n }\n })\n\n if (examples.length > 0) {\n exampleGroups.push({\n description: \"Example response\",\n examples\n })\n }\n }\n\n return exampleGroups\n}\n\n/**\n * fixAllOfBug fixes below case:\n *\n * ```yaml\n * allOf:\n * - $ref: '#/components/schemas/SomeSchema'\n * - type: object\n * required:\n * properties:\n * ```\n *\n */\nfunction fixAllOfBug(schema: JSONSchema7) {\n const modifiedSchema = {...schema}\n\n if (schema?.allOf) {\n schema.allOf.forEach((prop, i) => {\n const propObj = prop as object\n\n if (\"properties\" in propObj && !propObj[\"properties\"]) {\n delete modifiedSchema.allOf?.[i]\n }\n })\n }\n\n return modifiedSchema\n}\n\n\nfunction sanitizeSchema(\n schema: any,\n vistedExamples: Map<JSONSchema7 | JSONSchema7[], any> = new Map(),\n parent?: any\n): any {\n if (vistedExamples.has(schema)) {\n const cached = vistedExamples.get(schema);\n\n if (typeof cached === 'object') {\n return JSON.parse(JSON.stringify(cached)); // Return a deep copy of the cached schema\n }\n\n return cached\n }\n\n if (parent) {\n vistedExamples.set(schema, parent);\n }\n\n if (!schema || typeof schema !== 'object') {\n vistedExamples.set(schema, schema);\n return schema;\n }\n\n if (Array.isArray(schema)) {\n const v = schema.map(item => sanitizeSchema(item, vistedExamples));\n vistedExamples.set(schema, v);\n return v;\n }\n\n const cleaned: any = {};\n for (const [key, value] of Object.entries(schema)) {\n if (key === \"__UNSAFE_refPath\") {\n continue;\n }\n if (!BUILT_IN_PROPERTIES[key]) {\n cleaned[key] = sanitizeSchema(value, vistedExamples, cleaned);\n }\n }\n vistedExamples.set(schema, cleaned);\n return cleaned;\n}\n\nfunction sampleFromSchema(\n schema: JSONSchema7\n) {\n let jsonSchema: JSONSchema | null = null\n\n let multiSpec: JSONSchema7Definition[] | null = null\n\n if (schema.oneOf?.length) {\n // for one of schemas, we take from the last one\n multiSpec = schema.oneOf\n } else if (schema.anyOf?.length) {\n // for any of schemas, we take from the last one\n multiSpec = schema.anyOf\n }\n\n if (multiSpec?.length) {\n // for one of schemas, we take from the last one\n for (let i = multiSpec.length - 1; i >= 0; i--) {\n const spec = multiSpec[i];\n const sanitized = sanitizeSchema(spec)\n if (!sanitized) {\n continue\n }\n jsonSchema = sanitized\n\n if (!jsonSchema?.properties) {\n continue\n }\n break;\n }\n } else {\n jsonSchema = sanitizeSchema(schema)\n }\n\n if (jsonSchema) {\n return openApiSampler(jsonSchema)\n }\n\n return null\n}\n\nfunction fixCircularReferences(schema: any, visited: WeakMap<any, any> = new WeakMap()): any {\n if (!schema || typeof schema !== 'object') {\n return schema;\n }\n\n // Check if we've already processed this object to prevent infinite recursion\n if (visited.has(schema)) {\n return visited.get(schema);\n }\n\n // Check if this schema has circular references\n if ((schema as any).__UNSAFE_circular) {\n // Return a simplified version without circular references\n const simplified = {\n type: 'object',\n description: 'Circular reference detected - schema simplified'\n };\n visited.set(schema, simplified);\n return simplified;\n }\n\n // Handle arrays\n if (Array.isArray(schema)) {\n const result = schema.map(item => fixCircularReferences(item, visited));\n visited.set(schema, result);\n return result;\n }\n\n // Recursively fix circular references in nested objects\n const fixedSchema: any = {};\n visited.set(schema, fixedSchema); // Set early to prevent infinite recursion\n \n for (const [key, value] of Object.entries(schema)) {\n if (key === '__UNSAFE_circular' || key === '__UNSAFE_refPath') {\n continue; // Skip unsafe properties\n }\n \n if (typeof value === 'object' && value !== null) {\n fixedSchema[key] = fixCircularReferences(value, visited);\n } else {\n fixedSchema[key] = value;\n }\n }\n\n return fixedSchema;\n}\n\n","import {OpenAPIV3} from \"openapi-types\";\nimport {XDocs} from \"./types\";\n\nexport function xDocsLanguages(oasDoc: OpenAPIV3.Document): string[] | null {\n const xDocs = getXDocs(oasDoc);\n if (!xDocs) {\n return null\n }\n\n return xDocs?.codeLanguages ?? null\n}\n\nexport function getXDocs(oasDoc: OpenAPIV3.Document): XDocs | null {\n if (!(\"x-docs\" in oasDoc)) {\n return null\n }\n return oasDoc[\"x-docs\"] as XDocs | null\n}","import {OpenAPIV3} from \"openapi-types\";\n\nimport {\n Reference,\n Definition,\n DefinitionProperty,\n ReferenceType,\n OpenAPIReferenceContext, SymbolDef,\n ExampleGroup,\n CodeBlockTab,\n} from \"@xyd-js/uniform\";\n\nimport {OasJSONSchema, uniformOasOptions} from \"../types\";\nimport {schemaObjectToUniformDefinitionProperties} from \"../oas-core\";\n\nexport function schemaComponentsToUniformReferences(\n openapi: OpenAPIV3.Document,\n options?: uniformOasOptions,\n): Reference[] {\n const references: Reference[] = [];\n\n if (!openapi.components?.schemas) {\n return references;\n }\n\n for (const [componentSchemaName, componentSchema] of Object.entries(openapi.components.schemas)) {\n if (options?.regions && options.regions.length > 0) {\n if (!options.regions.some(region => region === \"/components/schemas/\" + componentSchemaName)) {\n continue\n }\n }\n\n if ('$ref' in componentSchema) {\n console.warn(`Skipping reference object: ${componentSchemaName}`);\n continue; // Skip reference objects\n }\n\n let properties: DefinitionProperty[] = [];\n let rootProperty: DefinitionProperty | undefined = undefined;\n const respProperties = schemaObjectToUniformDefinitionProperties(componentSchema, false) || [];\n if (Array.isArray(respProperties)) {\n properties = respProperties\n } else {\n rootProperty = respProperties\n }\n\n const symbolDef = definitionPropertyTypeDef(componentSchema)\n\n const definition: Definition = {\n title: componentSchemaName,\n properties,\n rootProperty,\n meta: [],\n symbolDef,\n };\n\n // Create reference\n const reference: Reference = {\n title: componentSchemaName,\n description: componentSchema.description || \"\",\n canonical: `objects/${componentSchemaName}`,\n definitions: [definition],\n examples: {\n groups: createSchemaExampleGroup(componentSchema as OpenAPIV3.SchemaObject)\n },\n type: ReferenceType.REST_COMPONENT_SCHEMA,\n context: {\n componentSchema: componentSchemaName,\n group: [\"Objects\"]\n } as OpenAPIReferenceContext\n };\n\n // TODO: !!!! better api !!!!\n reference.__UNSAFE_selector = function __UNSAFE_selector(selector: string) {\n switch (selector) {\n case \"[schema]\": {\n return openapi\n }\n\n case \"[component]\": {\n return componentSchema\n }\n\n default:\n return null\n }\n }\n\n references.push(reference);\n }\n\n return references;\n}\n\nfunction createSchemaExampleGroup(schema: OpenAPIV3.SchemaObject, map: any): ExampleGroup[] {\n const example = generateSchemaExample(schema);\n if (!example) {\n return [];\n }\n\n const tabs: CodeBlockTab[] = [{\n title: 'json',\n language: 'json',\n code: JSON.stringify(example, null, 2)\n }];\n\n return [{\n description: 'Example',\n examples: [{\n codeblock: {\n tabs\n }\n }]\n }];\n}\n\nfunction definitionPropertyTypeDef(\n schema: OpenAPIV3.SchemaObject | undefined,\n) {\n if (!schema) {\n return\n }\n\n let typeDef: SymbolDef | undefined\n let oasSchema = schema as OasJSONSchema\n if (oasSchema.type === \"array\") {\n oasSchema = oasSchema.items as OasJSONSchema\n }\n if (oasSchema?.__internal_getRefPath) {\n const symbolId = oasSchema.__internal_getRefPath()\n\n typeDef = {\n id: symbolId,\n }\n }\n\n return typeDef\n}\n\nfunction generateSchemaExample(\n schema: OpenAPIV3.SchemaObject,\n visitedExample?: Map<OpenAPIV3.SchemaObject, any>,\n parent?: any\n): any {\n if (!schema) {\n return null;\n }\n if (!visitedExample) {\n visitedExample = new Map<OpenAPIV3.SchemaObject, any>();\n }\n\n const cached = visitedExample.get(schema)\n if (cached) {\n return JSON.parse(JSON.stringify(cached)); // Return a deep copy of the cached example\n }\n if (parent) {\n visitedExample.set(schema, parent);\n }\n\n // Handle examples array\n if ('examples' in schema && Array.isArray(schema.examples)) {\n const v = schema.examples[0];\n visitedExample.set(schema, v);\n return v; // Return the first example from the examples array\n }\n\n // Handle single example\n if ('example' in schema && schema.example !== undefined) {\n const v = schema.example;\n visitedExample.set(schema, v);\n return v; // Return the single example if it exists\n }\n\n // Handle object type with properties\n if (schema.type === 'object' && schema.properties) {\n const result: Record<string, any> = {};\n for (const [propName, propSchema] of Object.entries(schema.properties)) {\n result[propName] = generateSchemaExample(propSchema as OpenAPIV3.SchemaObject, visitedExample, result);\n }\n visitedExample.set(schema, result);\n return result;\n }\n\n // Handle array type\n if (schema.type === 'array' && schema.items) {\n const itemExample = generateSchemaExample(schema.items as OpenAPIV3.SchemaObject, visitedExample);\n const v = itemExample ? [itemExample] : [];\n visitedExample.set(schema, v);\n\n return v; // Return an array with a single item example\n }\n\n // Handle primitive types with default values\n switch (schema.type) {\n case 'string':\n return '';\n case 'number':\n case 'integer':\n return 0;\n case 'boolean':\n return false;\n default:\n return null;\n }\n}\n","import {OpenAPIV3} from \"openapi-types\";\n\nimport {\n CodeBlockTab,\n Example,\n ExampleGroup,\n Reference,\n UniformPluginArgs,\n OpenAPIReferenceContext\n} from \"@xyd-js/uniform\";\n\nimport {XDocs, XDocsSidebar, XDocsPage} from \"./types\";\n\ninterface NavigationGroup {\n id: string\n title: string\n beta: boolean\n}\n\ninterface ComponentMeta {\n name: string\n\n group: string\n\n example: string\n}\n\ntype ExtensionSchema = OpenAPIV3.Document & {\n \"x-docs\"?: XDocs\n}\n\ntype NavigationGroupMap = {\n [id: string]: NavigationGroup & {\n index: number\n }\n}\n\ninterface OperationExample {\n request: string | { [lang: string]: string }\n response: string | { [lang: string]: string }\n}\n\ntype Examples = string | OperationExample | OperationExample[]\n\nexport function uniformPluginXDocsSidebar({\n references,\n defer,\n }: UniformPluginArgs) {\n let schema: ExtensionSchema | undefined\n const refByOperationId: {\n [key: string]: Reference\n } = {}\n const refByComponentSchema: {\n [key: string]: Reference\n } = {}\n\n defer(() => {\n // @ts-ignore\n if (typeof references.__internal_options === \"function\") {\n // @ts-ignore\n const options = references.__internal_options()\n\n if (options?.regions?.length) {\n return {}\n }\n }\n\n const output: Reference[] = []\n if (!schema) {\n return {}\n }\n\n const xDocs = schema[\"x-docs\"]\n\n if (!xDocs?.sidebar) {\n return {}\n }\n\n const navigationMap: NavigationGroupMap = {}\n\n // Process sidebar groups\n for (let i = 0; i < xDocs.sidebar.length; i++) {\n const navGroup: XDocsSidebar = xDocs.sidebar[i]\n if (!navGroup) {\n continue\n }\n\n const uniqueKey = `${navGroup.group}-${i}`\n navigationMap[uniqueKey] = {\n id: navGroup.group,\n title: navGroup.group,\n beta: false,\n index: i\n }\n }\n\n // Process each group and its nested pages\n for (let i = 0; i < xDocs.sidebar.length; i++) {\n const group: XDocsSidebar = xDocs.sidebar[i]\n const uniqueKey = `${group.group}-${i}`\n const navGroup = navigationMap[uniqueKey]\n if (!navGroup) {\n console.warn(`No navigation group found for group: ${group.group}`)\n continue\n }\n\n if (!Array.isArray(group.pages)) {\n continue\n }\n\n // Process nested groups and pages\n processGroupPages(xDocs, group.pages, [group.group], navGroup, output)\n }\n\n // Clear references and set from output\n if (Array.isArray(references)) {\n references.length = 0\n references.push(...output)\n } else {\n references = output[0] || references\n }\n\n return {}\n })\n\n function processGroupPages(\n xDocs: XDocs,\n pages: (XDocsSidebar | XDocsPage)[],\n groupPath: string[],\n navGroup: NavigationGroup & { index: number },\n output: Reference[],\n parentPath?: string\n ) {\n for (const page of pages) {\n if ('pages' in page && Array.isArray(page.pages)) {\n // This is a nested group\n processGroupPages(xDocs, page.pages, [...groupPath, page.group], navGroup, output, page.path)\n } else if ('type' in page && 'key' in page) {\n // This is a page\n processPage(xDocs, page, groupPath, navGroup, output, parentPath)\n }\n }\n }\n\n function processPage(\n xDocs: XDocs,\n page: XDocsPage,\n groupPath: string[],\n navGroup: NavigationGroup & { index: number },\n output: Reference[],\n parentPath?: string\n ) {\n let uniformRef: Reference | undefined\n\n switch (page.type) {\n case \"endpoint\": {\n const operationRef = refByOperationId[page.key]\n if (!operationRef) {\n console.warn(`No operation found for key: ${page.key} in group ${groupPath.join('/')}`)\n return\n }\n uniformRef = operationRef\n break\n }\n\n case \"object\": {\n const componentRef = refByComponentSchema[page.key]\n if (!componentRef) {\n console.warn(`No component schema found for key: ${page.key} in group ${groupPath.join('/')}`)\n return\n }\n\n const selector = componentRef.__UNSAFE_selector\n if (!selector || typeof selector !== \"function\") {\n return\n }\n\n const component = selector(\"[component]\") as OpenAPIV3.SchemaObject | undefined\n if (!component) {\n console.warn(`No component schema found for key: ${page.key} in group ${groupPath.join('/')}`)\n return\n }\n\n let componentMeta: ComponentMeta | undefined\n if (component.allOf) {\n let found = false\n for (const item of component.allOf) {\n const docsMeta = (item as any)[\"x-docs\"] as ComponentMeta | undefined\n\n if (docsMeta && found) {\n console.warn(`Multiple x-docs found in allOf for component schema: ${page.key} in group ${groupPath.join('/')}`)\n }\n\n if (docsMeta) {\n found = true\n componentMeta = docsMeta\n break\n }\n }\n\n if (!found) {\n console.warn(`No x-docs found in allOf for component schema: ${page.key} in group ${groupPath.join('/')}`)\n return\n }\n } else {\n const docsMeta = (component as any)[\"x-docs\"] as ComponentMeta | undefined\n if (docsMeta) {\n componentMeta = docsMeta\n }\n }\n\n uniformRef = componentRef\n if (!componentMeta) {\n break\n }\n\n componentRef.title = componentMeta.name || componentRef.title\n\n if (componentMeta.example) {\n const exampleGroups = oasXDocsExamples(componentMeta.example)\n uniformRef.examples = {\n groups: exampleGroups,\n }\n }\n break\n }\n\n default: {\n console.warn(`Unknown page type: ${page.type} in group ${groupPath.join('/')}`)\n return\n }\n }\n\n if (!uniformRef) {\n return\n }\n\n if (xDocs.sidebarPathStrategy === \"inherit\") {\n const ctx = uniformRef.context as OpenAPIReferenceContext | undefined\n let firstPart = \"\"\n if (parentPath) {\n firstPart = parentPath\n } else {\n firstPart = ctx?.path || \"\"\n }\n\n const canonical = joinPaths(firstPart || \"\", page.path)\n if (canonical) {\n uniformRef.canonical = canonical\n }\n } else if (page.path) {\n uniformRef.canonical = joinPaths(parentPath, page.path)\n } else if (parentPath) {\n uniformRef.canonical = parentPath\n }\n\n if (!uniformRef.context) {\n uniformRef.context = {}\n }\n\n uniformRef.context.group = groupPath\n\n output.push(uniformRef)\n }\n\n return function pluginXDocsSidebarInner(ref: Reference) {\n // @ts-ignore\n const selector = ref.__UNSAFE_selector\n if (!selector || typeof selector !== \"function\") {\n return\n }\n\n const oapSchema = selector(\"[schema]\")\n if (!oapSchema) {\n return\n }\n schema = oapSchema\n\n const ctx = ref.context as OpenAPIReferenceContext | undefined\n if (ctx?.componentSchema) {\n refByComponentSchema[ctx.componentSchema] = ref\n }\n\n const methodPath = selector(\"[method] [path]\") as OpenAPIV3.OperationObject | undefined\n if (!methodPath) {\n return\n }\n\n const oapMethod = selector(\"[method]\")\n if (!oapMethod) {\n return\n }\n\n const operationId = methodPath.operationId\n if (operationId) {\n refByOperationId[operationId] = ref\n }\n\n const methodId = (oapMethod?.httpMethod?.toUpperCase() + \" \" + oapMethod?.path || \"\").trim()\n if (methodId) {\n refByOperationId[methodId] = ref\n }\n\n const meta = (methodPath as any)[\"x-docs\"]\n if (!meta) {\n return\n }\n\n if (meta.name) {\n ref.title = meta.name\n }\n\n if (meta.group) {\n if (ref.context) {\n ref.context.group = [meta.group]\n }\n }\n\n if (!ref.description) {\n ref.description = methodPath.summary || \"\"\n }\n\n if (meta.examples) {\n const exampleGroups = oasXDocsExamples(meta.examples)\n ref.examples = {\n groups: exampleGroups,\n }\n }\n\n if (meta.returns) {\n if (ref.definitions?.length) {\n ref.definitions[ref.definitions.length - 1] = {\n title: ref.definitions[ref.definitions.length - 1].title,\n description: meta.returns,\n properties: []\n }\n } else {\n ref.definitions = [\n {\n title: \"Response\",\n description: meta.returns,\n properties: []\n }\n ]\n }\n }\n }\n}\n\nfunction oasXDocsExamples(examples: Examples) {\n const groups: ExampleGroup[] = []\n\n if (examples) {\n if (Array.isArray(examples)) {\n // Create request group\n const requestExamples: Example[] = []\n examples.forEach((example: {\n title?: string;\n request?: string | Record<string, string>;\n response?: string | Record<string, string>;\n }) => {\n if (example.request) {\n const tabs: CodeBlockTab[] = []\n if (typeof example.request === \"string\") {\n tabs.push({\n title: \"\",\n language: \"json\",\n code: example.request\n })\n } else {\n for (let lang of Object.keys(example.request)) {\n const code = example.request[lang] || \"\"\n const language = lang === \"curl\" ? \"bash\" :\n lang === \"node.js\" ? \"js\" : lang\n\n tabs.push({\n title: lang,\n language,\n code\n })\n }\n }\n if (tabs.length > 0) {\n requestExamples.push({\n description: example.title || \"\",\n codeblock: {\n title: example.title || \"\",\n tabs\n }\n })\n }\n }\n })\n if (requestExamples.length > 0) {\n groups.push({\n description: \"Example request\",\n examples: requestExamples\n })\n }\n\n // Create response group\n const responseExamples: Example[] = []\n examples.forEach((example: {\n title?: string;\n request?: string | Record<string, string>;\n response?: string | Record<string, string>;\n }) => {\n if (example.response) {\n const tabs: CodeBlockTab[] = []\n if (typeof example.response === \"string\") {\n tabs.push({\n title: \"\",\n language: \"json\",\n code: example.response\n })\n } else {\n for (let lang of Object.keys(example.response)) {\n const code = example.response[lang] || \"\"\n const language = lang === \"curl\" ? \"bash\" :\n lang === \"node.js\" ? \"js\" : lang\n\n tabs.push({\n title: lang,\n language,\n code\n })\n }\n }\n if (tabs.length > 0) {\n responseExamples.push({\n description: example.title || \"\",\n codeblock: {\n title: example.title || \"\",\n tabs\n }\n })\n }\n }\n })\n if (responseExamples.length > 0) {\n groups.push({\n description: \"Example response\",\n examples: responseExamples\n })\n }\n } else {\n if (typeof examples === \"string\") {\n groups.push({\n description: \"Example\",\n examples: [\n {\n description: \"\",\n codeblock: {\n tabs: [\n {\n title: \"\",\n language: \"json\",\n code: examples\n }\n ]\n }\n }\n ]\n })\n } else {\n if (examples.request) {\n const tabs: CodeBlockTab[] = []\n\n if (typeof examples.request === \"string\") {\n tabs.push({\n title: \"\",\n language: \"json\",\n code: examples.request || \"\",\n })\n } else {\n for (let lang of Object.keys(examples.request)) {\n const code = examples.request[lang] || \"\"\n\n switch (lang) {\n case \"curl\":\n lang = \"bash\"\n break\n case \"node.js\":\n lang = \"js\"\n break\n default:\n break\n }\n\n tabs.push({\n title: lang,\n language: lang,\n code,\n })\n }\n }\n\n groups.push({\n description: \"Example request\",\n examples: [\n {\n description: \"\",\n codeblock: {\n tabs\n }\n }\n ]\n })\n }\n\n if (examples.response) {\n const tabs: CodeBlockTab[] = []\n if (typeof examples.response === \"string\") {\n tabs.push({\n title: \"\",\n language: \"json\",\n code: examples.response || \"\",\n })\n } else {\n for (let lang of Object.keys(examples.response)) {\n const code = examples.response[lang] || \"\"\n\n switch (lang) {\n case \"curl\":\n lang = \"bash\"\n break\n case \"node.js\":\n lang = \"js\"\n break\n default:\n break\n }\n\n tabs.push({\n title: lang,\n language: lang,\n code,\n })\n }\n }\n\n groups.push({\n description: \"Example response\",\n examples: [\n {\n description: \"\",\n codeblock: {\n tabs\n }\n }\n ]\n })\n }\n }\n }\n }\n\n return groups\n}\n\nfunction sanitizePath(path: string): string {\n // Remove path parameters like {userId} or :userId\n return path.replace(/\\/\\{[^}]+\\}/g, '').replace(/\\/:[^/]+/g, '')\n}\n\nfunction joinPaths(...paths: (string | undefined)[]): string {\n return paths\n .filter(Boolean)\n .map(path => {\n // Remove leading and trailing slashes\n path = path!.replace(/^\\/+|\\/+$/g, '')\n // Ensure path starts with / if it's not empty\n return path ? `/${path}` : ''\n })\n .join('')\n .replace(/\\/+/g, '/') // Replace multiple slashes with single slash\n .replace(/\\/\\{[^}]+\\}/g, '') // Remove {param} segments\n .replace(/\\/:[^/]+/g, '') // Remove :param segments\n}\n\n"],"mappings":"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","names":["oasSchema","refPath","property","import_uniform","import_uniform","import_uniform","import_uniform","slug","path","yaml","$refParser","fs","path","title","meta","slug","import_node_path","openApiSampler","oasToSnippet","import_uniform","definitionPropertyTypeDef","Oas","_a","_b","path","canonical","path"]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { OpenAPIV3 } from 'openapi-types';
|
|
2
|
+
import { Definition, Reference, UniformPluginArgs } from '@xyd-js/uniform';
|
|
3
|
+
|
|
4
|
+
interface uniformOasOptions {
|
|
5
|
+
regions?: string[];
|
|
6
|
+
}
|
|
7
|
+
interface SelectorMethod {
|
|
8
|
+
oapPath: OpenAPIV3.PathItemObject;
|
|
9
|
+
path: string;
|
|
10
|
+
httpMethod: "get" | "put" | "post" | "delete" | "patch";
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
declare function oapResponseOperationToUniformDefinition(oapOperation: OpenAPIV3.OperationObject): Definition;
|
|
14
|
+
|
|
15
|
+
declare function oapSchemaToReferences(schema: OpenAPIV3.Document, options?: uniformOasOptions): Reference[];
|
|
16
|
+
|
|
17
|
+
declare function deferencedOpenAPI(openApiPath: string): Promise<OpenAPIV3.Document<{}> | undefined>;
|
|
18
|
+
|
|
19
|
+
interface XDocs {
|
|
20
|
+
route?: string;
|
|
21
|
+
codeLanguages?: string[];
|
|
22
|
+
sidebarPathStrategy?: "inherit";
|
|
23
|
+
sidebar?: XDocsSidebar[];
|
|
24
|
+
}
|
|
25
|
+
interface XDocsSidebar {
|
|
26
|
+
group: string;
|
|
27
|
+
path?: string;
|
|
28
|
+
pages: XDocsSidebar[] | XDocsPage[];
|
|
29
|
+
}
|
|
30
|
+
interface XDocsPage {
|
|
31
|
+
type: "endpoint" | "object";
|
|
32
|
+
key: string;
|
|
33
|
+
path?: string;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
declare function getXDocs(oasDoc: OpenAPIV3.Document): XDocs | null;
|
|
37
|
+
|
|
38
|
+
declare function uniformPluginXDocsSidebar({ references, defer, }: UniformPluginArgs): (ref: Reference) => void;
|
|
39
|
+
|
|
40
|
+
export { type SelectorMethod, deferencedOpenAPI, getXDocs, oapResponseOperationToUniformDefinition, oapSchemaToReferences, type uniformOasOptions, uniformPluginXDocsSidebar };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { OpenAPIV3 } from 'openapi-types';
|
|
2
|
+
import { Definition, Reference, UniformPluginArgs } from '@xyd-js/uniform';
|
|
3
|
+
|
|
4
|
+
interface uniformOasOptions {
|
|
5
|
+
regions?: string[];
|
|
6
|
+
}
|
|
7
|
+
interface SelectorMethod {
|
|
8
|
+
oapPath: OpenAPIV3.PathItemObject;
|
|
9
|
+
path: string;
|
|
10
|
+
httpMethod: "get" | "put" | "post" | "delete" | "patch";
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
declare function oapResponseOperationToUniformDefinition(oapOperation: OpenAPIV3.OperationObject): Definition;
|
|
14
|
+
|
|
15
|
+
declare function oapSchemaToReferences(schema: OpenAPIV3.Document, options?: uniformOasOptions): Reference[];
|
|
16
|
+
|
|
17
|
+
declare function deferencedOpenAPI(openApiPath: string): Promise<OpenAPIV3.Document<{}> | undefined>;
|
|
18
|
+
|
|
19
|
+
interface XDocs {
|
|
20
|
+
route?: string;
|
|
21
|
+
codeLanguages?: string[];
|
|
22
|
+
sidebarPathStrategy?: "inherit";
|
|
23
|
+
sidebar?: XDocsSidebar[];
|
|
24
|
+
}
|
|
25
|
+
interface XDocsSidebar {
|
|
26
|
+
group: string;
|
|
27
|
+
path?: string;
|
|
28
|
+
pages: XDocsSidebar[] | XDocsPage[];
|
|
29
|
+
}
|
|
30
|
+
interface XDocsPage {
|
|
31
|
+
type: "endpoint" | "object";
|
|
32
|
+
key: string;
|
|
33
|
+
path?: string;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
declare function getXDocs(oasDoc: OpenAPIV3.Document): XDocs | null;
|
|
37
|
+
|
|
38
|
+
declare function uniformPluginXDocsSidebar({ references, defer, }: UniformPluginArgs): (ref: Reference) => void;
|
|
39
|
+
|
|
40
|
+
export { type SelectorMethod, deferencedOpenAPI, getXDocs, oapResponseOperationToUniformDefinition, oapSchemaToReferences, type uniformOasOptions, uniformPluginXDocsSidebar };
|